rows { options { physical_type: PHYSICAL_STREAM_TYPE_QUADS max_name_table_size: 128 max_prefix_table_size: 16 max_datatype_table_size: 16 logical_type: LOGICAL_STREAM_TYPE_DATASETS version: 2 } } rows { prefix { value: "https://w3id.org/np/" } } rows { name { value: "RAfjDkNSefXVY2RooOqr3w4uevCClY4E0T8evrIK8Qs10" } } rows { namespace { name: "this" value { prefix_id: 1 } } } rows { prefix { value: "https://w3id.org/np/RAfjDkNSefXVY2RooOqr3w4uevCClY4E0T8evrIK8Qs10/" } } rows { name { } } rows { namespace { name: "sub" value { prefix_id: 2 } } } rows { prefix { value: "http://schema.org/" } } rows { namespace { name: "schema" value { prefix_id: 3 name_id: 2 } } } rows { prefix { value: "https://w3id.org/kpxl/gen/terms/" } } rows { namespace { name: "gen" value { prefix_id: 4 name_id: 2 } } } rows { prefix { value: "http://www.nanopub.org/nschema#" } } rows { namespace { name: "np" value { prefix_id: 5 name_id: 2 } } } rows { prefix { value: "http://purl.org/dc/terms/" } } rows { namespace { name: "dct" value { prefix_id: 6 name_id: 2 } } } rows { prefix { value: "https://w3id.org/np/o/ntemplate/" } } rows { namespace { name: "nt" value { prefix_id: 7 name_id: 2 } } } rows { prefix { value: "http://purl.org/nanopub/x/" } } rows { namespace { name: "npx" value { prefix_id: 8 name_id: 2 } } } rows { prefix { value: "http://www.w3.org/2001/XMLSchema#" } } rows { namespace { name: "xsd" value { prefix_id: 9 name_id: 2 } } } rows { prefix { value: "http://www.w3.org/2000/01/rdf-schema#" } } rows { namespace { name: "rdfs" value { prefix_id: 10 name_id: 2 } } } rows { prefix { value: "http://www.w3.org/ns/prov#" } } rows { namespace { name: "prov" value { prefix_id: 11 name_id: 2 } } } rows { name { value: "hasAssertion" } } rows { name { value: "assertion" } } rows { name { value: "Head" } } rows { quad { s_iri { prefix_id: 1 name_id: 1 } p_iri { prefix_id: 5 name_id: 3 } o_iri { prefix_id: 2 } g_iri { } } } rows { name { value: "hasProvenance" } } rows { name { value: "provenance" } } rows { quad { p_iri { prefix_id: 5 } o_iri { prefix_id: 2 } } } rows { name { value: "hasPublicationInfo" } } rows { name { value: "pubinfo" } } rows { quad { p_iri { prefix_id: 5 } o_iri { prefix_id: 2 } } } rows { prefix { value: "http://www.w3.org/1999/02/22-rdf-syntax-ns#" } } rows { name { value: "type" } } rows { name { value: "Nanopublication" } } rows { quad { p_iri { prefix_id: 12 } o_iri { prefix_id: 5 } } } rows { name { value: "paragraph" } } rows { name { value: "about" } } rows { name { value: "NanopubTemplate" } } rows { quad { s_iri { prefix_id: 2 } p_iri { prefix_id: 3 } o_iri { prefix_id: 7 } g_iri { prefix_id: 2 name_id: 4 } } } rows { name { value: "title" } } rows { quad { p_iri { prefix_id: 3 name_id: 15 } o_literal { lex: "How templates are identified and versioned" } } } rows { name { value: "Paragraph" } } rows { quad { p_iri { prefix_id: 12 name_id: 10 } o_iri { prefix_id: 4 name_id: 16 } } } rows { name { value: "hasContent" } } rows { quad { p_iri { } o_literal { lex: "
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.
\nLike 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 kind 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.