@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:51:08.424922"^^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 "BhXQonrFrEjZOZJDsLUmveHNK5Rbhxad38Khq//17Nh8mYxcgrxygVudkuoTpD0TuixsND1uFM6n3wWviZYqIWYvtcfv6WO3gCXhYpUPj+hPHC3bVhaoYDWgMhvSyHNXThFKnGoJ8N9Nj7551wjE6utc713V3Kqk0WLlT4yUZrakJmIxIF+AjZ2KfEBfRNHj1mGIPpk90n1tvAAREvZg2YwkRQC2FGsn5X55P9WdfHz2wWeG6M09X+jYKLSvAWDizFURObltVaY9h7uORG+6g9WkJuW4epICg7DKM8omsUuoFfb4FQZb/kmO+wk1Olpyq1V0KfqBe7Nwqhmp5sjR8A=="; npx:hasSignatureTarget this: . this: prov:wasAttributedTo orcid:0000-0000-0000-0000 . }