Get term version history
type: Nanopublication
has assertion: assertion
has provenance: provenance
has publication info: pubinfo
created: 2026-08-12T08:51:20Z
creator: Tobias Kuhn
license: https://creativecommons.org/licenses/by/4.0/
embeds: Get term version history

Get term version history
type: grlc-query
description: Returns the version history of a term (a class or other resource defined in the namespace of a maintained resource, e.g. a biochementity of an OWL vocabulary), for display on the term's resource-part page. Each row is a nanopublication that introduces, describes, or embeds the given term, showing its creation date, the label the term carried in that version, the change note attached to that version's publication info (skos:changeNote, truncated to its first line and at most 50 characters), and its author (signer, with the name resolved from the maintaining space's trust state where available). The status column is a multi-value literal listing '✓ current' (always first, when applicable) followed by the "approved", curation states of that version: "deprecated" (owl:DeprecatedClass), "withdrawn" (gen:WithdrawnTerm) and "example" (npx:ExampleNanopub). It replaces the former headerless status marker. A version counts as approved when the newest non-invalidated approval/disapproval nanopublication targeting it is an npx:approvesOf (latest wins across all publishers: a later npx:disapprovesOf neutralises an earlier approval, and a later approval reinstates it), its publisher signed with a key that belongs to a current member+ of the maintaining space, and that publisher is not the signer of the nanopublication being approved (self-approval never counts). The approve_target, disapprove_target and approval_choice columns are action data rather than content: exactly one of the two targets is non-empty per row -- approve_target while the row is unapproved, disapprove_target once it is approved -- so a view can offer a per-row approve/disapprove action whose label follows the current state, and approval_choice carries the matching npx predicate to pre-fill in the approval template. A contribution signed by a software agent (an npx:SoftwareAgent that declares its own key, e.g. a curation bot) counts as approved by default, on the grounds that the space admitted it as a member: …
license: LICENSE-2.0
endpoint: full
sparql: prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> prefix dct: <http://purl.org/dc/terms/> prefix np: <http://www.nanopub.org/nschema#> prefix npa: <http://purl.org/nanopub/admin/> prefix npx: <http://purl.org/nanopub/x/> prefix gen: <https://w3id.org/kpxl/gen/terms/> prefix foaf: <http://xmlns.com/foaf/0.1/> prefix skos: <http://www.w3.org/2004/02/skos/core#> prefix owl: <http://www.w3.org/2002/07/owl#> select ?Date ?Label ?Change_note ?Author ?Author_label ?Status_multi ?override_target ?approve_target ?disapprove_target ?approval_choice ?np ?np_label where { { select (max(concat(str(?cDate), ">", str(?cNp))) as ?maxCurrent) where { graph npa:graph { ?cNp npa:hasValidSignatureForPublicKeyHash ?cPubkeyhash ; dct:created ?cDate ; np:hasAssertion ?cA . ?cNp npx:introduces|npx:describes|npx:embeds ?_term_iri . filter not exists { ?cInv npx:invalidates ?cNp ; npa:hasValidSignatureForPublicKeyHash ?cPubkeyhash . } } graph ?cA { ?_term_iri dct:isPartOf ?cResource . } service <https://w3id.org/np/l/nanopub-query-1.1/repo/spaces> { graph npa:graph { <http://purl.org/nanopub/admin/thisRepo> npa:hasCurrentSpaceState ?cStateG . } graph ?cStateG { ?cResource npa:isMaintainedBy ?cSpace . ?cRi a gen:RoleInstantiation ; npa:forSpace ?cSpace ; npa:hasRoleType ?cTier ; npa:forAgent ?cAgent . values ?cTier { gen:AdminRole gen:MaintainerRole gen:MemberRole } ?cAcct a npa:AccountState ; npa:agent ?cAgent ; npa:pubkey ?cPubkeyhash . } } } } { select (group_concat(distinct ?mPubkeyhash; separator=" ") as ?memberPubkeys) where { graph npa:graph { ?mNp npx:introduces|npx:describes|npx:embeds ?_term_iri ; np:hasAssertion ?mA . } graph ?mA { ?_term_iri dct:isPartOf ?mResource . } service <https://w3id.org/np/l/nanopub-query-1.1/repo/spaces> { graph npa:graph { <http://purl.org/nanopub/admin/thisRepo> npa:hasCurrentSpaceState ?mStateG . } graph ?mStateG { ?mResource npa:isMaintainedBy ?mSpace . ?mRi a gen:RoleInstantiation ; npa:forSpace ?mSpace ; npa:hasRoleType ?mTier ; npa:forAgent ?mAg…

sig
has algorithm: RSA
signed by: Tobias Kuhn