Status: 
| part | subject | predicate | object | published by | date | |
|---|---|---|---|---|---|---|
|
Assertion
|
|
|||||
|
Assertion
|
Get template info
|
|
||||
|
Assertion
|
|
|||||
|
Assertion
|
Returns key-value facts about a space-governed template kind given as the resource, for display on its maintained-resource page: the label, description, tag, governing space, current governed version nanopub (shown as its short artifact code), and its last-modified date and author, all read off the current governed winner of the (kind, space) pair (newest non-invalidated version signed by a current member+ of the governing space, with the kind validated as maintained by that space -- mirroring get-latest-governed-version). It also yields a 'Use this template' row: a root-relative link (/publish?template=...) that opens the current version's template node on the Nanodash /publish page as a fillable form, with the template's title as the link text. Governed winners are materialized once per kind in a self-contained sub-select. Both columns use the '_noheader' convention so the redundant header row is dropped.
|
|
||||
|
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 ?Property_noheader ?Value_noheader ?Value_label where {
values ?_resource_multi_iri {}
{
select ?gKind (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 { <http://purl.org/nanopub/admin/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
}
filter(?gKind = ?_resource_multi_iri)
bind(iri(strafter(?maxW, '>')) as ?np)
graph npa:graph {
?np npx:embeds ?tmpl ; dct:created ?dateVal ; np:hasAssertion ?a .
optional { ?np npx:signedBy ?authorVal . }
}
graph ?a { ?tmpl dct:isVersionOf ?_resource_multi_iri ; gen:governedBy ?spaceVal . }
optional { graph ?a { ?tmpl rdfs:label ?labelVal } }
optional { graph ?a { ?tmpl dct:description ?descVal } }
optional { graph ?a { ?tmpl nt:hasTag ?tagVal } }
bind(concat('<span><a href="/publish?template=', encode_for_uri(str(?tmpl)), '">', coalesce(?labelVal, str(?tmpl)), '</a></span>') as ?formLink)
values (?ord ?Property_noheader) {
(1 'Label:')
(2 'Description:')
(3 'Tag:')
(4 'Governed by:')
(5 'Current version:')
(6 'Last modified:')
(7 'Last modified by:')
(8 'Use this template:')
}
bind(if(?ord=1, ?labelVal, if(?ord=2, ?descVal, if(?ord=3, ?tagVal, if(?ord=4, ?spaceVal, if(?ord=5, ?np, if(?ord=6, str(?dateVal), if(?ord=7, ?authorVal, if(?ord=8, ?formLink, '')))))))) as ?Value_noheader)
filter(bound(?Value_noheader))
bind(if(?ord=5, concat(substr(strafter(str(?np), '/np/'), 1, 10), '…'), '') as ?Value_label)
}
order by ?ord
|
|
||||
|
PublicationInfo
|
|
|||||
|
Assertion
|
|