@prefix bpmn: . @prefix dc1: . @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 { sub:_LinguisticSystem a schema:ComputerLanguage; rdfs:label "python"; rdfs:seeAlso ; owl:versionInfo "3.9.15.final.0" . sub:_hyper_params a pplan:Variable; rdfs:comment "None"; rdfs:label "hyper_params" . sub:_model a pplan:Variable; rdfs:comment "None"; rdfs:label "model" . sub:_out1 a pplan:Variable; rdfs:comment "str"; rdfs:label "out1" . sub:_path a pplan:Variable; rdfs:comment "None"; rdfs:label "path" . sub:_sample_data a pplan:Variable; rdfs:comment "None"; rdfs:label "sample_data" . sub:_scores a pplan:Variable; rdfs:comment "None"; rdfs:label "scores" . sub:_step dc1:description """@is_fairstep(label='Save a model') def save( model, path, sample_data, scores = None, hyper_params = None, # model: Any, # path: str, # sample_data: Any, # scores: Optional[Dict] = None, # hyper_params: Optional[Dict] = None, ) -> str: model_name = path.rsplit('/', 1)[-1] # print(os.path.isabs(path)) # if not os.path.isabs(path): # path = os.path.join(os.getcwd(), path) log.info(f\"💾 Saving model in {path}\") # mlem_model = MlemModel.from_obj(model, sample_data=sample_data) # mlem_model.dump(path) # print(mlem_model) mlem.save(model, path, sample_data=sample_data) g = get_run_metadata(scores, sample_data, hyper_params, model_name) g.serialize(f\"{path}.ttl\", format='ttl') # os.chmod(f\"{path}.ttl\", 0o644) # os.chmod(f\"{path}.mlem\", 0o644) # TODO: generate and store RDF metadata return path """; dc1:language sub:_LinguisticSystem; pplan:hasInputVar sub:_hyper_params, sub:_model, sub:_path, sub:_sample_data, sub:_scores; pplan:hasOutputVar sub:_out1; a bpmn:ScriptTask, pplan:Step; rdfs:label "Save a model" . } sub:provenance { sub:assertion prov:generatedAtTime "2022-12-21T14:46:41.265080"^^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 "F95Lz0JJquuxkjE3y9x5kkfslTzK7D4UrlK5tpW8tt2ay3kAwzxEn81OOWV5OtCl/AHj2QAPWnh9EtfvEcZ8Ts35vrRGTn3t3CDAvDz/mnIymQUujK7CJz9vXxqlrI+q1rInAaWQtd139X8YOYF5f0vItlcXMjbez+Rzf/4hhzcyrsBhcR67SpGMt7GF/674jthix6tK6iq1t0Qy1AQoBq3HGk/EFRLLuf/Ac6R1sAgfLsmquiqCcf1Yi1qWiwLCBTZJZDb3ay1CL7o2uzGoUNhZJjokPyeBLFOYK8t4+Me2Yda9t6DFflGIFH5mUndG4czmUAjaagplALbS5mBTzQ=="; npx:hasSignatureTarget this: . this: prov:wasAttributedTo orcid:0000-0000-0000-0000 . }