🔗 References (max. 100)

show query show view full screen
part subject predicate object published by date
Assertion
Assertion
Get pubinfo templates
Assertion
Assertion
Returns the basic info of all pubinfo templates. Supports both template identity shapes (docs/template-identity-and-governance.md in the nanodash repo): the label is read off the node typed nt:PubinfoTemplate in the assertion -- the assertion graph URI for legacy templates, the embedded template node for templates with embedded identity -- falling back to the assertion graph URI if no typed node is found. Governed version pairs are deduplicated: a version declaring dct:isVersionOf plus gen:governedBy is listed only if it is the current governed winner of its (kind, space) pair -- the newest non-invalidated version signed by a current member+ of the governing space, with the kind validated as maintained by that space (mirroring the get-latest-governed-version resolver). The winners are materialized once in a single-row group_concat sub-select sharing no variables with the outer query, then checked via string containment; this replaces the previous optional-joined sub-select, which relied on RDF4J's non-standard left-join behavior (under strict SPARQL semantics the unbound cross-join would drop non-governed templates) and risked per-row re-evaluation of the federated SERVICE call. A governed version whose pair does not validate is kept (inert gen:governedBy, matching the resolver's pin-is-the-floor semantics); non-governed versions are unaffected.
Assertion
Assertion
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 nt: <https://w3id.org/np/o/ntemplate/> prefix gen: <https://w3id.org/kpxl/gen/terms/> select ?np ?pubkey ?pubkeyhash ?date ?label ?creator where { { select (group_concat(?w1; separator="|") as ?winners) where { { select ?gKind ?gSpace (max(concat(str(?gDate), ">", str(?gNp))) as ?maxW) where { graph npa:graph { ?gNp npa:hasValidSignatureForPublicKeyHash ?gPubkeyhash ; dct:created ?gDate ; npx:embeds ?gVersion ; np:hasAssertion ?gA . filter not exists { ?gInv npx:invalidates ?gNp ; npa:hasValidSignatureForPublicKeyHash ?gPubkeyhash . } } graph ?gA { ?gVersion dct:isVersionOf ?gKind ; gen:governedBy ?gSpace . } service <https://w3id.org/np/l/nanopub-query-1.1/repo/spaces> { graph npa:graph { npa:thisRepo npa:hasCurrentSpaceState ?stateG . } graph ?stateG { ?gKind npa:isMaintainedBy ?gSpace ; npa:hasGoverningSpaceRef ?gRef . ?gRi a gen:RoleInstantiation ; npa:forSpace ?gSpace ; npa:forSpaceRef ?gRef ; npa:hasRoleType ?gTier ; npa:forAgent ?gAgent . filter(?gTier = gen:AdminRole || ?gTier = gen:MaintainerRole || ?gTier = gen:MemberRole) ?gAcct a npa:AccountState ; npa:agent ?gAgent ; npa:pubkey ?gPubkeyhash . } } } group by ?gKind ?gSpace } bind(concat(str(?gKind), ">", str(?gSpace), ">", ?maxW) as ?w1) } } graph npa:graph { ?np npa:hasValidSignatureForPublicKey ?pubkey . filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . } ?np npa:hasValidSignatureForPublicKeyHash ?pubkeyhash . ?np npx:hasNanopubType nt:PubinfoTemplate . ?np dct:created ?date . ?np np:hasAssertion ?a . optional { ?np npx:signedBy ?creator . } } optional { graph ?a { ?tnode a nt:PubinfoTemplate } } bind(coalesce(?tnode, ?a) as ?t) graph ?a { ?t rdfs:label ?label . } optional { graph ?a { ?t dct:isVersionOf ?kind ; gen:governedBy ?space . } } bind(concat("|", coalesce(?winners, ""), "|") as ?wlist) filter( !bound(?kind) || !contains(?wlist, concat("|", str(?kind), ">", str(?space), ">")) || contains(?wlist, concat("|", str(?kind), ">", str(?space), ">", str(?date), ">", str(?np), "|")) ) } order by desc(?date)
PublicationInfo