@prefix dc1: . @prefix dul: . @prefix np: . @prefix npx: . @prefix orcid: . @prefix owl: . @prefix pplan: . @prefix prov: . @prefix rdfs: . @prefix schema: . @prefix sub: . @prefix this: . @prefix xsd: . sub:Head { this: np:hasAssertion sub:assertion; np:hasProvenance sub:provenance; np:hasPublicationInfo sub:pubinfo; a np:Nanopublication . } sub:assertion { pplan:isStepOfPlan sub:_plan; dul:precedes , . pplan:isStepOfPlan sub:_plan; dul:precedes . pplan:isStepOfPlan sub:_plan; dul:precedes . pplan:isStepOfPlan sub:_plan; dul:precedes , . sub:_LinguisticSystem a schema:ComputerLanguage; rdfs:label "python"; rdfs:seeAlso ; owl:versionInfo "3.9.15.final.0" . sub:_plan dc1:description """@is_fairworkflow(label='My model training workflow') def training_workflow(n_jobs): # Define models hyper params hyper_params = { 'n_jobs': n_jobs, 'random_state': 42 } data = load_data() y = load_data_y() # Train model (here we use a stub dataset just to make the example clear) model = fit_classifier(hyper_params, data, y) # Evaluate the model using your own metrics scores = evaluate(model) # Save the model generated to the models/ folder path = save( model, \"models/my_model\", sample_data=data, scores=scores, hyper_params=hyper_params, ) return path # Optionally you can save other files (dataframes, JSON objects) in the data/ folder """; dc1:language sub:_LinguisticSystem; a pplan:Plan; rdfs:label "My model training workflow" . pplan:isStepOfPlan sub:_plan . pplan:bindsTo . pplan:bindsTo , . pplan:bindsTo , . pplan:bindsTo . pplan:bindsTo sub:_result . } sub:provenance { sub:assertion prov:generatedAtTime "2022-12-21T14:49:54.664631"^^xsd:dateTime . } sub:pubinfo { sub:sig npx:hasAlgorithm "RSA"; npx:hasPublicKey "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlKZel+uM9w+JiWuhs0NHtaXdRrGkGAjvnnLFQL2nmgZDGIjX+is2YJBd6R2kBkr67lYiUDWdtih0F0yqUlAW5GdYUihk1MBiWyLe4RNt7I5iC/5wwK/i5vV6/YKa6Zwf4oymwChpdXddlKc6d73StgFqOafQPeNeBUHTZbkmUKFAqGXf0nAclB23DEeN5qVl6XRa1qqtL91AKW+UxTvlZR3pFNFn8xKTfbOSgmuAkYSUwJrp84rNI92qXYtOJ12oH0oT/enzcThxcfPLomGc9BMd+QBCj08LdrtuAArHzcivMKDzreDCD+haZ/GdObRWHpQ5O4bEWIx3dZVQq7t0KQIDAQAB"; npx:hasSignature "d98vNHRSoJSTgffHyKclp/GCFPC3t5yR3rZowf/e5xItHIITqw45H0R8UC+ay+OrQmWLNyEPuiaRJcA/MC2IqI+nFTxn9LkdmhTKQ/uVXjAxpXh+/s9t4eNnj1D7BNmnVQSWVhJwbG7lX1GtvJaPsduIvwxM3ptOkfPDVvZef97vLJdVqz73i9CuZFcfQir5otrUWLKgsAoMA7R+AbRctVDDItQyGMioPe4Df5QfpZH46mOEWMngtxJmcHA+H/ZIsxh7BhRTdKy9DR8udGdqooNHGKdhucNtLDGPVRsb/UQAxfu4EgqugqvmfHZGubuMhd8yqvqQ05WpFc9xSfyKrQ=="; npx:hasSignatureTarget this: . this: prov:wasAttributedTo orcid:0000-0000-0000-0000 . }