@prefix this: . @prefix sub: . @prefix np: . @prefix grlc: . @prefix dct: . @prefix nt: . @prefix npx: . @prefix xsd: . @prefix rdfs: . @prefix orcid: . @prefix prov: . @prefix foaf: . sub:Head { this: a np:Nanopublication; np:hasAssertion sub:assertion; np:hasProvenance sub:provenance; np:hasPublicationInfo sub:pubinfo . } sub:assertion { sub:get-top-software-agent-nanopublishers a grlc:grlc-query; dct:description "This query returns the 10 software agents that published most nanopublications overall. Publishers are resolved via the trust network: only agents with an approved account are counted, and only the nanopublications signed with their own approved public keys. An agent counts as a software agent if it is introduced as a bot or other software agent."; dct:license ; rdfs:label "Get the top-10 software agent nanopublishers"; grlc:endpoint ; grlc:sparql """prefix npa: prefix npx: prefix prov: select ?user_iri where { # resolve the signing keys to their agents via the trust network (approved accounts only): { select ?user_iri ?pubkey_hash where { service { graph npa:graph { npa:hasCurrentTrustState ?trust_state . } graph ?trust_state { ?account a npa:AccountState ; npa:agent ?user_iri ; npa:pubkey ?pubkey_hash ; npa:trustStatus ?trust_status . } filter(?trust_status in (npa:loaded, npa:toLoad)) } } } # keep only agents that are introduced as bots or other software agents: { select distinct ?user_iri where { values ?agent_type { npx:Bot npx:SoftwareAgent prov:SoftwareAgent } graph ?agent_graph { ?user_iri a ?agent_type . } } } # count all their nanopublications per signing key: { select ?pubkey (count(distinct ?np) as ?np_count) where { graph npa:graph { ?np npa:hasValidSignatureForPublicKey ?pubkey . } } group by ?pubkey } filter(sha256(?pubkey) = ?pubkey_hash) } group by ?user_iri order by desc(sum(?np_count)) limit 10""" . } sub:provenance { sub:assertion prov:wasAttributedTo orcid:0000-0002-1267-0234 . } sub:pubinfo { orcid:0000-0002-1267-0234 foaf:name "Tobias Kuhn" . this: dct:created "2026-11-12T08:18:07.365+01:00"^^xsd:dateTime; dct:creator orcid:0000-0002-1267-0234; dct:license ; npx:embeds sub:get-top-software-agent-nanopublishers; prov:wasDerivedFrom ; nt:wasCreatedFromProvenanceTemplate ; nt:wasCreatedFromPubinfoTemplate , , ; nt:wasCreatedFromTemplate . sub:sig npx:hasAlgorithm "RSA"; npx:hasPublicKey "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB"; npx:hasSignature "fU15evdPZRL6ouNRMHFC0rvOX2G6+ijdhukE9icq316DwS3wUhWR6LLk6kUFrugR+9OlZCti8ZDXQ5D7EdIB3ao1oa6zw2n5hp4b5O0S16mbCPp8mF/i0AAVWXvcxmtNI6d58PEK0d6bba77MJy8wS5M55Jy0ebBHoq0h5HAIkY="; npx:hasSignatureTarget this:; npx:signedBy orcid:0000-0002-1267-0234 . }