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: "RAKflWhZmY5oaaMRefOjgDuKAFENcz60opmmd2aUVdg7w" } } rows { namespace { name: "this" value { prefix_id: 1 } } } rows { prefix { value: "https://w3id.org/np/RAKflWhZmY5oaaMRefOjgDuKAFENcz60opmmd2aUVdg7w/" } } rows { name { } } rows { namespace { name: "sub" value { prefix_id: 2 } } } rows { prefix { value: "http://www.nanopub.org/nschema#" } } rows { namespace { name: "np" value { prefix_id: 3 name_id: 2 } } } rows { prefix { value: "https://w3id.org/kpxl/grlc/" } } rows { namespace { name: "grlc" value { prefix_id: 4 name_id: 2 } } } rows { prefix { value: "http://purl.org/dc/terms/" } } rows { namespace { name: "dct" value { prefix_id: 5 name_id: 2 } } } rows { prefix { value: "https://w3id.org/np/o/ntemplate/" } } rows { namespace { name: "nt" value { prefix_id: 6 name_id: 2 } } } rows { prefix { value: "http://purl.org/nanopub/x/" } } rows { namespace { name: "npx" value { prefix_id: 7 name_id: 2 } } } rows { prefix { value: "http://www.w3.org/2001/XMLSchema#" } } rows { namespace { name: "xsd" value { prefix_id: 8 name_id: 2 } } } rows { prefix { value: "http://www.w3.org/2000/01/rdf-schema#" } } rows { namespace { name: "rdfs" value { prefix_id: 9 name_id: 2 } } } rows { prefix { value: "https://orcid.org/" } } rows { namespace { name: "orcid" 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 { prefix { value: "http://xmlns.com/foaf/0.1/" } } rows { namespace { name: "foaf" value { prefix_id: 12 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: 3 name_id: 3 } o_iri { prefix_id: 2 } g_iri { } } } rows { name { value: "hasProvenance" } } rows { name { value: "provenance" } } rows { quad { p_iri { prefix_id: 3 } o_iri { prefix_id: 2 } } } rows { name { value: "hasPublicationInfo" } } rows { name { value: "pubinfo" } } rows { quad { p_iri { prefix_id: 3 } 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: 13 } o_iri { prefix_id: 3 } } } rows { name { value: "get-agent-roles-in-space" } } rows { name { value: "description" } } rows { quad { s_iri { prefix_id: 2 } p_iri { prefix_id: 5 } o_literal { lex: "For one agent seen in the context of one space or maintained resource, the roles that agent validly holds there: the role as the space named it (\"project lead\", \"data steward\", \"participant\"), the authority tier the role was validated at, who granted it, and the granting nanopublication. Reads the validated space state, so revocations are already applied and a self-declared claim that never validated does not appear. Written for a part page, where the agent arrives as the target and the owning resource as the context; an agent with no role there gets no rows." } g_iri { prefix_id: 2 name_id: 4 } } } rows { name { value: "license" } } rows { prefix { value: "http://www.apache.org/licenses/" } } rows { name { value: "LICENSE-2.0" } } rows { quad { p_iri { prefix_id: 5 name_id: 14 } o_iri { prefix_id: 14 } } } rows { name { value: "grlc-query" } } rows { quad { p_iri { prefix_id: 13 name_id: 10 } o_iri { prefix_id: 4 name_id: 16 } } } rows { name { value: "label" } } rows { quad { p_iri { prefix_id: 9 } o_literal { lex: "Get the roles of an agent in a space" } } } rows { name { value: "endpoint" } } rows { prefix { value: "https://w3id.org/np/l/nanopub-query-1.1/repo/" } } rows { name { value: "spaces" } } rows { quad { p_iri { prefix_id: 4 } o_iri { prefix_id: 15 } } } rows { name { value: "sparql" } } rows { quad { p_iri { prefix_id: 4 } o_literal { lex: "prefix npa: \nprefix gen: \nprefix np: \nprefix foaf: \nprefix schema: \n\nselect ?relation ?relation_label ?tier_label\n (sample(?grantedBy) as ?granted_by) (sample(?grantedByName) as ?granted_by_label)\n (sample(?grantNp) as ?np) (\"^\" as ?np_label)\nwhere {\n values ?__context_multi_iri {}\n graph npa:graph { npa:thisRepo npa:hasCurrentSpaceState ?g . }\n # The context is the space itself on a space page, and the maintaining space on the\n # page of a maintained resource; the optional hop covers both.\n graph ?g { ?__context_multi_iri npa:isMaintainedBy? ?space . }\n graph ?g {\n ?ri a gen:RoleInstantiation ;\n npa:forSpace ?space ;\n npa:forAgent ?_agent_iri ;\n npa:hasRoleType ?tier .\n }\n # Nested deliberately: an admin row carries no gen:hasRole, and an unnested label\n # lookup would join the unbound ?role against every role declaration in the store.\n optional {\n graph ?g { ?ri gen:hasRole ?role }\n optional {\n graph npa:spacesGraph { ?rd npa:role ?role ; npa:viaNanopub ?roleNp . }\n graph npa:graph { ?roleNp np:hasAssertion ?ra . }\n graph ?ra { ?role schema:name ?roleName }\n }\n }\n # Nested for the same reason: an unbound ?grantPubkey would match every account.\n optional {\n graph ?g { ?ri npa:viaNanopub ?grantNp }\n optional {\n graph npa:graph { ?grantNp npa:hasValidSignatureForPublicKeyHash ?grantPubkey }\n graph ?g { ?grantAcct a npa:AccountState ; npa:pubkey ?grantPubkey ; npa:agent ?grantedBy }\n optional { graph ?g { ?grantedBy foaf:name ?grantedByName } }\n }\n }\n bind(lcase(replace(strafter(str(?tier), \"gen/terms/\"), \"Role\", \"\")) as ?tier_label)\n bind(if(?tier = gen:AdminRole, 1, if(?tier = gen:MaintainerRole, 2, if(?tier = gen:MemberRole, 3, 4))) as ?tier_rank)\n bind(coalesce(?roleName, ?tier_label) as ?relation_label)\n bind(coalesce(?role, ?tier) as ?relation)\n}\ngroup by ?relation ?relation_label ?tier_label ?tier_rank\norder by ?tier_rank ?relation_label" } } } rows { name { value: "wasAttributedTo" } } rows { name { value: "0000-0002-1267-0234" } } rows { quad { s_iri { prefix_id: 2 name_id: 4 } p_iri { prefix_id: 11 name_id: 21 } o_iri { prefix_id: 10 } g_iri { prefix_id: 2 name_id: 7 } } } rows { name { value: "name" } } rows { quad { s_iri { prefix_id: 10 name_id: 22 } p_iri { prefix_id: 12 } o_literal { lex: "Tobias Kuhn" } g_iri { prefix_id: 2 name_id: 9 } } } rows { name { value: "created" } } rows { datatype { value: "http://www.w3.org/2001/XMLSchema#dateTime" } } rows { quad { s_iri { prefix_id: 1 name_id: 1 } p_iri { prefix_id: 5 name_id: 24 } o_literal { lex: "2026-09-25T13:55:04Z" datatype: 1 } } } rows { name { value: "creator" } } rows { quad { p_iri { } o_iri { prefix_id: 10 name_id: 22 } } } rows { prefix { value: "https://creativecommons.org/licenses/by/4.0/" } } rows { quad { p_iri { prefix_id: 5 name_id: 14 } o_iri { prefix_id: 16 name_id: 2 } } } rows { name { value: "embeds" } } rows { quad { p_iri { prefix_id: 7 name_id: 26 } o_iri { prefix_id: 2 name_id: 12 } } } rows { quad { p_iri { prefix_id: 9 name_id: 17 } o_literal { lex: "Get the roles of an agent in a space" } } } rows { name { value: "wasCreatedFromProvenanceTemplate" } } rows { prefix { id: 8 value: "http://purl.org/np/" } } rows { name { value: "RAcm8OurwUk15WOgBM9wySo-T3a5h6as4K8YR5MBrrxUc" } } rows { quad { p_iri { prefix_id: 6 name_id: 27 } o_iri { prefix_id: 8 } } } rows { name { value: "wasCreatedFromPubinfoTemplate" } } rows { name { value: "RACJ58Gvyn91LqCKIO9zu1eijDQIeEff28iyDrJgjSJF8" } } rows { quad { p_iri { prefix_id: 6 } o_iri { prefix_id: 1 } } } rows { name { value: "RAukAcWHRDlkqxk7H2XNSegc1WnHI569INvNr-xdptDGI" } } rows { quad { o_iri { } } } rows { name { value: "wasCreatedFromTemplate" } } rows { name { value: "RAEFAt-QcFK0ZhqfvlsmS10BnzGJA0xwOICZXkO-ai87k" } } rows { quad { p_iri { prefix_id: 6 } o_iri { prefix_id: 1 } } } rows { name { value: "sig" } } rows { name { value: "hasAlgorithm" } } rows { quad { s_iri { prefix_id: 2 } p_iri { prefix_id: 7 } o_literal { lex: "RSA" } } } rows { name { value: "hasPublicKey" } } rows { quad { p_iri { } o_literal { lex: "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB" } } } rows { name { value: "hasSignature" } } rows { quad { p_iri { } o_literal { lex: "XDJA3pBmj6nN6jykiiUqPIHL+VP3niFUiw6IMNpQWwAsAukRM1ASNw/8dWb/uas2Mn85/G7MohErIDstx2mSeb5xC7qntaMvtVsDYglAlub12VuwyQYTWayxD8NxdOuFJw4blgz6GPXsZBmiSYMIVJf14hg6bHUyYNwimmsOBF4=" } } } rows { name { value: "hasSignatureTarget" } } rows { quad { p_iri { } o_iri { prefix_id: 1 name_id: 1 } } } rows { name { value: "signedBy" } } rows { quad { p_iri { prefix_id: 7 name_id: 39 } o_iri { prefix_id: 10 name_id: 22 } } }