@prefix this: . @prefix sub: . @prefix schema: . @prefix gen: . @prefix np: . @prefix dct: . @prefix nt: . @prefix npx: . @prefix xsd: . @prefix rdfs: . @prefix prov: . sub:Head { this: a np:Nanopublication; np:hasAssertion sub:assertion; np:hasProvenance sub:provenance; np:hasPublicationInfo sub:pubinfo . } sub:assertion { a gen:Paragraph; schema:about nt:NanopubTemplate; schema:title "How templates are identified and versioned"; gen:hasContent """

A template is referred to by a URI. In older templates that is the URI of the nanopublication itself; newer templates give the template a name of its own inside the nanopublication and mark it as embedded, and are then referred to by that name. Both forms remain valid.

Like any nanopublication, a template can be superseded by a new version, and forms opened on an older version can offer the latest one. A template can also declare a stable identity with dct:isVersionOf and name a space with gen:governedBy; then the current version is the newest one published by a member of that space, rather than by the holder of one particular key. This lets a community keep a shared template up to date even when its original author is no longer around. The same holds for the other two parts of a nanopublication: the forms for defining provenance and publication-info templates offer those two statements as well, and tools follow them there too.

"""; gen:hasPositionString "110" . } sub:provenance { sub:assertion prov:wasAttributedTo . } sub:pubinfo { this: dct:created "2026-10-23T12:01:58Z"^^xsd:dateTime; dct:creator ; dct:license ; npx:introduces ; rdfs:label "Editing a paragraph"; prov:wasDerivedFrom ; nt:wasCreatedFromProvenanceTemplate ; nt:wasCreatedFromPubinfoTemplate , ; nt:wasCreatedFromTemplate . sub:sig npx:hasAlgorithm "RSA"; npx:hasPublicKey "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl8cMusqtNyKA6UIsi3f7BAcZmHQXWxU0qk0PLsboMWQxYrGBfGgHTgRHJrBRxL+Zn9kJHKVmz2smDcjCBptXi/OwWy80gjsx+Pbe6IWz3zFPWF1UoFIKfPnC0slV67CQgdM853zW7Bmk9/uflCtK4EtZKmPdRGtUHVC7DTVvDBMDzLRGdE2KCBVN29EbM5GGVNvijYbaZQ9OFQPBkQshayqSIyGRr6rreJdkrRVLIzu3uuAjKYydaeXZWSN2JLnVBwrClKUxaEdCwhb5nXpMtKOMD+R+LgaXLeJUWM8BdRSYnta9ZqI5pHY4y3v+eW7J+HHeTvRbHvlik+Z4hFUXmQIDAQAB"; npx:hasSignature "EElA9emVNCcKZ+v7QzmHP401yUNWYCs3bMheI8MdzDTpmlUoBXkQBtqBpaIPy2oc7NFTpMqMGcOOrEig9ME3S/6oNPSrB785u1sep3gUsKXLvkJ6bDXNzwqalH9AwNSEEaKyuMf46VY/qt9BOmNz/infiFa4mOmBNP5BAT+15+6VT/Y/caxFGc0ZlFg+zUtQoWb8agkuGuvhTIEttFfsyzlIwq2SXTqR2iYmY+UWQprn/qYHbhQ1FAoNeohdhVjvwwL+KK7HS+90TdUbVPyLDIAC0kImyzvWLWC30AxLuHW+0DoO0MvxLhSCLT4JZ+WdIrPoVcDDGGOWOS5nM+000g=="; npx:hasSignatureTarget this:; npx:signedBy . }