@prefix this: . @prefix sub: . @prefix bpmn: . @prefix np: . @prefix npx: . @prefix pplan: . @prefix xsd: . @prefix dcterms: . @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 dcterms: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:20:33.267939"^^xsd:dateTime . } sub:pubInfo { sub:sig npx:hasAlgorithm "RSA"; npx:hasPublicKey "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB"; npx:hasSignature "DmYmfaOwgEGQnEJlw+XStaZIKlnv7u0uMMz9BALe+OS5gpBoSDnx9PioeOzFy4vW7cPY+fyju8SvQeQu8L602JOYcmzNcTIt6j+dJKDlIVpwOVnyBS+/z40mgqTQ0d+O5o4Bd1sLcD4B2O60GujLEx8ZQ8isPDAyJDK/hpDnAF0="; npx:hasSignatureTarget this: . this: npx:introduces sub:step; prov:generatedAtTime "2021-01-26T10:20:33.267939"^^xsd:dateTime; prov:wasAttributedTo . }