rows { options { stream_name: "" physical_type: PHYSICAL_STREAM_TYPE_QUADS generalized_statements: false rdf_star: false 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 { id: 0 value: "https://w3id.org/np/" } } rows { name { id: 0 value: "RA-D7swMxOemxAf47A6ctL3VL1ueFUPbuZsJd155LgN1w" } } rows { namespace { name: "this" value { prefix_id: 1 name_id: 0 } } } rows { prefix { id: 0 value: "https://w3id.org/np/RA-D7swMxOemxAf47A6ctL3VL1ueFUPbuZsJd155LgN1w#" } } rows { name { id: 0 value: "" } } rows { namespace { name: "sub" value { prefix_id: 2 name_id: 0 } } } rows { prefix { id: 0 value: "http://www.nanopub.org/nschema#" } } rows { namespace { name: "np" value { prefix_id: 3 name_id: 2 } } } rows { prefix { id: 0 value: "http://purl.org/dc/terms/" } } rows { namespace { name: "dct" value { prefix_id: 4 name_id: 2 } } } rows { prefix { id: 0 value: "https://w3id.org/np/o/ntemplate/" } } rows { namespace { name: "nt" value { prefix_id: 5 name_id: 2 } } } rows { prefix { id: 0 value: "http://purl.org/nanopub/x/" } } rows { namespace { name: "npx" value { prefix_id: 6 name_id: 2 } } } rows { prefix { id: 0 value: "http://www.w3.org/2001/XMLSchema#" } } rows { namespace { name: "xsd" value { prefix_id: 7 name_id: 2 } } } rows { prefix { id: 0 value: "http://www.w3.org/2000/01/rdf-schema#" } } rows { namespace { name: "rdfs" value { prefix_id: 8 name_id: 2 } } } rows { prefix { id: 0 value: "https://orcid.org/" } } rows { namespace { name: "orcid" value { prefix_id: 9 name_id: 2 } } } rows { prefix { id: 0 value: "http://purl.org/np/" } } rows { namespace { name: "ns1" value { prefix_id: 10 name_id: 2 } } } rows { prefix { id: 0 value: "http://www.w3.org/ns/prov#" } } rows { namespace { name: "prov" value { prefix_id: 11 name_id: 2 } } } rows { prefix { id: 0 value: "http://xmlns.com/foaf/0.1/" } } rows { namespace { name: "foaf" value { prefix_id: 12 name_id: 2 } } } rows { name { id: 0 value: "hasAssertion" } } rows { name { id: 0 value: "assertion" } } rows { name { id: 0 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 name_id: 0 } g_iri { prefix_id: 0 name_id: 0 } } } rows { name { id: 0 value: "hasProvenance" } } rows { name { id: 0 value: "provenance" } } rows { quad { p_iri { prefix_id: 3 name_id: 0 } o_iri { prefix_id: 2 name_id: 0 } } } rows { name { id: 0 value: "hasPublicationInfo" } } rows { name { id: 0 value: "pubinfo" } } rows { quad { p_iri { prefix_id: 3 name_id: 0 } o_iri { prefix_id: 2 name_id: 0 } } } rows { prefix { id: 0 value: "http://www.w3.org/1999/02/22-rdf-syntax-ns#" } } rows { name { id: 0 value: "type" } } rows { name { id: 0 value: "Nanopublication" } } rows { quad { p_iri { prefix_id: 13 name_id: 0 } o_iri { prefix_id: 3 name_id: 0 } } } rows { name { id: 0 value: "get-user-stats" } } rows { name { id: 0 value: "description" } } rows { quad { s_iri { prefix_id: 2 name_id: 0 } p_iri { prefix_id: 4 name_id: 0 } o_literal { lex: "This query returns some general user statistics in the form of number of valid/invalidated/accepted nanopublications published." } g_iri { prefix_id: 2 name_id: 4 } } } rows { name { id: 0 value: "license" } } rows { prefix { id: 0 value: "http://www.apache.org/licenses/" } } rows { name { id: 0 value: "LICENSE-2.0" } } rows { quad { p_iri { prefix_id: 4 name_id: 14 } o_iri { prefix_id: 14 name_id: 0 } } } rows { prefix { id: 0 value: "https://w3id.org/kpxl/grlc/" } } rows { name { id: 0 value: "grlc-query" } } rows { quad { p_iri { prefix_id: 13 name_id: 10 } o_iri { prefix_id: 15 name_id: 16 } } } rows { name { id: 0 value: "label" } } rows { quad { p_iri { prefix_id: 8 name_id: 0 } o_literal { lex: "Get some general user statistics" } } } rows { name { id: 0 value: "endpoint" } } rows { prefix { id: 0 value: "https://w3id.org/np/l/nanopub-query-1.1/repo/" } } rows { name { id: 0 value: "empty" } } rows { quad { p_iri { prefix_id: 15 name_id: 0 } o_iri { prefix_id: 16 name_id: 0 } } } rows { name { id: 0 value: "sparql" } } rows { quad { p_iri { prefix_id: 15 name_id: 0 } o_literal { lex: "prefix np: \nprefix npa: \nprefix npx: \nprefix xsd: \nprefix rdf: \nprefix dct: \nprefix rdfs: \nprefix nt: \nprefix bibo: \nprefix pav: \n \nselect ?key ?value where { \n{ \nselect ?key (count(?np) as ?value) where { \n \noptional { ?_pubkeyhashes } # ensure grlc is picking up the placeholder \n \n #==================== MULTI-VALUE PLACEHOLDER =====================#------ config: ------ \n { select ?pkh { # <- VAR pkh \n bind(?_pubkeyhashes as ?vs) # <- VAR _pubkeyhashes \n {select*{optional{?a ?b ?c}}limit 1} # (for some Virtuoso ver.) # \n values ?x {0 1 2 3 4 5 6 7 8 9} values ?y {0 1 2 3 4 5 6 7 8 9} # \n bind((10*?x)+?y as ?n) # (works up to a maximum of 100 values) # \n bind(\" \" as ?sep) # (separator as single regex-compatible char) # <- CONST sep \n bind(concat(\"^([^\",?sep,\"]*\",?sep,\"){\",str(?n),\"}\") as ?p) # \n bind(concat(?sep,\".*\") as ?p0) # \n filter(if(?n=0,true,regex(?vs,?p))) # (?n=0 check for Viruoso) # \n bind(replace(if(?n=0,?vs,replace(?vs,?p,\"\")),?p0,\"\") as ?pkh) # <- VAR pkh \n } } # \n #==================================================================#--------------------- \n bind(uri(concat(\"https://w3id.org/np/l/nanopub-query-1.1/repo/pubkey/\", ?pkh)) as ?service) \n \n service ?service { select distinct ?np ?invalidated { optional { \n graph npa:graph { \n ?np npa:hasValidSignatureForPublicKey ?pubkey . \n bind( exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkeyx . filter(contains(?_pubkeyhashes, sha256(str(?pubkeyx)))) } as ?invalidated ) \n } \n } } } \n \nbind(if(?invalidated,\"invalidatedNpCount\",\"validNpCount\") as ?key) \nvalues ?key { \"invalidatedNpCount\" \"validNpCount\" } \n \n} \ngroup by ?key ?invalidated \n} \nunion \n{ \nselect ?key (sum(?npcount) as ?value) where { \n \nbind(\"acceptedNpCount\" as ?key) \n \noptional { ?_userid_iri } # ensure grlc is picking up the placeholder \n \nvalues ?npType { \n \n \n \n} \nbind(uri(concat(\"https://w3id.org/np/l/nanopub-query-1.1/repo/type/\", sha256(str(?npType)))) as ?service) \n \nservice ?service { select (count(distinct ?np) as ?npcount) where { optional { \n graph npa:graph { \n ?np npa:hasValidSignatureForPublicKey ?pubkey . \n ?np np:hasPublicationInfo ?i . \n filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . } \n } \n { { \n graph ?i { ?np pav:authoredBy ?_userid_iri . } \n } union { \n graph ?i { \n ?np bibo:authorList ?authorList . \n ?authorList ?hasElement ?_userid_iri . \n filter(strstarts(str(?hasElement), str(rdf:_))) \n } \n } } \n} } \ngroup by ?np \n} } \ngroup by ?key \n} \n} \norder by ?key \n \n \n \n \nprefix np: \nprefix npa: \nprefix npx: \nprefix xsd: \nprefix rdf: \nprefix dct: \nprefix rdfs: \nprefix nt: \nprefix bibo: \nprefix pav: \n \nselect ?key ?value where { \n{ \nselect ?key (count(?np) as ?value) where { \n \n #==================== MULTI-VALUE PLACEHOLDER =====================#------ config: ------ \n { select ?pkh { # <- VAR pkh \n bind(if(?__pubkeyhashes = \"\", ?unbound, ?__pubkeyhashes) as ?vs) # <- VAR __pubkeyhashes \n {select*{optional{?a ?b ?c}}limit 1} # (for some Virtuoso ver.) # \n values ?x {0 1 2 3 4 5 6 7 8 9} values ?y {0 1 2 3 4 5 6 7 8 9} # \n bind((10*?x)+?y as ?n) # (works up to a maximum of 100 values) # \n bind(\" \" as ?sep) # (separator as single regex-compatible char) # <- CONST sep \n bind(concat(\"^([^\",?sep,\"]*\",?sep,\"){\",str(?n),\"}\") as ?p) # \n bind(concat(?sep,\".*\") as ?p0) # \n filter(if(?n=0,true,regex(?vs,?p))) # (?n=0 check for Viruoso) # \n bind(replace(if(?n=0,?vs,replace(?vs,?p,\"\")),?p0,\"\") as ?pkh) # <- VAR pkh \n } } # \n #==================================================================#--------------------- \n bind(uri(concat(\"https://w3id.org/np/l/nanopub-query-1.1/repo/pubkey/\", ?pkh)) as ?pubkeyservice) \n bind(if(bound(?pkh), ?pubkeyservice, ) as ?service) \n \n service ?service { select distinct ?np ?invalidated { optional { \n graph npa:graph { \n ?np npa:hasValidSignatureForPublicKey ?pubkey . \n ?np dct:creator ?_userid_iri . \n bind( exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . } as ?invalidated ) \n } \n } } } \n \nbind(if(?invalidated,\"invalidatedNpCount\",\"validNpCount\") as ?key) \nvalues ?key { \"invalidatedNpCount\" \"validNpCount\" } \n \n} \ngroup by ?key ?invalidated \n} \nunion \n{ \nselect ?key (sum(?npcount) as ?value) where { \n \nbind(\"acceptedNpCount\" as ?key) \n \noptional { ?_userid_iri } # ensure grlc is picking up the placeholder \n \nvalues ?npType { \n \n \n \n} \nbind(uri(concat(\"https://w3id.org/np/l/nanopub-query-1.1/repo/type/\", sha256(str(?npType)))) as ?service) \n \nservice ?service { select (count(distinct ?np) as ?npcount) where { optional { \n graph npa:graph { \n ?np npa:hasValidSignatureForPublicKey ?pubkey . \n ?np np:hasPublicationInfo ?i . \n filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . } \n } \n { { \n graph ?i { ?np pav:authoredBy ?_userid_iri . } \n } union { \n graph ?i { \n ?np bibo:authorList ?authorList . \n ?authorList ?hasElement ?_userid_iri . \n filter(strstarts(str(?hasElement), str(rdf:_))) \n } \n } } \n} } \ngroup by ?np \n} } \ngroup by ?key \n} \n} \norder by ?key" } } } rows { name { id: 0 value: "wasAttributedTo" } } rows { name { id: 0 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: 9 name_id: 0 } g_iri { prefix_id: 2 name_id: 7 } } } rows { name { id: 0 value: "name" } } rows { quad { s_iri { prefix_id: 9 name_id: 22 } p_iri { prefix_id: 12 name_id: 0 } o_literal { lex: "Tobias Kuhn" } g_iri { prefix_id: 2 name_id: 9 } } } rows { name { id: 0 value: "sig" } } rows { name { id: 0 value: "hasAlgorithm" } } rows { quad { s_iri { prefix_id: 0 name_id: 24 } p_iri { prefix_id: 6 name_id: 0 } o_literal { lex: "RSA" } } } rows { name { id: 0 value: "hasPublicKey" } } rows { quad { p_iri { prefix_id: 0 name_id: 0 } o_literal { lex: "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD4Wj537OijfOWVtsHMznuXKISqBhtGDQZfdO6pbb4hg9EHMcUFGTLbWaPrP783PHv8HMAAPjvEkHLaOHMIknqhaIa5236lfBO3r+ljVdYBElBcLvROmwG+ZGtmPNZf7lMhI15xf5TfoaSa84AFRd5J2EXekK6PhaFQhRm1IpSYtwIDAQAB" } } } rows { name { id: 0 value: "hasSignature" } } rows { quad { p_iri { prefix_id: 0 name_id: 0 } o_literal { lex: "jH9mF2aOZOiiCQtazbTY8dYmukcSJZWhl8qAyDQeHTZQEpxcQlugsutO6/vNIEnLOwe1QI4lEvASC6U4KZ47NcbuDon08NY+8TlHZ7GO+cDcSL7oUD66+7lX5+4pLn4rL3UQIk54BfB9j3jFqHU1zrAuJoOsb3Zk2iyin8kcVvM=" } } } rows { name { id: 0 value: "hasSignatureTarget" } } rows { quad { p_iri { prefix_id: 0 name_id: 0 } o_iri { prefix_id: 1 name_id: 1 } } } rows { name { id: 0 value: "signedBy" } } rows { quad { p_iri { prefix_id: 6 name_id: 29 } o_iri { prefix_id: 9 name_id: 22 } } } rows { name { id: 0 value: "created" } } rows { datatype { id: 0 value: "http://www.w3.org/2001/XMLSchema#dateTime" } } rows { quad { s_iri { prefix_id: 1 name_id: 1 } p_iri { prefix_id: 4 name_id: 30 } o_literal { lex: "2024-09-13T12:45:42.835Z" datatype: 1 } } } rows { name { id: 0 value: "creator" } } rows { quad { p_iri { prefix_id: 0 name_id: 0 } o_iri { prefix_id: 9 name_id: 22 } } } rows { prefix { id: 5 value: "https://creativecommons.org/licenses/by/4.0/" } } rows { quad { p_iri { prefix_id: 4 name_id: 14 } o_iri { prefix_id: 5 name_id: 2 } } } rows { name { id: 0 value: "introduces" } } rows { quad { p_iri { prefix_id: 6 name_id: 32 } o_iri { prefix_id: 2 name_id: 12 } } } rows { name { id: 0 value: "wasCreatedAt" } } rows { prefix { id: 7 value: "https://nanodash.knowledgepixels.com/" } } rows { quad { p_iri { prefix_id: 6 name_id: 33 } o_iri { prefix_id: 7 name_id: 2 } } } rows { prefix { id: 10 value: "https://w3id.org/np/o/ntemplate/" } } rows { name { id: 0 value: "wasCreatedFromProvenanceTemplate" } } rows { prefix { id: 3 value: "http://purl.org/np/" } } rows { name { id: 0 value: "RANwQa4ICWS5SOjw7gp99nBpXBasapwtZF1fIM3H2gYTM" } } rows { quad { p_iri { prefix_id: 10 name_id: 34 } o_iri { prefix_id: 3 name_id: 0 } } } rows { name { id: 0 value: "wasCreatedFromPubinfoTemplate" } } rows { name { id: 0 value: "RAA2MfqdBCzmz9yVWjKLXNbyfBNcwsMmOqcNUxkk1maIM" } } rows { quad { p_iri { prefix_id: 10 name_id: 0 } o_iri { prefix_id: 3 name_id: 0 } } } rows { name { id: 0 value: "RAh1gm83JiG5M6kDxXhaYT1l49nCzyrckMvTzcPn-iv90" } } rows { quad { o_iri { prefix_id: 0 name_id: 0 } } } rows { name { id: 0 value: "wasCreatedFromTemplate" } } rows { name { id: 0 value: "RAYvkQOT9-zrcql5lzMW9OpiPjA9UvSh-RezaVwYmWvns" } } rows { quad { p_iri { prefix_id: 10 name_id: 0 } o_iri { prefix_id: 1 name_id: 0 } } }