. . . . "This query returns the items a given user has read, covering both schema:ReadAction and paperclub:hasRead nanopubs." . . . "Get reads by reader" . . "prefix schema: \nprefix pc: \nprefix rdfs: \nprefix dct: \nprefix np: \nprefix npa: \nprefix npx: \nprefix xsd: \n\nselect distinct ?item ?item_label ?date ?comment ?np (\"^\" as ?np_label) where {\n {\n graph npa:graph {\n ?np npa:hasValidSignatureForPublicKeyHash ?pubkey .\n filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }\n ?np np:hasAssertion ?a .\n }\n graph ?a {\n ?ra a schema:ReadAction ;\n schema:agent ?_reader_iri ;\n schema:object ?item .\n optional { ?item rdfs:label ?item_label }\n optional { ?ra schema:endTime ?date }\n optional { ?ra rdfs:comment ?comment }\n }\n }\n union\n {\n bind(iri(concat(\"https://w3id.org/np/l/nanopub-query-1.1/repo/type/\", sha256(str(pc:hasRead)))) as ?hasread_repo)\n service ?hasread_repo {\n graph npa:graph {\n ?np npa:hasValidSignatureForPublicKeyHash ?pubkey .\n filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }\n ?np np:hasAssertion ?a .\n ?np npx:signedBy ?_reader_iri .\n }\n graph ?a {\n ?_reader_iri pc:hasRead ?item .\n optional { ?item rdfs:comment ?comment }\n }\n }\n }\n} order by desc(?date)" . . "Tobias Kuhn" . "2026-04-07T15:39:47Z"^^ . . . . . . . . . "RSA" . "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB" . "Q5qXVV23UFPjyBvQyIqxY4CRFGNPCrKBKqn3UTHrFuHtcs7okYbTj2d3BXw88F1yXjf4t3CUHRhSg14EdKrANf86URFEQkW2yZI8zbKAaqDLddFputf3flAsw+6C5ghxZYUC1sK+cJJe0rIXvtXwfkU4GDp8adCe40EdK/iCkTE=" . . .