@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 { sub:paragraph a gen:Paragraph; schema:about nt:NanopubTemplate; schema:title "The three kinds of template"; gen:hasContent """

There is one kind of template for each part of a nanopublication that gets filled in: nt:AssertionTemplate for the assertion, nt:ProvenanceTemplate for the provenance, and nt:PubinfoTemplate for the publication info. All three are subclasses of nt:NanopubTemplate and work the same way.

A publish form combines one assertion template, one provenance template, and any number of publication-info templates. The assertion template is the one you pick; it gives the form its name and normally brings sensible defaults for the other two.

A template can additionally be typed nt:UnlistedTemplate. It is then no longer offered when creating new nanopublications but stays usable by its URI, so nanopublications already made from it can still be opened and updated. This is how a template is retired without breaking anything.

"""; gen:hasPositionString "020" . } sub:provenance { sub:assertion prov:wasAttributedTo . } sub:pubinfo { this: dct:created "2026-09-10T10:15:50Z"^^xsd:dateTime; dct:creator ; dct:license ; npx:introduces sub:paragraph; rdfs:label "The three kinds of template"; 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 "I5N6lMhy/ZCbEke8Z1Wx5p3ZRhgSPTzhFdIj7zXgoOjoQUQfEBdKJ7KDMyLCs6395zzqaa3IHmxtUztaO/LBIK2ITTXsumnhdiCWTbz9LX/xvfnzRIiRuFKcoI4508eowJ5dszYDvKmdl3jNx3OEIn8svlVAGvC5rutBdPJAlK/RXocbBUV0uLOGzFqIlAdayxMgS9U1dj5hGWXuP6T+BGbo80T7EpufasCUxeLwq9PbGmot1IZ1bu1M+G7n7riFoS0p13tiZfnxuhKgthOsgOk0CC+/2NjGWizH6ginCLP5zEiwnDARrag9iW3/sA+IHQLEV/qWt5lWUqq91riVBw=="; npx:hasSignatureTarget this:; npx:signedBy . }