@prefix ns1: . @prefix orcid: . @prefix this: . @prefix sub: . @prefix bpmn: . @prefix np: . @prefix npx: . @prefix pplan: . @prefix xsd: . @prefix rdfs: . @prefix prov: . sub:Head { this: np:hasAssertion sub:assertion; np:hasProvenance sub:provenance; np:hasPublicationInfo sub:pubInfo; a np:Nanopublication . } sub:assertion { sub:imgstr a "str", pplan:Variable; rdfs:label "imgstr" . sub:rotate_image-output1 a "str", pplan:Variable; rdfs:label "rotate_image-output1" . sub:step ns1:description """@is_fairstep(label='Rotating an image represented as a string by 180 degrees') def rotate_image(imgstr:str) -> str: imgIn = Image.open(io.BytesIO(imgstr)) imgOut = imgIn.transpose(Image.ROTATE_180) imgOutStr = io.BytesIO() imgOut.save(imgOutStr, format=\"png\") return imgOutStr.getvalue() """; pplan:hasInputVar sub:imgstr; pplan:hasOutputVar sub:rotate_image-output1; a bpmn:ScriptTask, pplan:Step; rdfs:label "Rotating an image represented as a string by 180 degrees" . } sub:provenance { sub:assertion prov:generatedAtTime "2021-01-26T10:26:20.249655"^^xsd:dateTime . } sub:pubInfo { sub:sig npx:hasAlgorithm "RSA"; npx:hasPublicKey "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB"; npx:hasSignature "SGJXWQJhq6y/LATeUdVyxSPWPlBEGWfGiNo8S8y48vque9gDxTZKb1pNQvAQmQa1LTi61LZropzXFYFLDWtLzR2tsHRVIjosKMBknQ2sIef9NGC8Dr2DZsx50P9HV1nW7RjEVnjHimJQtWehw+WTcxFgK3oXArEmEbIUuwvZTps="; npx:hasSignatureTarget this: . this: npx:introduces sub:step; prov:generatedAtTime "2021-01-26T10:26:20.249655"^^xsd:dateTime; prov:wasAttributedTo orcid:0000-0002-1267-0234 . }