Status: 
| part | subject | predicate | object | published by | date | |
|---|---|---|---|---|---|---|
|
Assertion
|
|
|||||
|
Assertion
|
Get all spaces
|
|
||||
|
Assertion
|
|
|||||
|
Assertion
|
Returns one row per known space with its label, type IRI and short type name, plus the number of members (Admin + Maintainer + Member tiers) and the number of observers (Observer tier), ordered by member count (most first), then alphabetically by space label. Intended for the /spaces table view.
|
|
||||
|
Assertion
|
|
|||||
|
Assertion
|
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix npa: <http://purl.org/nanopub/admin/>
prefix npx: <http://purl.org/nanopub/x/>
prefix gen: <https://w3id.org/kpxl/gen/terms/>
select ?space_iri (sample(?lbl) as ?space_iri_label) (sample(?t) as ?type) (sample(?tlbl) as ?type_label) (coalesce(sample(?mc), 0) as ?members_count) (coalesce(sample(?oc), 0) as ?observers_count) where {
graph npa:spacesGraph {
?spaceRef a npa:SpaceRef ; npa:spaceIri ?space_iri .
?def a npa:SpaceDefinition ;
npa:forSpaceRef ?spaceRef ;
npa:viaNanopub ?np .
}
graph npa:graph {
?np rdfs:label ?lbl .
?np npx:hasNanopubType ?t .
filter(strstarts(str(?t), "https://w3id.org/kpxl/gen/terms/"))
filter(?t != gen:Space)
}
filter not exists { graph npa:graph { ?invNp npx:invalidates ?np . } }
bind(strafter(str(?t), "https://w3id.org/kpxl/gen/terms/") as ?tlbl)
optional {
select ?space_iri (count(distinct ?memberAgent) as ?mc) (count(distinct ?observerAgent) as ?oc) where {
graph npa:graph { <http://purl.org/nanopub/admin/thisRepo> npa:hasCurrentSpaceState ?g . }
graph ?g {
?ri a gen:RoleInstantiation ; npa:forSpace ?space_iri ; npa:forAgent ?agent ; npa:hasRoleType ?tier .
}
bind(if(?tier != gen:ObserverRole, ?agent, ?unboundM) as ?memberAgent)
bind(if(?tier = gen:ObserverRole, ?agent, ?unboundO) as ?observerAgent)
} group by ?space_iri
}
} group by ?space_iri order by desc(coalesce(sample(?mc), 0)) lcase(sample(?lbl))
|
|
||||
|
PublicationInfo
|
|
|||||
|
Assertion
|
|