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: "RAqkQ_s3FGV_csJYTgWlnmzA8_8WwHpJ3rxqGmdjPHplc" } } rows { namespace { name: "this" value { prefix_id: 1 } } } rows { prefix { value: "https://w3id.org/np/RAqkQ_s3FGV_csJYTgWlnmzA8_8WwHpJ3rxqGmdjPHplc/" } } 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-class-typology-svg" } } rows { name { value: "description" } } rows { quad { s_iri { prefix_id: 2 } p_iri { prefix_id: 5 } o_literal { lex: "Returns a single result row with one \'svg\' column holding a complete SVG document that renders the subclass typology of the classes of a given ontology-like resource, computed dynamically from the published class definitions. This is a prototype for the proposed \'SVG view\' display type (gen:SvgView), where a view query returns ready-to-embed SVG markup that the client renders inline after sanitization. The class set is determined by the resource\'s namespace (the resource IRI with its last segment stripped): all classes introduced by valid nanopubs whose IRI starts with that namespace. The diagram root is the class with no in-namespace superclass and the most direct subclasses. Direct subclasses of the root that have children become group boxes (two-column layout); each box lists the branch\'s direct subclasses and, indented, their subclasses (two levels deep). Classes with several branch superclasses appear in each of those groups. Leaf direct subclasses of the root with no branch parent are collected in a final \'Other\' group. All labels link to their class IRIs and carry full-label tooltips; long labels are truncated with an ellipsis. Box coordinates and item positions are computed in SPARQL via rank subqueries, so the output is deterministic." } 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 class typology diagram as SVG" } } } rows { name { value: "endpoint" } } rows { prefix { value: "https://w3id.org/np/l/nanopub-query-1.1/repo/type/" } } rows { name { value: "e8cc5bb29ec5597303f8f101c65c545dc124ee0df68ce733764b03adc3237184" } } 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 np: \nprefix npa: \nprefix npx: \nprefix owl: \nprefix rdfs: \nprefix xsd: \nselect (concat(\n \'\',\n \'\',\n \'\", \">\"), \'\">\', sample(?rootlbl_esc), \'\',\n group_concat(?gfrag; separator=\"\"),\n \'\') as ?svg) where {\n\n # --- scalars: total item rows and group count -> masonry split point\n { select (count(*) as ?ti) (count(distinct ?bsortx) as ?ng) where {\n { select distinct (?bsort as ?bsortx) (?sk as ?skx) (?c as ?cx) (?ind as ?indx) where { \n { select distinct ?b ?bsort ?blbl ?c ?clbl ?ind ?sk where {\n \n { select ?root (count(distinct ?ch1) as ?nch1) where {\n graph npa:graph {\n ?np2 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk2 ; npx:introduces ?ch1 ; np:hasAssertion ?a2 .\n filter not exists { ?npi2 npx:invalidates ?np2 ; npa:hasValidSignatureForPublicKeyHash ?pk2 . }\n }\n graph ?a2 {\n ?ch1 a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?ch1), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter not exists {\n graph npa:graph {\n ?np3 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk3 ; npx:introduces ?root ; np:hasAssertion ?a3 .\n filter not exists { ?npi3 npx:invalidates ?np3 ; npa:hasValidSignatureForPublicKeyHash ?pk3 . }\n }\n graph ?a3 {\n ?root a owl:Class ; rdfs:subClassOf ?pp1 .\n filter(isIRI(?pp1))\n }\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?pp1), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n }\n } group by ?root order by desc(?nch1) limit 1 }\n {\n \n graph npa:graph {\n ?np4 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk4 ; npx:introduces ?b ; np:hasAssertion ?a4 .\n filter not exists { ?npi4 npx:invalidates ?np4 ; npa:hasValidSignatureForPublicKeyHash ?pk4 . }\n }\n graph ?a4 {\n ?b a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n graph npa:graph {\n ?np5 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk5 ; npx:introduces ?c ; np:hasAssertion ?a5 .\n filter not exists { ?npi5 npx:invalidates ?np5 ; npa:hasValidSignatureForPublicKeyHash ?pk5 . }\n }\n graph ?a5 {\n ?c a owl:Class ; rdfs:subClassOf ?b .\n filter(isIRI(?b))\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n { select ?b (coalesce(min(?lu6), min(?la6), replace(str(?b), \"^.*[/#]\", \"\")) as ?blbl0) where {\n graph npa:graph {\n ?np6 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk6 ; npx:introduces ?b ; np:hasAssertion ?a6 .\n filter not exists { ?npi6 npx:invalidates ?np6 ; npa:hasValidSignatureForPublicKeyHash ?pk6 . }\n }\n graph ?a6 {\n ?b a owl:Class .\n optional { ?b rdfs:label ?lu6 . filter(lang(?lu6) = \"\") }\n optional { ?b rdfs:label ?la6 . }\n }\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?b }\n \n { select ?c (coalesce(min(?lu7), min(?la7), replace(str(?c), \"^.*[/#]\", \"\")) as ?clbl) where {\n graph npa:graph {\n ?np7 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk7 ; npx:introduces ?c ; np:hasAssertion ?a7 .\n filter not exists { ?npi7 npx:invalidates ?np7 ; npa:hasValidSignatureForPublicKeyHash ?pk7 . }\n }\n graph ?a7 {\n ?c a owl:Class .\n optional { ?c rdfs:label ?lu7 . filter(lang(?lu7) = \"\") }\n optional { ?c rdfs:label ?la7 . }\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?c }\n bind(?blbl0 as ?blbl) bind(concat(\"a-\", ?blbl) as ?bsort)\n bind(concat(?clbl, \"|\", str(?c)) as ?sk) bind(0 as ?ind)\n } union {\n \n graph npa:graph {\n ?np8 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk8 ; npx:introduces ?b ; np:hasAssertion ?a8 .\n filter not exists { ?npi8 npx:invalidates ?np8 ; npa:hasValidSignatureForPublicKeyHash ?pk8 . }\n }\n graph ?a8 {\n ?b a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n graph npa:graph {\n ?np9 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk9 ; npx:introduces ?m ; np:hasAssertion ?a9 .\n filter not exists { ?npi9 npx:invalidates ?np9 ; npa:hasValidSignatureForPublicKeyHash ?pk9 . }\n }\n graph ?a9 {\n ?m a owl:Class ; rdfs:subClassOf ?b .\n filter(isIRI(?b))\n }\n filter(strstarts(str(?m), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n graph npa:graph {\n ?np10 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk10 ; npx:introduces ?c ; np:hasAssertion ?a10 .\n filter not exists { ?npi10 npx:invalidates ?np10 ; npa:hasValidSignatureForPublicKeyHash ?pk10 . }\n }\n graph ?a10 {\n ?c a owl:Class ; rdfs:subClassOf ?m .\n filter(isIRI(?m))\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?m), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n { select ?b (coalesce(min(?lu11), min(?la11), replace(str(?b), \"^.*[/#]\", \"\")) as ?blbl0) where {\n graph npa:graph {\n ?np11 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk11 ; npx:introduces ?b ; np:hasAssertion ?a11 .\n filter not exists { ?npi11 npx:invalidates ?np11 ; npa:hasValidSignatureForPublicKeyHash ?pk11 . }\n }\n graph ?a11 {\n ?b a owl:Class .\n optional { ?b rdfs:label ?lu11 . filter(lang(?lu11) = \"\") }\n optional { ?b rdfs:label ?la11 . }\n }\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?b }\n \n { select ?m (coalesce(min(?lu12), min(?la12), replace(str(?m), \"^.*[/#]\", \"\")) as ?mlbl) where {\n graph npa:graph {\n ?np12 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk12 ; npx:introduces ?m ; np:hasAssertion ?a12 .\n filter not exists { ?npi12 npx:invalidates ?np12 ; npa:hasValidSignatureForPublicKeyHash ?pk12 . }\n }\n graph ?a12 {\n ?m a owl:Class .\n optional { ?m rdfs:label ?lu12 . filter(lang(?lu12) = \"\") }\n optional { ?m rdfs:label ?la12 . }\n }\n filter(strstarts(str(?m), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?m }\n \n { select ?c (coalesce(min(?lu13), min(?la13), replace(str(?c), \"^.*[/#]\", \"\")) as ?clbl) where {\n graph npa:graph {\n ?np13 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk13 ; npx:introduces ?c ; np:hasAssertion ?a13 .\n filter not exists { ?npi13 npx:invalidates ?np13 ; npa:hasValidSignatureForPublicKeyHash ?pk13 . }\n }\n graph ?a13 {\n ?c a owl:Class .\n optional { ?c rdfs:label ?lu13 . filter(lang(?lu13) = \"\") }\n optional { ?c rdfs:label ?la13 . }\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?c }\n bind(?blbl0 as ?blbl) bind(concat(\"a-\", ?blbl) as ?bsort)\n bind(concat(?mlbl, \"~|\", ?clbl, \"|\", str(?c)) as ?sk) bind(1 as ?ind)\n } union {\n \n graph npa:graph {\n ?np14 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk14 ; npx:introduces ?c ; np:hasAssertion ?a14 .\n filter not exists { ?npi14 npx:invalidates ?np14 ; npa:hasValidSignatureForPublicKeyHash ?pk14 . }\n }\n graph ?a14 {\n ?c a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter not exists { \n graph npa:graph {\n ?np15 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk15 ; npx:introduces ?c ; np:hasAssertion ?a15 .\n filter not exists { ?npi15 npx:invalidates ?np15 ; npa:hasValidSignatureForPublicKeyHash ?pk15 . }\n }\n graph ?a15 {\n ?c a owl:Class ; rdfs:subClassOf ?b2 .\n filter(isIRI(?b2))\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?b2), replace(str(?_resource_iri), \"[^/#]*$\", \"\"))) \n graph npa:graph {\n ?np16 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk16 ; npx:introduces ?b2 ; np:hasAssertion ?a16 .\n filter not exists { ?npi16 npx:invalidates ?np16 ; npa:hasValidSignatureForPublicKeyHash ?pk16 . }\n }\n graph ?a16 {\n ?b2 a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?b2), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\"))) }\n filter not exists { \n graph npa:graph {\n ?np17 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk17 ; npx:introduces ?x4 ; np:hasAssertion ?a17 .\n filter not exists { ?npi17 npx:invalidates ?np17 ; npa:hasValidSignatureForPublicKeyHash ?pk17 . }\n }\n graph ?a17 {\n ?x4 a owl:Class ; rdfs:subClassOf ?c .\n filter(isIRI(?c))\n }\n filter(strstarts(str(?x4), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\"))) }\n \n { select ?c (coalesce(min(?lu18), min(?la18), replace(str(?c), \"^.*[/#]\", \"\")) as ?clbl) where {\n graph npa:graph {\n ?np18 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk18 ; npx:introduces ?c ; np:hasAssertion ?a18 .\n filter not exists { ?npi18 npx:invalidates ?np18 ; npa:hasValidSignatureForPublicKeyHash ?pk18 . }\n }\n graph ?a18 {\n ?c a owl:Class .\n optional { ?c rdfs:label ?lu18 . filter(lang(?lu18) = \"\") }\n optional { ?c rdfs:label ?la18 . }\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?c }\n bind( as ?b) bind(\"Other\" as ?blbl) bind(\"z-Other\" as ?bsort)\n bind(concat(?clbl, \"|\", str(?c)) as ?sk) bind(0 as ?ind)\n }\n } } } }\n } }\n\n # --- root + its label\n \n { select ?root (count(distinct ?ch19) as ?nch19) where {\n graph npa:graph {\n ?np20 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk20 ; npx:introduces ?ch19 ; np:hasAssertion ?a20 .\n filter not exists { ?npi20 npx:invalidates ?np20 ; npa:hasValidSignatureForPublicKeyHash ?pk20 . }\n }\n graph ?a20 {\n ?ch19 a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?ch19), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter not exists {\n graph npa:graph {\n ?np21 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk21 ; npx:introduces ?root ; np:hasAssertion ?a21 .\n filter not exists { ?npi21 npx:invalidates ?np21 ; npa:hasValidSignatureForPublicKeyHash ?pk21 . }\n }\n graph ?a21 {\n ?root a owl:Class ; rdfs:subClassOf ?pp19 .\n filter(isIRI(?pp19))\n }\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?pp19), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n }\n } group by ?root order by desc(?nch19) limit 1 }\n \n { select ?root (coalesce(min(?lu22), min(?la22), replace(str(?root), \"^.*[/#]\", \"\")) as ?rootlbl) where {\n graph npa:graph {\n ?np22 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk22 ; npx:introduces ?root ; np:hasAssertion ?a22 .\n filter not exists { ?npi22 npx:invalidates ?np22 ; npa:hasValidSignatureForPublicKeyHash ?pk22 . }\n }\n graph ?a22 {\n ?root a owl:Class .\n optional { ?root rdfs:label ?lu22 . filter(lang(?lu22) = \"\") }\n optional { ?root rdfs:label ?la22 . }\n }\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?root }\n bind(replace(replace(replace(?rootlbl, \"&\", \"&\"), \"<\", \"<\"), \">\", \">\") as ?rootlbl_esc)\n bind(?ti * 15 + ?ng * 48 as ?h0)\n bind(xsd:integer(ceil(?h0 / 2)) as ?half)\n\n # --- per-group rows: item fragments at rank-based absolute positions + count\n { select ?b ?bsort ?blbl (group_concat(?frag; separator=\"\") as ?itemfrags) (max(?iy) as ?n) where {\n { select ?b ?bsort ?blbl ?c ?clbl ?ind ?sk (count(*) as ?iy) where {\n \n { select distinct ?b ?bsort ?blbl ?c ?clbl ?ind ?sk where {\n \n { select ?root (count(distinct ?ch23) as ?nch23) where {\n graph npa:graph {\n ?np24 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk24 ; npx:introduces ?ch23 ; np:hasAssertion ?a24 .\n filter not exists { ?npi24 npx:invalidates ?np24 ; npa:hasValidSignatureForPublicKeyHash ?pk24 . }\n }\n graph ?a24 {\n ?ch23 a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?ch23), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter not exists {\n graph npa:graph {\n ?np25 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk25 ; npx:introduces ?root ; np:hasAssertion ?a25 .\n filter not exists { ?npi25 npx:invalidates ?np25 ; npa:hasValidSignatureForPublicKeyHash ?pk25 . }\n }\n graph ?a25 {\n ?root a owl:Class ; rdfs:subClassOf ?pp23 .\n filter(isIRI(?pp23))\n }\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?pp23), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n }\n } group by ?root order by desc(?nch23) limit 1 }\n {\n \n graph npa:graph {\n ?np26 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk26 ; npx:introduces ?b ; np:hasAssertion ?a26 .\n filter not exists { ?npi26 npx:invalidates ?np26 ; npa:hasValidSignatureForPublicKeyHash ?pk26 . }\n }\n graph ?a26 {\n ?b a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n graph npa:graph {\n ?np27 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk27 ; npx:introduces ?c ; np:hasAssertion ?a27 .\n filter not exists { ?npi27 npx:invalidates ?np27 ; npa:hasValidSignatureForPublicKeyHash ?pk27 . }\n }\n graph ?a27 {\n ?c a owl:Class ; rdfs:subClassOf ?b .\n filter(isIRI(?b))\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n { select ?b (coalesce(min(?lu28), min(?la28), replace(str(?b), \"^.*[/#]\", \"\")) as ?blbl0) where {\n graph npa:graph {\n ?np28 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk28 ; npx:introduces ?b ; np:hasAssertion ?a28 .\n filter not exists { ?npi28 npx:invalidates ?np28 ; npa:hasValidSignatureForPublicKeyHash ?pk28 . }\n }\n graph ?a28 {\n ?b a owl:Class .\n optional { ?b rdfs:label ?lu28 . filter(lang(?lu28) = \"\") }\n optional { ?b rdfs:label ?la28 . }\n }\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?b }\n \n { select ?c (coalesce(min(?lu29), min(?la29), replace(str(?c), \"^.*[/#]\", \"\")) as ?clbl) where {\n graph npa:graph {\n ?np29 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk29 ; npx:introduces ?c ; np:hasAssertion ?a29 .\n filter not exists { ?npi29 npx:invalidates ?np29 ; npa:hasValidSignatureForPublicKeyHash ?pk29 . }\n }\n graph ?a29 {\n ?c a owl:Class .\n optional { ?c rdfs:label ?lu29 . filter(lang(?lu29) = \"\") }\n optional { ?c rdfs:label ?la29 . }\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?c }\n bind(?blbl0 as ?blbl) bind(concat(\"a-\", ?blbl) as ?bsort)\n bind(concat(?clbl, \"|\", str(?c)) as ?sk) bind(0 as ?ind)\n } union {\n \n graph npa:graph {\n ?np30 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk30 ; npx:introduces ?b ; np:hasAssertion ?a30 .\n filter not exists { ?npi30 npx:invalidates ?np30 ; npa:hasValidSignatureForPublicKeyHash ?pk30 . }\n }\n graph ?a30 {\n ?b a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n graph npa:graph {\n ?np31 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk31 ; npx:introduces ?m ; np:hasAssertion ?a31 .\n filter not exists { ?npi31 npx:invalidates ?np31 ; npa:hasValidSignatureForPublicKeyHash ?pk31 . }\n }\n graph ?a31 {\n ?m a owl:Class ; rdfs:subClassOf ?b .\n filter(isIRI(?b))\n }\n filter(strstarts(str(?m), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n graph npa:graph {\n ?np32 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk32 ; npx:introduces ?c ; np:hasAssertion ?a32 .\n filter not exists { ?npi32 npx:invalidates ?np32 ; npa:hasValidSignatureForPublicKeyHash ?pk32 . }\n }\n graph ?a32 {\n ?c a owl:Class ; rdfs:subClassOf ?m .\n filter(isIRI(?m))\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?m), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n { select ?b (coalesce(min(?lu33), min(?la33), replace(str(?b), \"^.*[/#]\", \"\")) as ?blbl0) where {\n graph npa:graph {\n ?np33 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk33 ; npx:introduces ?b ; np:hasAssertion ?a33 .\n filter not exists { ?npi33 npx:invalidates ?np33 ; npa:hasValidSignatureForPublicKeyHash ?pk33 . }\n }\n graph ?a33 {\n ?b a owl:Class .\n optional { ?b rdfs:label ?lu33 . filter(lang(?lu33) = \"\") }\n optional { ?b rdfs:label ?la33 . }\n }\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?b }\n \n { select ?m (coalesce(min(?lu34), min(?la34), replace(str(?m), \"^.*[/#]\", \"\")) as ?mlbl) where {\n graph npa:graph {\n ?np34 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk34 ; npx:introduces ?m ; np:hasAssertion ?a34 .\n filter not exists { ?npi34 npx:invalidates ?np34 ; npa:hasValidSignatureForPublicKeyHash ?pk34 . }\n }\n graph ?a34 {\n ?m a owl:Class .\n optional { ?m rdfs:label ?lu34 . filter(lang(?lu34) = \"\") }\n optional { ?m rdfs:label ?la34 . }\n }\n filter(strstarts(str(?m), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?m }\n \n { select ?c (coalesce(min(?lu35), min(?la35), replace(str(?c), \"^.*[/#]\", \"\")) as ?clbl) where {\n graph npa:graph {\n ?np35 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk35 ; npx:introduces ?c ; np:hasAssertion ?a35 .\n filter not exists { ?npi35 npx:invalidates ?np35 ; npa:hasValidSignatureForPublicKeyHash ?pk35 . }\n }\n graph ?a35 {\n ?c a owl:Class .\n optional { ?c rdfs:label ?lu35 . filter(lang(?lu35) = \"\") }\n optional { ?c rdfs:label ?la35 . }\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?c }\n bind(?blbl0 as ?blbl) bind(concat(\"a-\", ?blbl) as ?bsort)\n bind(concat(?mlbl, \"~|\", ?clbl, \"|\", str(?c)) as ?sk) bind(1 as ?ind)\n } union {\n \n graph npa:graph {\n ?np36 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk36 ; npx:introduces ?c ; np:hasAssertion ?a36 .\n filter not exists { ?npi36 npx:invalidates ?np36 ; npa:hasValidSignatureForPublicKeyHash ?pk36 . }\n }\n graph ?a36 {\n ?c a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter not exists { \n graph npa:graph {\n ?np37 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk37 ; npx:introduces ?c ; np:hasAssertion ?a37 .\n filter not exists { ?npi37 npx:invalidates ?np37 ; npa:hasValidSignatureForPublicKeyHash ?pk37 . }\n }\n graph ?a37 {\n ?c a owl:Class ; rdfs:subClassOf ?b2 .\n filter(isIRI(?b2))\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?b2), replace(str(?_resource_iri), \"[^/#]*$\", \"\"))) \n graph npa:graph {\n ?np38 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk38 ; npx:introduces ?b2 ; np:hasAssertion ?a38 .\n filter not exists { ?npi38 npx:invalidates ?np38 ; npa:hasValidSignatureForPublicKeyHash ?pk38 . }\n }\n graph ?a38 {\n ?b2 a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?b2), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\"))) }\n filter not exists { \n graph npa:graph {\n ?np39 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk39 ; npx:introduces ?x4 ; np:hasAssertion ?a39 .\n filter not exists { ?npi39 npx:invalidates ?np39 ; npa:hasValidSignatureForPublicKeyHash ?pk39 . }\n }\n graph ?a39 {\n ?x4 a owl:Class ; rdfs:subClassOf ?c .\n filter(isIRI(?c))\n }\n filter(strstarts(str(?x4), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\"))) }\n \n { select ?c (coalesce(min(?lu40), min(?la40), replace(str(?c), \"^.*[/#]\", \"\")) as ?clbl) where {\n graph npa:graph {\n ?np40 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk40 ; npx:introduces ?c ; np:hasAssertion ?a40 .\n filter not exists { ?npi40 npx:invalidates ?np40 ; npa:hasValidSignatureForPublicKeyHash ?pk40 . }\n }\n graph ?a40 {\n ?c a owl:Class .\n optional { ?c rdfs:label ?lu40 . filter(lang(?lu40) = \"\") }\n optional { ?c rdfs:label ?la40 . }\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?c }\n bind( as ?b) bind(\"Other\" as ?blbl) bind(\"z-Other\" as ?bsort)\n bind(concat(?clbl, \"|\", str(?c)) as ?sk) bind(0 as ?ind)\n }\n } }\n { select distinct (?bsort as ?bsortR) (?sk as ?skR) where { \n { select distinct ?b ?bsort ?blbl ?c ?clbl ?ind ?sk where {\n \n { select ?root (count(distinct ?ch41) as ?nch41) where {\n graph npa:graph {\n ?np42 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk42 ; npx:introduces ?ch41 ; np:hasAssertion ?a42 .\n filter not exists { ?npi42 npx:invalidates ?np42 ; npa:hasValidSignatureForPublicKeyHash ?pk42 . }\n }\n graph ?a42 {\n ?ch41 a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?ch41), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter not exists {\n graph npa:graph {\n ?np43 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk43 ; npx:introduces ?root ; np:hasAssertion ?a43 .\n filter not exists { ?npi43 npx:invalidates ?np43 ; npa:hasValidSignatureForPublicKeyHash ?pk43 . }\n }\n graph ?a43 {\n ?root a owl:Class ; rdfs:subClassOf ?pp41 .\n filter(isIRI(?pp41))\n }\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?pp41), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n }\n } group by ?root order by desc(?nch41) limit 1 }\n {\n \n graph npa:graph {\n ?np44 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk44 ; npx:introduces ?b ; np:hasAssertion ?a44 .\n filter not exists { ?npi44 npx:invalidates ?np44 ; npa:hasValidSignatureForPublicKeyHash ?pk44 . }\n }\n graph ?a44 {\n ?b a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n graph npa:graph {\n ?np45 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk45 ; npx:introduces ?c ; np:hasAssertion ?a45 .\n filter not exists { ?npi45 npx:invalidates ?np45 ; npa:hasValidSignatureForPublicKeyHash ?pk45 . }\n }\n graph ?a45 {\n ?c a owl:Class ; rdfs:subClassOf ?b .\n filter(isIRI(?b))\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n { select ?b (coalesce(min(?lu46), min(?la46), replace(str(?b), \"^.*[/#]\", \"\")) as ?blbl0) where {\n graph npa:graph {\n ?np46 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk46 ; npx:introduces ?b ; np:hasAssertion ?a46 .\n filter not exists { ?npi46 npx:invalidates ?np46 ; npa:hasValidSignatureForPublicKeyHash ?pk46 . }\n }\n graph ?a46 {\n ?b a owl:Class .\n optional { ?b rdfs:label ?lu46 . filter(lang(?lu46) = \"\") }\n optional { ?b rdfs:label ?la46 . }\n }\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?b }\n \n { select ?c (coalesce(min(?lu47), min(?la47), replace(str(?c), \"^.*[/#]\", \"\")) as ?clbl) where {\n graph npa:graph {\n ?np47 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk47 ; npx:introduces ?c ; np:hasAssertion ?a47 .\n filter not exists { ?npi47 npx:invalidates ?np47 ; npa:hasValidSignatureForPublicKeyHash ?pk47 . }\n }\n graph ?a47 {\n ?c a owl:Class .\n optional { ?c rdfs:label ?lu47 . filter(lang(?lu47) = \"\") }\n optional { ?c rdfs:label ?la47 . }\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?c }\n bind(?blbl0 as ?blbl) bind(concat(\"a-\", ?blbl) as ?bsort)\n bind(concat(?clbl, \"|\", str(?c)) as ?sk) bind(0 as ?ind)\n } union {\n \n graph npa:graph {\n ?np48 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk48 ; npx:introduces ?b ; np:hasAssertion ?a48 .\n filter not exists { ?npi48 npx:invalidates ?np48 ; npa:hasValidSignatureForPublicKeyHash ?pk48 . }\n }\n graph ?a48 {\n ?b a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n graph npa:graph {\n ?np49 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk49 ; npx:introduces ?m ; np:hasAssertion ?a49 .\n filter not exists { ?npi49 npx:invalidates ?np49 ; npa:hasValidSignatureForPublicKeyHash ?pk49 . }\n }\n graph ?a49 {\n ?m a owl:Class ; rdfs:subClassOf ?b .\n filter(isIRI(?b))\n }\n filter(strstarts(str(?m), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n graph npa:graph {\n ?np50 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk50 ; npx:introduces ?c ; np:hasAssertion ?a50 .\n filter not exists { ?npi50 npx:invalidates ?np50 ; npa:hasValidSignatureForPublicKeyHash ?pk50 . }\n }\n graph ?a50 {\n ?c a owl:Class ; rdfs:subClassOf ?m .\n filter(isIRI(?m))\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?m), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n { select ?b (coalesce(min(?lu51), min(?la51), replace(str(?b), \"^.*[/#]\", \"\")) as ?blbl0) where {\n graph npa:graph {\n ?np51 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk51 ; npx:introduces ?b ; np:hasAssertion ?a51 .\n filter not exists { ?npi51 npx:invalidates ?np51 ; npa:hasValidSignatureForPublicKeyHash ?pk51 . }\n }\n graph ?a51 {\n ?b a owl:Class .\n optional { ?b rdfs:label ?lu51 . filter(lang(?lu51) = \"\") }\n optional { ?b rdfs:label ?la51 . }\n }\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?b }\n \n { select ?m (coalesce(min(?lu52), min(?la52), replace(str(?m), \"^.*[/#]\", \"\")) as ?mlbl) where {\n graph npa:graph {\n ?np52 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk52 ; npx:introduces ?m ; np:hasAssertion ?a52 .\n filter not exists { ?npi52 npx:invalidates ?np52 ; npa:hasValidSignatureForPublicKeyHash ?pk52 . }\n }\n graph ?a52 {\n ?m a owl:Class .\n optional { ?m rdfs:label ?lu52 . filter(lang(?lu52) = \"\") }\n optional { ?m rdfs:label ?la52 . }\n }\n filter(strstarts(str(?m), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?m }\n \n { select ?c (coalesce(min(?lu53), min(?la53), replace(str(?c), \"^.*[/#]\", \"\")) as ?clbl) where {\n graph npa:graph {\n ?np53 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk53 ; npx:introduces ?c ; np:hasAssertion ?a53 .\n filter not exists { ?npi53 npx:invalidates ?np53 ; npa:hasValidSignatureForPublicKeyHash ?pk53 . }\n }\n graph ?a53 {\n ?c a owl:Class .\n optional { ?c rdfs:label ?lu53 . filter(lang(?lu53) = \"\") }\n optional { ?c rdfs:label ?la53 . }\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?c }\n bind(?blbl0 as ?blbl) bind(concat(\"a-\", ?blbl) as ?bsort)\n bind(concat(?mlbl, \"~|\", ?clbl, \"|\", str(?c)) as ?sk) bind(1 as ?ind)\n } union {\n \n graph npa:graph {\n ?np54 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk54 ; npx:introduces ?c ; np:hasAssertion ?a54 .\n filter not exists { ?npi54 npx:invalidates ?np54 ; npa:hasValidSignatureForPublicKeyHash ?pk54 . }\n }\n graph ?a54 {\n ?c a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter not exists { \n graph npa:graph {\n ?np55 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk55 ; npx:introduces ?c ; np:hasAssertion ?a55 .\n filter not exists { ?npi55 npx:invalidates ?np55 ; npa:hasValidSignatureForPublicKeyHash ?pk55 . }\n }\n graph ?a55 {\n ?c a owl:Class ; rdfs:subClassOf ?b2 .\n filter(isIRI(?b2))\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?b2), replace(str(?_resource_iri), \"[^/#]*$\", \"\"))) \n graph npa:graph {\n ?np56 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk56 ; npx:introduces ?b2 ; np:hasAssertion ?a56 .\n filter not exists { ?npi56 npx:invalidates ?np56 ; npa:hasValidSignatureForPublicKeyHash ?pk56 . }\n }\n graph ?a56 {\n ?b2 a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?b2), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\"))) }\n filter not exists { \n graph npa:graph {\n ?np57 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk57 ; npx:introduces ?x4 ; np:hasAssertion ?a57 .\n filter not exists { ?npi57 npx:invalidates ?np57 ; npa:hasValidSignatureForPublicKeyHash ?pk57 . }\n }\n graph ?a57 {\n ?x4 a owl:Class ; rdfs:subClassOf ?c .\n filter(isIRI(?c))\n }\n filter(strstarts(str(?x4), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\"))) }\n \n { select ?c (coalesce(min(?lu58), min(?la58), replace(str(?c), \"^.*[/#]\", \"\")) as ?clbl) where {\n graph npa:graph {\n ?np58 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk58 ; npx:introduces ?c ; np:hasAssertion ?a58 .\n filter not exists { ?npi58 npx:invalidates ?np58 ; npa:hasValidSignatureForPublicKeyHash ?pk58 . }\n }\n graph ?a58 {\n ?c a owl:Class .\n optional { ?c rdfs:label ?lu58 . filter(lang(?lu58) = \"\") }\n optional { ?c rdfs:label ?la58 . }\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?c }\n bind( as ?b) bind(\"Other\" as ?blbl) bind(\"z-Other\" as ?bsort)\n bind(concat(?clbl, \"|\", str(?c)) as ?sk) bind(0 as ?ind)\n }\n } } } }\n filter(?bsortR = ?bsort && ?skR <= ?sk)\n } group by ?b ?bsort ?blbl ?c ?clbl ?ind ?sk }\n bind(concat(\'\", \">\"), \'\">\', replace(replace(replace(if(strlen(?clbl) > 34, concat(substr(?clbl, 1, 33), \"\342\200\246\"), ?clbl), \"&\", \"&\"), \"<\", \"<\"), \">\", \">\"), \'\', replace(replace(replace(?clbl, \"&\", \"&\"), \"<\", \"<\"), \">\", \">\"), \'\') as ?frag)\n } group by ?b ?bsort ?blbl }\n\n # --- y-offset: items and groups that come before this group (by ?bsort)\n optional {\n { select ?bsort (count(?c2) as ?nprev) (count(distinct ?bsort2) as ?gprev) where {\n { select distinct ?bsort where { \n { select distinct ?b ?bsort ?blbl ?c ?clbl ?ind ?sk where {\n \n { select ?root (count(distinct ?ch59) as ?nch59) where {\n graph npa:graph {\n ?np60 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk60 ; npx:introduces ?ch59 ; np:hasAssertion ?a60 .\n filter not exists { ?npi60 npx:invalidates ?np60 ; npa:hasValidSignatureForPublicKeyHash ?pk60 . }\n }\n graph ?a60 {\n ?ch59 a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?ch59), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter not exists {\n graph npa:graph {\n ?np61 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk61 ; npx:introduces ?root ; np:hasAssertion ?a61 .\n filter not exists { ?npi61 npx:invalidates ?np61 ; npa:hasValidSignatureForPublicKeyHash ?pk61 . }\n }\n graph ?a61 {\n ?root a owl:Class ; rdfs:subClassOf ?pp59 .\n filter(isIRI(?pp59))\n }\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?pp59), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n }\n } group by ?root order by desc(?nch59) limit 1 }\n {\n \n graph npa:graph {\n ?np62 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk62 ; npx:introduces ?b ; np:hasAssertion ?a62 .\n filter not exists { ?npi62 npx:invalidates ?np62 ; npa:hasValidSignatureForPublicKeyHash ?pk62 . }\n }\n graph ?a62 {\n ?b a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n graph npa:graph {\n ?np63 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk63 ; npx:introduces ?c ; np:hasAssertion ?a63 .\n filter not exists { ?npi63 npx:invalidates ?np63 ; npa:hasValidSignatureForPublicKeyHash ?pk63 . }\n }\n graph ?a63 {\n ?c a owl:Class ; rdfs:subClassOf ?b .\n filter(isIRI(?b))\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n { select ?b (coalesce(min(?lu64), min(?la64), replace(str(?b), \"^.*[/#]\", \"\")) as ?blbl0) where {\n graph npa:graph {\n ?np64 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk64 ; npx:introduces ?b ; np:hasAssertion ?a64 .\n filter not exists { ?npi64 npx:invalidates ?np64 ; npa:hasValidSignatureForPublicKeyHash ?pk64 . }\n }\n graph ?a64 {\n ?b a owl:Class .\n optional { ?b rdfs:label ?lu64 . filter(lang(?lu64) = \"\") }\n optional { ?b rdfs:label ?la64 . }\n }\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?b }\n \n { select ?c (coalesce(min(?lu65), min(?la65), replace(str(?c), \"^.*[/#]\", \"\")) as ?clbl) where {\n graph npa:graph {\n ?np65 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk65 ; npx:introduces ?c ; np:hasAssertion ?a65 .\n filter not exists { ?npi65 npx:invalidates ?np65 ; npa:hasValidSignatureForPublicKeyHash ?pk65 . }\n }\n graph ?a65 {\n ?c a owl:Class .\n optional { ?c rdfs:label ?lu65 . filter(lang(?lu65) = \"\") }\n optional { ?c rdfs:label ?la65 . }\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?c }\n bind(?blbl0 as ?blbl) bind(concat(\"a-\", ?blbl) as ?bsort)\n bind(concat(?clbl, \"|\", str(?c)) as ?sk) bind(0 as ?ind)\n } union {\n \n graph npa:graph {\n ?np66 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk66 ; npx:introduces ?b ; np:hasAssertion ?a66 .\n filter not exists { ?npi66 npx:invalidates ?np66 ; npa:hasValidSignatureForPublicKeyHash ?pk66 . }\n }\n graph ?a66 {\n ?b a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n graph npa:graph {\n ?np67 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk67 ; npx:introduces ?m ; np:hasAssertion ?a67 .\n filter not exists { ?npi67 npx:invalidates ?np67 ; npa:hasValidSignatureForPublicKeyHash ?pk67 . }\n }\n graph ?a67 {\n ?m a owl:Class ; rdfs:subClassOf ?b .\n filter(isIRI(?b))\n }\n filter(strstarts(str(?m), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n graph npa:graph {\n ?np68 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk68 ; npx:introduces ?c ; np:hasAssertion ?a68 .\n filter not exists { ?npi68 npx:invalidates ?np68 ; npa:hasValidSignatureForPublicKeyHash ?pk68 . }\n }\n graph ?a68 {\n ?c a owl:Class ; rdfs:subClassOf ?m .\n filter(isIRI(?m))\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?m), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n { select ?b (coalesce(min(?lu69), min(?la69), replace(str(?b), \"^.*[/#]\", \"\")) as ?blbl0) where {\n graph npa:graph {\n ?np69 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk69 ; npx:introduces ?b ; np:hasAssertion ?a69 .\n filter not exists { ?npi69 npx:invalidates ?np69 ; npa:hasValidSignatureForPublicKeyHash ?pk69 . }\n }\n graph ?a69 {\n ?b a owl:Class .\n optional { ?b rdfs:label ?lu69 . filter(lang(?lu69) = \"\") }\n optional { ?b rdfs:label ?la69 . }\n }\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?b }\n \n { select ?m (coalesce(min(?lu70), min(?la70), replace(str(?m), \"^.*[/#]\", \"\")) as ?mlbl) where {\n graph npa:graph {\n ?np70 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk70 ; npx:introduces ?m ; np:hasAssertion ?a70 .\n filter not exists { ?npi70 npx:invalidates ?np70 ; npa:hasValidSignatureForPublicKeyHash ?pk70 . }\n }\n graph ?a70 {\n ?m a owl:Class .\n optional { ?m rdfs:label ?lu70 . filter(lang(?lu70) = \"\") }\n optional { ?m rdfs:label ?la70 . }\n }\n filter(strstarts(str(?m), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?m }\n \n { select ?c (coalesce(min(?lu71), min(?la71), replace(str(?c), \"^.*[/#]\", \"\")) as ?clbl) where {\n graph npa:graph {\n ?np71 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk71 ; npx:introduces ?c ; np:hasAssertion ?a71 .\n filter not exists { ?npi71 npx:invalidates ?np71 ; npa:hasValidSignatureForPublicKeyHash ?pk71 . }\n }\n graph ?a71 {\n ?c a owl:Class .\n optional { ?c rdfs:label ?lu71 . filter(lang(?lu71) = \"\") }\n optional { ?c rdfs:label ?la71 . }\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?c }\n bind(?blbl0 as ?blbl) bind(concat(\"a-\", ?blbl) as ?bsort)\n bind(concat(?mlbl, \"~|\", ?clbl, \"|\", str(?c)) as ?sk) bind(1 as ?ind)\n } union {\n \n graph npa:graph {\n ?np72 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk72 ; npx:introduces ?c ; np:hasAssertion ?a72 .\n filter not exists { ?npi72 npx:invalidates ?np72 ; npa:hasValidSignatureForPublicKeyHash ?pk72 . }\n }\n graph ?a72 {\n ?c a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter not exists { \n graph npa:graph {\n ?np73 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk73 ; npx:introduces ?c ; np:hasAssertion ?a73 .\n filter not exists { ?npi73 npx:invalidates ?np73 ; npa:hasValidSignatureForPublicKeyHash ?pk73 . }\n }\n graph ?a73 {\n ?c a owl:Class ; rdfs:subClassOf ?b2 .\n filter(isIRI(?b2))\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?b2), replace(str(?_resource_iri), \"[^/#]*$\", \"\"))) \n graph npa:graph {\n ?np74 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk74 ; npx:introduces ?b2 ; np:hasAssertion ?a74 .\n filter not exists { ?npi74 npx:invalidates ?np74 ; npa:hasValidSignatureForPublicKeyHash ?pk74 . }\n }\n graph ?a74 {\n ?b2 a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?b2), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\"))) }\n filter not exists { \n graph npa:graph {\n ?np75 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk75 ; npx:introduces ?x4 ; np:hasAssertion ?a75 .\n filter not exists { ?npi75 npx:invalidates ?np75 ; npa:hasValidSignatureForPublicKeyHash ?pk75 . }\n }\n graph ?a75 {\n ?x4 a owl:Class ; rdfs:subClassOf ?c .\n filter(isIRI(?c))\n }\n filter(strstarts(str(?x4), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\"))) }\n \n { select ?c (coalesce(min(?lu76), min(?la76), replace(str(?c), \"^.*[/#]\", \"\")) as ?clbl) where {\n graph npa:graph {\n ?np76 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk76 ; npx:introduces ?c ; np:hasAssertion ?a76 .\n filter not exists { ?npi76 npx:invalidates ?np76 ; npa:hasValidSignatureForPublicKeyHash ?pk76 . }\n }\n graph ?a76 {\n ?c a owl:Class .\n optional { ?c rdfs:label ?lu76 . filter(lang(?lu76) = \"\") }\n optional { ?c rdfs:label ?la76 . }\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?c }\n bind( as ?b) bind(\"Other\" as ?blbl) bind(\"z-Other\" as ?bsort)\n bind(concat(?clbl, \"|\", str(?c)) as ?sk) bind(0 as ?ind)\n }\n } } } }\n { select distinct (?bsort as ?bsort2) (?sk as ?sk2) (?c as ?c2) (?ind as ?ind2) where { \n { select distinct ?b ?bsort ?blbl ?c ?clbl ?ind ?sk where {\n \n { select ?root (count(distinct ?ch77) as ?nch77) where {\n graph npa:graph {\n ?np78 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk78 ; npx:introduces ?ch77 ; np:hasAssertion ?a78 .\n filter not exists { ?npi78 npx:invalidates ?np78 ; npa:hasValidSignatureForPublicKeyHash ?pk78 . }\n }\n graph ?a78 {\n ?ch77 a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?ch77), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter not exists {\n graph npa:graph {\n ?np79 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk79 ; npx:introduces ?root ; np:hasAssertion ?a79 .\n filter not exists { ?npi79 npx:invalidates ?np79 ; npa:hasValidSignatureForPublicKeyHash ?pk79 . }\n }\n graph ?a79 {\n ?root a owl:Class ; rdfs:subClassOf ?pp77 .\n filter(isIRI(?pp77))\n }\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?pp77), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n }\n } group by ?root order by desc(?nch77) limit 1 }\n {\n \n graph npa:graph {\n ?np80 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk80 ; npx:introduces ?b ; np:hasAssertion ?a80 .\n filter not exists { ?npi80 npx:invalidates ?np80 ; npa:hasValidSignatureForPublicKeyHash ?pk80 . }\n }\n graph ?a80 {\n ?b a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n graph npa:graph {\n ?np81 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk81 ; npx:introduces ?c ; np:hasAssertion ?a81 .\n filter not exists { ?npi81 npx:invalidates ?np81 ; npa:hasValidSignatureForPublicKeyHash ?pk81 . }\n }\n graph ?a81 {\n ?c a owl:Class ; rdfs:subClassOf ?b .\n filter(isIRI(?b))\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n { select ?b (coalesce(min(?lu82), min(?la82), replace(str(?b), \"^.*[/#]\", \"\")) as ?blbl0) where {\n graph npa:graph {\n ?np82 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk82 ; npx:introduces ?b ; np:hasAssertion ?a82 .\n filter not exists { ?npi82 npx:invalidates ?np82 ; npa:hasValidSignatureForPublicKeyHash ?pk82 . }\n }\n graph ?a82 {\n ?b a owl:Class .\n optional { ?b rdfs:label ?lu82 . filter(lang(?lu82) = \"\") }\n optional { ?b rdfs:label ?la82 . }\n }\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?b }\n \n { select ?c (coalesce(min(?lu83), min(?la83), replace(str(?c), \"^.*[/#]\", \"\")) as ?clbl) where {\n graph npa:graph {\n ?np83 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk83 ; npx:introduces ?c ; np:hasAssertion ?a83 .\n filter not exists { ?npi83 npx:invalidates ?np83 ; npa:hasValidSignatureForPublicKeyHash ?pk83 . }\n }\n graph ?a83 {\n ?c a owl:Class .\n optional { ?c rdfs:label ?lu83 . filter(lang(?lu83) = \"\") }\n optional { ?c rdfs:label ?la83 . }\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?c }\n bind(?blbl0 as ?blbl) bind(concat(\"a-\", ?blbl) as ?bsort)\n bind(concat(?clbl, \"|\", str(?c)) as ?sk) bind(0 as ?ind)\n } union {\n \n graph npa:graph {\n ?np84 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk84 ; npx:introduces ?b ; np:hasAssertion ?a84 .\n filter not exists { ?npi84 npx:invalidates ?np84 ; npa:hasValidSignatureForPublicKeyHash ?pk84 . }\n }\n graph ?a84 {\n ?b a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n graph npa:graph {\n ?np85 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk85 ; npx:introduces ?m ; np:hasAssertion ?a85 .\n filter not exists { ?npi85 npx:invalidates ?np85 ; npa:hasValidSignatureForPublicKeyHash ?pk85 . }\n }\n graph ?a85 {\n ?m a owl:Class ; rdfs:subClassOf ?b .\n filter(isIRI(?b))\n }\n filter(strstarts(str(?m), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n graph npa:graph {\n ?np86 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk86 ; npx:introduces ?c ; np:hasAssertion ?a86 .\n filter not exists { ?npi86 npx:invalidates ?np86 ; npa:hasValidSignatureForPublicKeyHash ?pk86 . }\n }\n graph ?a86 {\n ?c a owl:Class ; rdfs:subClassOf ?m .\n filter(isIRI(?m))\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?m), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n \n { select ?b (coalesce(min(?lu87), min(?la87), replace(str(?b), \"^.*[/#]\", \"\")) as ?blbl0) where {\n graph npa:graph {\n ?np87 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk87 ; npx:introduces ?b ; np:hasAssertion ?a87 .\n filter not exists { ?npi87 npx:invalidates ?np87 ; npa:hasValidSignatureForPublicKeyHash ?pk87 . }\n }\n graph ?a87 {\n ?b a owl:Class .\n optional { ?b rdfs:label ?lu87 . filter(lang(?lu87) = \"\") }\n optional { ?b rdfs:label ?la87 . }\n }\n filter(strstarts(str(?b), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?b }\n \n { select ?m (coalesce(min(?lu88), min(?la88), replace(str(?m), \"^.*[/#]\", \"\")) as ?mlbl) where {\n graph npa:graph {\n ?np88 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk88 ; npx:introduces ?m ; np:hasAssertion ?a88 .\n filter not exists { ?npi88 npx:invalidates ?np88 ; npa:hasValidSignatureForPublicKeyHash ?pk88 . }\n }\n graph ?a88 {\n ?m a owl:Class .\n optional { ?m rdfs:label ?lu88 . filter(lang(?lu88) = \"\") }\n optional { ?m rdfs:label ?la88 . }\n }\n filter(strstarts(str(?m), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?m }\n \n { select ?c (coalesce(min(?lu89), min(?la89), replace(str(?c), \"^.*[/#]\", \"\")) as ?clbl) where {\n graph npa:graph {\n ?np89 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk89 ; npx:introduces ?c ; np:hasAssertion ?a89 .\n filter not exists { ?npi89 npx:invalidates ?np89 ; npa:hasValidSignatureForPublicKeyHash ?pk89 . }\n }\n graph ?a89 {\n ?c a owl:Class .\n optional { ?c rdfs:label ?lu89 . filter(lang(?lu89) = \"\") }\n optional { ?c rdfs:label ?la89 . }\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?c }\n bind(?blbl0 as ?blbl) bind(concat(\"a-\", ?blbl) as ?bsort)\n bind(concat(?mlbl, \"~|\", ?clbl, \"|\", str(?c)) as ?sk) bind(1 as ?ind)\n } union {\n \n graph npa:graph {\n ?np90 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk90 ; npx:introduces ?c ; np:hasAssertion ?a90 .\n filter not exists { ?npi90 npx:invalidates ?np90 ; npa:hasValidSignatureForPublicKeyHash ?pk90 . }\n }\n graph ?a90 {\n ?c a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter not exists { \n graph npa:graph {\n ?np91 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk91 ; npx:introduces ?c ; np:hasAssertion ?a91 .\n filter not exists { ?npi91 npx:invalidates ?np91 ; npa:hasValidSignatureForPublicKeyHash ?pk91 . }\n }\n graph ?a91 {\n ?c a owl:Class ; rdfs:subClassOf ?b2 .\n filter(isIRI(?b2))\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?b2), replace(str(?_resource_iri), \"[^/#]*$\", \"\"))) \n graph npa:graph {\n ?np92 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk92 ; npx:introduces ?b2 ; np:hasAssertion ?a92 .\n filter not exists { ?npi92 npx:invalidates ?np92 ; npa:hasValidSignatureForPublicKeyHash ?pk92 . }\n }\n graph ?a92 {\n ?b2 a owl:Class ; rdfs:subClassOf ?root .\n filter(isIRI(?root))\n }\n filter(strstarts(str(?b2), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?root), replace(str(?_resource_iri), \"[^/#]*$\", \"\"))) }\n filter not exists { \n graph npa:graph {\n ?np93 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk93 ; npx:introduces ?x4 ; np:hasAssertion ?a93 .\n filter not exists { ?npi93 npx:invalidates ?np93 ; npa:hasValidSignatureForPublicKeyHash ?pk93 . }\n }\n graph ?a93 {\n ?x4 a owl:Class ; rdfs:subClassOf ?c .\n filter(isIRI(?c))\n }\n filter(strstarts(str(?x4), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\"))) }\n \n { select ?c (coalesce(min(?lu94), min(?la94), replace(str(?c), \"^.*[/#]\", \"\")) as ?clbl) where {\n graph npa:graph {\n ?np94 npx:hasNanopubType owl:Class ; npa:hasValidSignatureForPublicKeyHash ?pk94 ; npx:introduces ?c ; np:hasAssertion ?a94 .\n filter not exists { ?npi94 npx:invalidates ?np94 ; npa:hasValidSignatureForPublicKeyHash ?pk94 . }\n }\n graph ?a94 {\n ?c a owl:Class .\n optional { ?c rdfs:label ?lu94 . filter(lang(?lu94) = \"\") }\n optional { ?c rdfs:label ?la94 . }\n }\n filter(strstarts(str(?c), replace(str(?_resource_iri), \"[^/#]*$\", \"\")))\n } group by ?c }\n bind( as ?b) bind(\"Other\" as ?blbl) bind(\"z-Other\" as ?bsort)\n bind(concat(?clbl, \"|\", str(?c)) as ?sk) bind(0 as ?ind)\n }\n } } } }\n filter(?bsort2 < ?bsort)\n } group by ?bsort }\n }\n\n bind(coalesce(?nprev, 0) * 15 + coalesce(?gprev, 0) * 48 as ?ylin)\n bind(if(?ylin >= ?half, 1, 0) as ?col)\n bind(20 + ?col * 242 as ?x)\n bind(56 + ?ylin - ?col * ?half as ?y)\n bind(?n * 15 + 40 as ?gh)\n bind(concat(\n \'\',\n \'\',\n \'\',\n if(?b = ,\n concat(\'\', replace(replace(replace(if(strlen(?blbl) > 34, concat(substr(?blbl, 1, 33), \"\342\200\246\"), ?blbl), \"&\", \"&\"), \"<\", \"<\"), \">\", \">\"), \'\', replace(replace(replace(?blbl, \"&\", \"&\"), \"<\", \"<\"), \">\", \">\"), \'\'),\n concat(\'\", \">\"), \'\">\', replace(replace(replace(if(strlen(?blbl) > 34, concat(substr(?blbl, 1, 33), \"\342\200\246\"), ?blbl), \"&\", \"&\"), \"<\", \"<\"), \">\", \">\"), \'\', replace(replace(replace(?blbl, \"&\", \"&\"), \"<\", \"<\"), \">\", \">\"), \'\')),\n \'\', ?itemfrags, \'\',\n \'\') as ?gfrag)\n}" } } } 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-08-11T12:07:50Z" 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 class typology diagram as SVG" } } } 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: "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: "iiJbEgyKjmST1ATemYEuEn/WKbnnwkKdQFlFUHyzMqn5S4MdI48uMtY3i3bwaHC2T1tv1hlN07TADqVE1IZXS/mkHQ3awSPeERTKqoDr1xpi0bl5LzJa28bmsIpcLNlCNM0R40VtqP9Du0uXbP/GizpqiBbhjpMYj0c3MiAf6iE=" } } } 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 } } }