https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4/Head https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4 http://www.nanopub.org/nschema#hasAssertion https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4/assertion https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4 http://www.nanopub.org/nschema#hasProvenance https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4/provenance https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4 http://www.nanopub.org/nschema#hasPublicationInfo https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4/pubinfo https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4 http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://www.nanopub.org/nschema#Nanopublication https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4/assertion https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4/get-space-onehealth-coverage-svg http://purl.org/dc/terms/description Returns a single row holding an SVG diagram of how the projects of a space cover the three One Health domains: three overlapping circles for Human, Animal and Environment, each region showing the number of projects tagged with exactly that combination of domains via the ZonMw One Health vocabulary (zonmw/r/onehealth/domain), and each domain heading showing how many of the space's projects and how many datasets are tagged with it. Projects are the gen:Project spaces whose IRI extends the given space, tagged or not, which gives the 'of N' denominator; entities are anything under the space's IRI that carries a domain tag, classified as project (gen:Project), dataset (ff:Dataset) or other. The per-entity domain flags are computed once and every count is a conditional sum over that one set of rows, so the figures never multiply each other. Only tags asserted in nanopublications signed by a current admin, maintainer or member of the space or one of its sub-spaces count, with invalidated, superseded and example nanopublications skipped; the membership lookup is a federated sub-select sharing no variables with the rest of the query. The SVG uses explicit end tags and camelCase attributes and contains no data-derived text other than numbers, so it needs no escaping. https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4/get-space-onehealth-coverage-svg http://purl.org/dc/terms/license http://www.apache.org/licenses/LICENSE-2.0 https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4/get-space-onehealth-coverage-svg http://www.w3.org/1999/02/22-rdf-syntax-ns#type https://w3id.org/kpxl/grlc/grlc-query https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4/get-space-onehealth-coverage-svg http://www.w3.org/2000/01/rdf-schema#label Get a One Health coverage diagram for a space and its sub-spaces https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4/get-space-onehealth-coverage-svg https://w3id.org/kpxl/grlc/endpoint https://w3id.org/np/l/nanopub-query-1.1/repo/full https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4/get-space-onehealth-coverage-svg https://w3id.org/kpxl/grlc/sparql prefix np: <http://www.nanopub.org/nschema#> prefix npa: <http://purl.org/nanopub/admin/> prefix npx: <http://purl.org/nanopub/x/> prefix gen: <https://w3id.org/kpxl/gen/terms/> prefix ff: <https://w3id.org/fair/ff/terms/> prefix oh: <https://w3id.org/spaces/zonmw/r/onehealth/> select ?svg where { # One row: how many projects and datasets sit in each region of the Human / Animal / # Environment diagram, computed from one set of per-entity domain flags so that the # sums never multiply each other. { select (sum(if(?kind = "project" && ?h = 1 && ?a = 0 && ?e = 0, 1, 0)) as ?pH) (sum(if(?kind = "project" && ?h = 0 && ?a = 1 && ?e = 0, 1, 0)) as ?pA) (sum(if(?kind = "project" && ?h = 0 && ?a = 0 && ?e = 1, 1, 0)) as ?pE) (sum(if(?kind = "project" && ?h = 1 && ?a = 1 && ?e = 0, 1, 0)) as ?pHA) (sum(if(?kind = "project" && ?h = 1 && ?a = 0 && ?e = 1, 1, 0)) as ?pHE) (sum(if(?kind = "project" && ?h = 0 && ?a = 1 && ?e = 1, 1, 0)) as ?pAE) (sum(if(?kind = "project" && ?h = 1 && ?a = 1 && ?e = 1, 1, 0)) as ?pHAE) (sum(if(?kind = "project" && ?h = 1, 1, 0)) as ?pHt) (sum(if(?kind = "project" && ?a = 1, 1, 0)) as ?pAt) (sum(if(?kind = "project" && ?e = 1, 1, 0)) as ?pEt) (sum(if(?kind = "project", 1, 0)) as ?pTagged) (sum(if(?kind = "dataset" && ?h = 1, 1, 0)) as ?dHt) (sum(if(?kind = "dataset" && ?a = 1, 1, 0)) as ?dAt) (sum(if(?kind = "dataset" && ?e = 1, 1, 0)) as ?dEt) (sum(if(?kind = "dataset", 1, 0)) as ?dTagged) (sum(if(?kind = "other" && ?h = 1, 1, 0)) as ?oHt) (sum(if(?kind = "other" && ?a = 1, 1, 0)) as ?oAt) (sum(if(?kind = "other" && ?e = 1, 1, 0)) as ?oEt) where { { select ?entity ?kind (max(if(?domain = oh:Human, 1, 0)) as ?h) (max(if(?domain = oh:Animal, 1, 0)) as ?a) (max(if(?domain = oh:Environment, 1, 0)) as ?e) where { values ?_space_multi_iri {} { select (group_concat(distinct ?mpk; separator=" ") as ?memberPubkeys) where { service <https://w3id.org/np/l/nanopub-query-1.1/repo/spaces> { select ?mpk where { values ?_space_multi_iri {} graph npa:graph { <http://purl.org/nanopub/admin/thisRepo> npa:hasCurrentSpaceState ?stateG . } graph ?stateG { ?ri a gen:RoleInstantiation ; npa:forSpace ?sp ; npa:forAgent ?agent ; npa:hasRoleType ?rt . filter(?rt in (gen:AdminRole, gen:MaintainerRole, gen:MemberRole)) ?acct a npa:AccountState ; npa:agent ?agent ; npa:pubkey ?mpk . } filter(?sp = ?_space_multi_iri || strstarts(str(?sp), concat(str(?_space_multi_iri), "/"))) } } } } graph npa:graph { ?np npa:hasValidSignatureForPublicKeyHash ?npPubkey . filter not exists { ?invNp npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?npPubkey . } filter not exists { ?supNp npx:supersedes ?np . } filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . } ?np np:hasAssertion ?a0 . } filter(contains(?memberPubkeys, ?npPubkey)) graph ?a0 { ?entity oh:domain ?domain . } filter(strstarts(str(?entity), concat(str(?_space_multi_iri), "/"))) bind(if(exists { graph ?ta { ?entity a gen:Project } }, "project", if(exists { graph ?tb { ?entity a ff:Dataset } }, "dataset", "other")) as ?kind) } group by ?entity ?kind } } } # Denominator: every project space in the subtree, tagged or not. { select (count(distinct ?project) as ?pAll) where { values ?_space_multi_iri {} graph npa:graph { ?pnp np:hasAssertion ?pa . filter not exists { ?psup npx:supersedes ?pnp . } } graph ?pa { ?project a gen:Project . } filter(strstarts(str(?project), concat(str(?_space_multi_iri), "/"))) } } bind(if(?pAll > 0, ?pAll, ?pTagged) as ?pTotal) bind(concat( '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 470 370" width="705" height="555" font-family="sans-serif">', '<circle cx="160" cy="145" r="95" fill="#4e79a7" fill-opacity="0.22" stroke="#4e79a7" stroke-width="2"></circle>', '<circle cx="300" cy="145" r="95" fill="#e15759" fill-opacity="0.22" stroke="#e15759" stroke-width="2"></circle>', '<circle cx="230" cy="240" r="95" fill="#59a14f" fill-opacity="0.22" stroke="#59a14f" stroke-width="2"></circle>', '<text x="98" y="22" text-anchor="middle" font-size="15" font-weight="bold" fill="#4e79a7">Human</text>', '<text x="98" y="38" text-anchor="middle" font-size="10" fill="#444">', str(?pHt), ' of ', str(?pTotal), ' projects, ', str(?dHt), ' datasets</text>', '<text x="362" y="22" text-anchor="middle" font-size="15" font-weight="bold" fill="#e15759">Animal</text>', '<text x="362" y="38" text-anchor="middle" font-size="10" fill="#444">', str(?pAt), ' of ', str(?pTotal), ' projects, ', str(?dAt), ' datasets</text>', '<text x="395" y="307" text-anchor="middle" font-size="15" font-weight="bold" fill="#59a14f">Environment</text>', '<text x="395" y="323" text-anchor="middle" font-size="10" fill="#444">', str(?pEt), ' of ', str(?pTotal), ' projects, ', str(?dEt), ' datasets</text>', '<text x="118" y="133" text-anchor="middle" font-size="22" font-weight="bold" fill="', if(?pH > 0, '#222', '#aaa'), '">', str(?pH), '</text>', '<text x="342" y="133" text-anchor="middle" font-size="22" font-weight="bold" fill="', if(?pA > 0, '#222', '#aaa'), '">', str(?pA), '</text>', '<text x="230" y="293" text-anchor="middle" font-size="22" font-weight="bold" fill="', if(?pE > 0, '#222', '#aaa'), '">', str(?pE), '</text>', '<text x="230" y="115" text-anchor="middle" font-size="22" font-weight="bold" fill="', if(?pHA > 0, '#222', '#aaa'), '">', str(?pHA), '</text>', '<text x="168" y="221" text-anchor="middle" font-size="22" font-weight="bold" fill="', if(?pHE > 0, '#222', '#aaa'), '">', str(?pHE), '</text>', '<text x="292" y="221" text-anchor="middle" font-size="22" font-weight="bold" fill="', if(?pAE > 0, '#222', '#aaa'), '">', str(?pAE), '</text>', '<text x="230" y="185" text-anchor="middle" font-size="22" font-weight="bold" fill="', if(?pHAE > 0, '#222', '#aaa'), '">', str(?pHAE), '</text>', '<text x="12" y="362" font-size="10" fill="#666">Numbers: projects per region (', str(?pTagged), ' of ', str(?pTotal), ' projects tagged, ', str(?dTagged), ' datasets)</text>', '</svg>') as ?svg) } https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4/provenance https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4/assertion http://www.w3.org/ns/prov#wasAttributedTo https://orcid.org/0000-0002-1267-0234 https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4/pubinfo https://orcid.org/0000-0002-1267-0234 http://xmlns.com/foaf/0.1/name Tobias Kuhn https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4 http://purl.org/dc/terms/created 2026-09-13T05:32:24Z https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4 http://purl.org/dc/terms/creator https://orcid.org/0000-0002-1267-0234 https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4 http://purl.org/dc/terms/license https://creativecommons.org/licenses/by/4.0/ https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4 http://purl.org/nanopub/x/embeds https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4/get-space-onehealth-coverage-svg https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4 http://www.w3.org/2000/01/rdf-schema#label Get a One Health coverage diagram for a space and its sub-spaces https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4 https://w3id.org/np/o/ntemplate/wasCreatedFromProvenanceTemplate https://w3id.org/np/RA7lSq6MuK_TIC6JMSHvLtee3lpLoZDOqLJCLXevnrPoU https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4 https://w3id.org/np/o/ntemplate/wasCreatedFromPubinfoTemplate https://w3id.org/np/RACJ58Gvyn91LqCKIO9zu1eijDQIeEff28iyDrJgjSJF8 https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4 https://w3id.org/np/o/ntemplate/wasCreatedFromPubinfoTemplate https://w3id.org/np/RAukAcWHRDlkqxk7H2XNSegc1WnHI569INvNr-xdptDGI https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4 https://w3id.org/np/o/ntemplate/wasCreatedFromTemplate https://w3id.org/np/RAEFAt-QcFK0ZhqfvlsmS10BnzGJA0xwOICZXkO-ai87k https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4/sig http://purl.org/nanopub/x/hasAlgorithm RSA https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4/sig http://purl.org/nanopub/x/hasPublicKey MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4/sig http://purl.org/nanopub/x/hasSignature AYD3btJN+kkQKJvpMXgJW/WUcAdli1ctXlF7m/qLdpMAUczBZCbV7gXGERgd/w07RwUCMfWA5btJdEF8Us5dcIn7TovnxLKnUI4NgQLKAOrJhmOGNGFEtP5nUa06emfWuTgr82MipwphD1585Y3YOVpRaOGw5t7Nll+7Riuo1xY= https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4/sig http://purl.org/nanopub/x/hasSignatureTarget https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4 https://w3id.org/np/RAunUifYz7BVtmxBmneNaDh9SEO5fB7Uqsj6vsQXC66S4/sig http://purl.org/nanopub/x/signedBy https://orcid.org/0000-0002-1267-0234