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: "RA85d6wj-xlk24FS5-RKPsM4Ry7VOMkJ4sDFFqmGjhHmU" } } rows { namespace { name: "this" value { prefix_id: 1 } } } rows { prefix { value: "https://w3id.org/np/RA85d6wj-xlk24FS5-RKPsM4Ry7VOMkJ4sDFFqmGjhHmU/" } } 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-view-info" } } rows { name { value: "description" } } rows { quad { s_iri { prefix_id: 2 } p_iri { prefix_id: 5 } o_literal { lex: "Returns key-value facts about a space-governed resource view given as the resource (its version-independent IRI), for display on its maintained-resource page: the title (falling back to the label), description, view type (with a note when the view shows a query form first), the query it runs (labelled with the query\'s own label), the kinds of page it applies to, the governing space, the 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 (view, space) pair (newest non-invalidated version signed by a current member+ of the governing space, with the view validated as maintained by that space -- mirroring get-latest-governed-version). The view counterpart of get-template-info. A last row, \'Update this view\', is a root-relative link that Nanodash renders as a button: it opens the current version in the publish form\'s override fill mode, i.e. as the starting point of the next version, with the template the current version was created from (nt:wasCreatedFromTemplate, at template-version=latest, lexicographically first where there are several) or else the generic view template. It is shown only to a viewer who currently holds admin, maintainer or member tier in the governing space: the tier holders of the view\'s governing space ref are materialized once in a self-contained sub-select and matched against the viewer, bound by Nanodash into the magic parameter ?__CURRENTUSER_multi_iri, by string containment; the match is coalesce-guarded, so a logged-out viewer fails closed and gets no update row. A view with no display type is reported as tabular, which is how Nanodash renders it. Both columns use the \'_noheader\' convention so the redundant header row is dropped." } 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 view info" } } } rows { name { value: "endpoint" } } rows { prefix { value: "https://w3id.org/np/l/nanopub-query-1.1/repo/" } } rows { name { value: "full" } } 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 rdfs: \nprefix dct: \nprefix np: \nprefix npa: \nprefix npx: \nprefix nt: \nprefix gen: \n\nselect ?Property_noheader ?Value_noheader ?Value_label where {\n values ?_resource_multi_iri {}\n values ?__CURRENTUSER_multi_iri {}\n {\n select ?np ?version ?dateVal ?authorVal ?spaceVal ?queryVal ?metaTmplVal ?isForm\n (coalesce(min(if(lang(?titleRaw) = \'\', ?titleRaw, ?noTitle)), min(?titleRaw)) as ?titleVal)\n (coalesce(min(if(lang(?labelRaw) = \'\', ?labelRaw, ?noLabel)), min(?labelRaw)) as ?labelVal)\n (coalesce(min(if(lang(?descRaw) = \'\', ?descRaw, ?noDesc)), min(?descRaw)) as ?descVal)\n (min(?typeName) as ?typeVal)\n (min(?qLabelRaw) as ?queryLabel)\n (group_concat(distinct ?apClassName; separator=\', \') as ?apClasses)\n (group_concat(distinct ?apNsName; separator=\', \') as ?apNamespaces) where {\n values ?_resource_multi_iri {}\n {\n select ?gKind (max(concat(str(?gDate), \'>\', str(?gNp))) as ?maxW) where {\n values ?_resource_multi_iri {}\n graph ?gA { ?gVersion dct:isVersionOf ?_resource_multi_iri ; gen:governedBy ?gSpace . }\n bind(?_resource_multi_iri as ?gKind)\n graph npa:graph {\n ?gNp npa:hasValidSignatureForPublicKeyHash ?gPubkeyhash ;\n dct:created ?gDate ; npx:embeds ?gVersion ; np:hasAssertion ?gA .\n filter not exists { ?gInv npx:invalidates ?gNp ; npa:hasValidSignatureForPublicKeyHash ?gPubkeyhash . }\n }\n service {\n graph npa:graph { npa:hasCurrentSpaceState ?stateG . }\n graph ?stateG {\n ?gKind npa:isMaintainedBy ?gSpace ; npa:hasGoverningSpaceRef ?gRef .\n ?gRi a gen:RoleInstantiation ; npa:forSpace ?gSpace ; npa:forSpaceRef ?gRef ;\n npa:hasRoleType ?gTier ; npa:forAgent ?gAgent .\n values ?gTier { gen:AdminRole gen:MaintainerRole gen:MemberRole }\n ?gAcct a npa:AccountState ; npa:agent ?gAgent ; npa:pubkey ?gPubkeyhash .\n }\n }\n } group by ?gKind\n }\n filter(?gKind = ?_resource_multi_iri)\n bind(iri(strafter(?maxW, \'>\')) as ?np)\n graph npa:graph {\n ?np npx:embeds ?version ; dct:created ?dateVal ; np:hasAssertion ?a ; np:hasPublicationInfo ?pi .\n }\n graph ?a { ?version a gen:ResourceView ; dct:isVersionOf ?_resource_multi_iri ; gen:governedBy ?spaceVal . }\n optional { graph npa:graph { ?np npx:signedBy ?authorVal . } }\n optional { graph ?a { ?version dct:title ?titleRaw } }\n optional { graph ?a { ?version rdfs:label ?labelRaw } }\n optional { graph ?a { ?version dct:description ?descRaw } }\n optional { graph ?a { ?version gen:hasViewQuery ?queryVal } }\n optional {\n graph ?a { ?version a ?vType }\n values (?vType ?typeName) {\n (gen:TabularView \'tabular\') (gen:ListView \'list\') (gen:ItemListView \'item list\')\n (gen:NanopubSetView \'nanopub set\') (gen:PlainParagraphView \'plain paragraph\')\n (gen:HeaderView \'header\') (gen:SvgView \'SVG\') (gen:NetworkView \'network\') (gen:ThreadView \'thread\')\n }\n }\n bind(exists { graph ?a { ?version a gen:QueryFormView } } as ?isForm)\n optional {\n graph ?a { ?version gen:appliesToInstancesOf ?apClass }\n bind(if(?apClass = gen:Space, \'spaces\', if(?apClass = gen:MaintainedResource, \'maintained resources\',\n if(?apClass = gen:IndividualAgent, \'users\', replace(str(?apClass), \'^.*[/#]\', \'\')))) as ?apClassName)\n }\n optional {\n graph ?a { ?version gen:appliesToNamespace ?apNs }\n bind(concat(\'IRIs starting with \', str(?apNs)) as ?apNsName)\n }\n bind(iri(replace(str(?queryVal), \'/[^/]*$\', \'\')) as ?queryNp)\n optional {\n graph npa:graph { ?queryNp np:hasAssertion ?qa . }\n graph ?qa { ?queryVal rdfs:label ?qLabelRaw }\n }\n optional {\n graph ?pi { ?np nt:wasCreatedFromTemplate ?metaTmplVal . }\n filter not exists { graph ?pi { ?np nt:wasCreatedFromTemplate ?metaOther . filter(str(?metaOther) < str(?metaTmplVal)) } }\n }\n } group by ?np ?version ?dateVal ?authorVal ?spaceVal ?queryVal ?metaTmplVal ?isForm\n }\n {\n select (group_concat(distinct ?mEntry; separator=\'|\') as ?memberList) where {\n values ?_resource_multi_iri {}\n service {\n graph npa:graph { npa:hasCurrentSpaceState ?mStateG . }\n graph ?mStateG {\n ?_resource_multi_iri npa:hasGoverningSpaceRef ?mRef .\n values ?mTier { gen:AdminRole gen:MaintainerRole gen:MemberRole }\n ?mRi a gen:RoleInstantiation ; npa:forSpaceRef ?mRef ;\n npa:hasRoleType ?mTier ; npa:forAgent ?mAgent .\n }\n }\n bind(str(?mAgent) as ?mEntry)\n }\n }\n bind(coalesce(?titleVal, ?labelVal) as ?nameVal)\n bind(concat(coalesce(?typeVal, \'tabular\'), if(?isForm, \', with a query form first\', \'\')) as ?viewTypeVal)\n bind(if(?apClasses != \'\' && ?apNamespaces != \'\', concat(?apClasses, \', \', ?apNamespaces),\n if(?apClasses != \'\', ?apClasses, if(?apNamespaces != \'\', ?apNamespaces, ?noApplies))) as ?appliesVal)\n bind(coalesce(str(?metaTmplVal), \'https://w3id.org/np/RALLhFXriQjVFESflcok4WIpBW5W0Zh9horxrvcACD1Mw/templateVersion\') as ?metaTmpl)\n bind(coalesce(contains(concat(\'|\', ?memberList, \'|\'), concat(\'|\', str(?__CURRENTUSER_multi_iri), \'|\')), false) as ?isMember)\n bind(if(?isMember, concat(\'\342\234\217 publish a new version\'), ?noUpdateLink) as ?updateLink)\n values (?ord ?Property_noheader) {\n (1 \'Title:\')\n (2 \'Description:\')\n (3 \'View type:\')\n (4 \'Query:\')\n (5 \'Applies to:\')\n (6 \'Governed by:\')\n (7 \'Current version:\')\n (8 \'Last modified:\')\n (9 \'Last modified by:\')\n (10 \'Update this view:\')\n }\n bind(if(?ord=1, ?nameVal, if(?ord=2, ?descVal, if(?ord=3, ?viewTypeVal, if(?ord=4, ?queryVal, if(?ord=5, ?appliesVal,\n if(?ord=6, ?spaceVal, if(?ord=7, ?np, if(?ord=8, str(?dateVal), if(?ord=9, ?authorVal, if(?ord=10, ?updateLink, \'\')))))))))) as ?Value_noheader)\n filter(bound(?Value_noheader))\n bind(if(?ord=7, concat(substr(strafter(str(?np), \'/np/\'), 1, 10), \'\342\200\246\'), if(?ord=4, coalesce(?queryLabel, \'\'), \'\')) as ?Value_label)\n}\norder by ?ord" } } } 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-11-10T20:29:45Z" 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 view info" } } } rows { name { value: "wasCreatedFromProvenanceTemplate" } } rows { name { value: "RA7lSq6MuK_TIC6JMSHvLtee3lpLoZDOqLJCLXevnrPoU" } } rows { quad { p_iri { prefix_id: 6 name_id: 27 } o_iri { prefix_id: 1 } } } rows { name { value: "wasCreatedFromPubinfoTemplate" } } rows { name { value: "RA0J4vUn_dekg-U1kK3AOEt02p9mT2WO03uGxLDec1jLw" } } 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: "ZX+ynKMj0E6kDzYxFrHNPU8Qm9r0iUqmsyqGlg4kDIMP15w47MMS5TVhEGdCUgDsQe20Z6gOwgds50nNuUj/dQrXiGBUyFK/fhFC/HEubmKWQxkrvC9qW0QMwUQ/xXuIHIoLJ/95BcFXb75lvFr86IyWqKqKk7wIbbGPR7B41+I=" } } } 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 } } }