https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8/Head https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8 http://www.nanopub.org/nschema#hasAssertion https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8/assertion https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8 http://www.nanopub.org/nschema#hasProvenance https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8/provenance https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8 http://www.nanopub.org/nschema#hasPublicationInfo https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8/pubinfo https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8 http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://www.nanopub.org/nschema#Nanopublication https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8/assertion https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8/get-trust-network-overview-svg http://purl.org/dc/terms/description Returns a single result row with one 'svg' column holding a complete SVG diagram of the whole trust network of the nanopublication ecosystem, computed entirely from the current trust state. This is the query behind the 'Trust network overview' SVG view (gen:SvgView). Every agent in the trust state is drawn as one equally sized dot, placed in a horizontal band according to its minimum depth from the trust seed and ordered within that band by agent IRI; each dot links root-relatively (/user?id=...) to that agent's user page. A line is drawn for every endorsement between two distinct agents, so the fan below an agent shows the agents it brought into the network. Dot color encodes depth, with contested agents in red and skipped (rejected) agents in gray. The diagram carries no title, caption or labels: it is a pure node-and-link rendering meant to sit under the view's own heading. The query reads npa:EndorsementLink nodes (npa:fromAgent / npa:toAgent) together with the npa:AccountState rows of the current trust state, so it needs no federated SERVICE call and no scan of the full repository. Per-pubkey duplicate rows are collapsed to one dot per agent, self-endorsements across an agent's own keys are not drawn as edges, and positions come from rank subqueries, so the output is deterministic. The 'resource' parameter is the page the view is shown on; it is not used by the diagram, which always shows the whole network. https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8/get-trust-network-overview-svg http://purl.org/dc/terms/license http://www.apache.org/licenses/LICENSE-2.0 https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8/get-trust-network-overview-svg http://www.w3.org/1999/02/22-rdf-syntax-ns#type https://w3id.org/kpxl/grlc/grlc-query https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8/get-trust-network-overview-svg http://www.w3.org/2000/01/rdf-schema#label Get trust network overview diagram as SVG https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8/get-trust-network-overview-svg https://w3id.org/kpxl/grlc/endpoint https://w3id.org/np/l/nanopub-query-1.1/repo/trust https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8/get-trust-network-overview-svg https://w3id.org/kpxl/grlc/sparql prefix npa: <http://purl.org/nanopub/admin/> select (concat("<svg xmlns='http://www.w3.org/2000/svg' width='100%' viewBox='0 0 1800 720' font-family='sans-serif'><line x1='0' y1='60' x2='1800' y2='60' stroke='#ececec' stroke-width='1'></line><line x1='0' y1='210' x2='1800' y2='210' stroke='#ececec' stroke-width='1'></line><line x1='0' y1='360' x2='1800' y2='360' stroke='#ececec' stroke-width='1'></line><line x1='0' y1='510' x2='1800' y2='510' stroke='#ececec' stroke-width='1'></line><line x1='0' y1='660' x2='1800' y2='660' stroke='#ececec' stroke-width='1'></line>", ?edgesvg, ?nodesvg, "</svg>") as ?svg) where { bind(?_resource_iri as ?pageResource) { select (group_concat(?eline; separator="") as ?edgesvg) where { { select ?aF ?depF ((round(14 + 1772 * (?rankF - 0.5) / ?bnF)) as ?xF) ((60 + (?depF - 1) * 150) as ?yF) where { { select ?aF ?depF (count(distinct ?a2F) as ?rankF) where { { select ?aFa (min(?dFa) as ?depFa) where { npa:thisRepo npa:hasCurrentTrustState ?tsFa . graph ?tsFa { ?stFa a npa:AccountState ; npa:agent ?aFa ; npa:depth ?dFa } } group by ?aFa } bind(str(?aFa) as ?keyF) bind(?aFa as ?aF) bind(?depFa as ?depF) { select ?aFb (min(?dFb) as ?depFb) where { npa:thisRepo npa:hasCurrentTrustState ?tsFb . graph ?tsFb { ?stFb a npa:AccountState ; npa:agent ?aFb ; npa:depth ?dFb } } group by ?aFb } bind(str(?aFb) as ?key2F) bind(?aFb as ?a2F) filter(?depFb = ?depF && ?key2F <= ?keyF) } group by ?aF ?depF } { select ?depBF (count(*) as ?bnF) where { { select ?aFc (min(?dFc) as ?depFc) where { npa:thisRepo npa:hasCurrentTrustState ?tsFc . graph ?tsFc { ?stFc a npa:AccountState ; npa:agent ?aFc ; npa:depth ?dFc } } group by ?aFc } bind(?depFc as ?depBF) } group by ?depBF } filter(?depBF = ?depF) } } { select ?aT ?depT ((round(14 + 1772 * (?rankT - 0.5) / ?bnT)) as ?xT) ((60 + (?depT - 1) * 150) as ?yT) where { { select ?aT ?depT (count(distinct ?a2T) as ?rankT) where { { select ?aTa (min(?dTa) as ?depTa) where { npa:thisRepo npa:hasCurrentTrustState ?tsTa . graph ?tsTa { ?stTa a npa:AccountState ; npa:agent ?aTa ; npa:depth ?dTa } } group by ?aTa } bind(str(?aTa) as ?keyT) bind(?aTa as ?aT) bind(?depTa as ?depT) { select ?aTb (min(?dTb) as ?depTb) where { npa:thisRepo npa:hasCurrentTrustState ?tsTb . graph ?tsTb { ?stTb a npa:AccountState ; npa:agent ?aTb ; npa:depth ?dTb } } group by ?aTb } bind(str(?aTb) as ?key2T) bind(?aTb as ?a2T) filter(?depTb = ?depT && ?key2T <= ?keyT) } group by ?aT ?depT } { select ?depBT (count(*) as ?bnT) where { { select ?aTc (min(?dTc) as ?depTc) where { npa:thisRepo npa:hasCurrentTrustState ?tsTc . graph ?tsTc { ?stTc a npa:AccountState ; npa:agent ?aTc ; npa:depth ?dTc } } group by ?aTc } bind(?depTc as ?depBT) } group by ?depBT } filter(?depBT = ?depT) } } { select distinct ?aF ?aT where { npa:thisRepo npa:hasCurrentTrustState ?tsE . graph ?tsE { ?lE a npa:EndorsementLink ; npa:fromAgent ?aF ; npa:toAgent ?aT } filter(?aF != ?aT) } } bind(concat("<line x1='", str(?xF), "' y1='", str(?yF + 2.0), "' x2='", str(?xT), "' y2='", str(?yT - 2.0), "' stroke='#7aa7d0' stroke-opacity='0.16' stroke-width='0.5'></line>") as ?eline) } } { select (group_concat(?nline; separator="") as ?nodesvg) where { { select ?aN ?depN ((round(14 + 1772 * (?rankN - 0.5) / ?bnN)) as ?xN) ((60 + (?depN - 1) * 150) as ?yN) where { { select ?aN ?depN (count(distinct ?a2N) as ?rankN) where { { select ?aNa (min(?dNa) as ?depNa) where { npa:thisRepo npa:hasCurrentTrustState ?tsNa . graph ?tsNa { ?stNa a npa:AccountState ; npa:agent ?aNa ; npa:depth ?dNa } } group by ?aNa } bind(str(?aNa) as ?keyN) bind(?aNa as ?aN) bind(?depNa as ?depN) { select ?aNb (min(?dNb) as ?depNb) where { npa:thisRepo npa:hasCurrentTrustState ?tsNb . graph ?tsNb { ?stNb a npa:AccountState ; npa:agent ?aNb ; npa:depth ?dNb } } group by ?aNb } bind(str(?aNb) as ?key2N) bind(?aNb as ?a2N) filter(?depNb = ?depN && ?key2N <= ?keyN) } group by ?aN ?depN } { select ?depBN (count(*) as ?bnN) where { { select ?aNc (min(?dNc) as ?depNc) where { npa:thisRepo npa:hasCurrentTrustState ?tsNc . graph ?tsNc { ?stNc a npa:AccountState ; npa:agent ?aNc ; npa:depth ?dNc } } group by ?aNc } bind(?depNc as ?depBN) } group by ?depBN } filter(?depBN = ?depN) } } { select ?aN (min(?statN0) as ?statN) where { npa:thisRepo npa:hasCurrentTrustState ?tsN . graph ?tsN { ?stN0 a npa:AccountState ; npa:agent ?aN ; npa:trustStatus ?statN0 } } group by ?aN } bind(if(?statN = npa:contested, "#c8553d", if(?statN = npa:skipped, "#8a8a8a", if(?depN = 1, "#0d4f8b", if(?depN = 2, "#2f7fc4", if(?depN = 3, "#5fa3da", if(?depN = 4, "#8fc0e8", "#bcd9f0")))))) as ?fill) bind(concat( "<a href='/user?id=", encode_for_uri(str(?aN)), "'>", "<circle cx='", str(?xN), "' cy='", str(?yN), "' r='2.0", "' fill='", ?fill, "' stroke='#ffffff' stroke-width='0.3'></circle>", "</a>") as ?nline) } } } https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8/provenance https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8/assertion http://www.w3.org/ns/prov#wasAttributedTo https://orcid.org/0000-0002-1267-0234 https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8/pubinfo https://orcid.org/0000-0002-1267-0234 http://xmlns.com/foaf/0.1/name Tobias Kuhn https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8 http://purl.org/dc/terms/created 2026-08-25T14:59:31Z https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8 http://purl.org/dc/terms/creator https://orcid.org/0000-0002-1267-0234 https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8 http://purl.org/dc/terms/license https://creativecommons.org/licenses/by/4.0/ https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8 http://purl.org/nanopub/x/embeds https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8/get-trust-network-overview-svg https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8 http://purl.org/nanopub/x/supersedes https://w3id.org/np/RAReI5TwNByIwqmZ7poMBf18cg5sCxVh2Sxjx1v6hHEEU https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8 http://www.w3.org/2000/01/rdf-schema#label Get trust network overview diagram as SVG https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8 https://w3id.org/np/o/ntemplate/wasCreatedFromProvenanceTemplate https://w3id.org/np/RA7lSq6MuK_TIC6JMSHvLtee3lpLoZDOqLJCLXevnrPoU https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8 https://w3id.org/np/o/ntemplate/wasCreatedFromPubinfoTemplate https://w3id.org/np/RACJ58Gvyn91LqCKIO9zu1eijDQIeEff28iyDrJgjSJF8 https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8 https://w3id.org/np/o/ntemplate/wasCreatedFromPubinfoTemplate https://w3id.org/np/RAukAcWHRDlkqxk7H2XNSegc1WnHI569INvNr-xdptDGI https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8 https://w3id.org/np/o/ntemplate/wasCreatedFromTemplate https://w3id.org/np/RAEFAt-QcFK0ZhqfvlsmS10BnzGJA0xwOICZXkO-ai87k https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8/sig http://purl.org/nanopub/x/hasAlgorithm RSA https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8/sig http://purl.org/nanopub/x/hasPublicKey MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8/sig http://purl.org/nanopub/x/hasSignature T8qvF8y79Sp0Nvq5mXuwMT1URQxzM42qnId0YUX5Z/AmttHkVRfke/R9HjFr98BzFdGkBhMUqH2VxQxWuyQTfE+zgt/bVDMPoK03jJrh+jxWagCCo19sIp0QUoVNKT5lm+bDLbvqf8d7FypUSx4FQvjoAGFrp1/hvXrwo462qds= https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8/sig http://purl.org/nanopub/x/hasSignatureTarget https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8 https://w3id.org/np/RAxG3GJWg2-O9WwwLuIIpg7PCZRHFWrYi25N6y8jKEsT8/sig http://purl.org/nanopub/x/signedBy https://orcid.org/0000-0002-1267-0234