@prefix this: . @prefix sub: . @prefix np: . @prefix grlc: . @prefix dct: . @prefix nt: . @prefix npx: . @prefix xsd: . @prefix rdfs: . @prefix orcid: . @prefix prov: . sub:Head { this: a np:Nanopublication; np:hasAssertion sub:assertion; np:hasProvenance sub:provenance; np:hasPublicationInfo sub:pubinfo . } sub:assertion { sub:get-unanswered-faqs a grlc:grlc-query; dct:description "This query returns the unanswered FAQ entries of an entity: questions whose most recent declaration is typed as gen:UnansweredQuestion (i.e. still carrying a placeholder instead of a real answer). Questions from everybody are returned (no author filter). Returns the question text as a plain label, plus per-row action target columns: override_target and answer_target both hold the latest nanopub that npx:introduces the entry (the valid Nanodash @override fill target, so the form pre-fills with the entry's own IRI preserved), and mark_unanswered holds the gen:UnansweredQuestion IRI so an 'override...' action can keep the entry marked unanswered while an 'answer...' action turns it into an answered entry."; dct:license ; rdfs:label "Get unanswered FAQ entries of an entity"; grlc:endpoint ; grlc:sparql """prefix rdf: prefix rdfs: prefix dct: prefix np: prefix npa: prefix npx: prefix schema: prefix gen: select ?question (?introNp as ?override_target) (?introNp as ?answer_target) (\"https://w3id.org/kpxl/gen/terms/UnansweredQuestion\" as ?mark_unanswered) ?np (\"^\" as ?np_label) where { graph npa:graph { ?np npa:hasValidSignatureForPublicKeyHash ?pubkey . filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . } ?np dct:created ?date . ?np np:hasAssertion ?a . } graph ?a { ?faq rdf:type schema:Question . ?faq rdf:type gen:UnansweredQuestion . ?faq rdfs:label ?question . values ?_resource_multi_iri {} ?faq dct:isPartOf ?_resource_multi_iri . optional { ?faq gen:hasPositionString ?position } } filter not exists { graph npa:graph { ?np2 npa:hasValidSignatureForPublicKeyHash ?pubkey2 . filter not exists { ?npx2 npx:invalidates ?np2 ; npa:hasValidSignatureForPublicKeyHash ?pubkey2 . } ?np2 dct:created ?date2 . ?np2 np:hasAssertion ?a2 . filter (?date2 > ?date) } graph ?a2 { ?faq rdf:type schema:Question . } } optional { graph npa:graph { ?introNp npx:introduces ?faq ; npa:hasValidSignatureForPublicKeyHash ?ipk ; dct:created ?idate . filter not exists { ?iv npx:invalidates ?introNp ; npa:hasValidSignatureForPublicKeyHash ?ipk . } } filter not exists { graph npa:graph { ?introNp2 npx:introduces ?faq ; npa:hasValidSignatureForPublicKeyHash ?ipk2 ; dct:created ?idate2 . filter not exists { ?iv2 npx:invalidates ?introNp2 ; npa:hasValidSignatureForPublicKeyHash ?ipk2 . } filter(?idate2 > ?idate || (?idate2 = ?idate && str(?introNp2) > str(?introNp))) } } } } order by ?position ?question""" . } sub:provenance { sub:assertion prov:wasAttributedTo orcid:0000-0002-1267-0234 . } sub:pubinfo { this: dct:created "2026-07-16T10:40:54Z"^^xsd:dateTime; dct:creator orcid:0000-0002-1267-0234; dct:license ; npx:embeds sub:get-unanswered-faqs; npx:supersedes ; rdfs:label "Get unanswered FAQ entries of an entity"; nt:wasCreatedFromProvenanceTemplate ; nt:wasCreatedFromPubinfoTemplate , , , , ; nt:wasCreatedFromTemplate . sub:sig npx:hasAlgorithm "RSA"; npx:hasPublicKey "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB"; npx:hasSignature "aMpGbq3XrvnRu80nTcKPrZrZrXTvW1bYvvpd6uROD+bvKlVXARCej8alTiPhwPzDVKCEgyMfUPGq//5At3E76g16hL2utx0NJwtCjc+zCTk5lOgo4cvICDQP8zhz1I0Q4aOjV3Zwk2G2SADUsqVqG1jmNLWieKQCwXagpF6O4FQ="; npx:hasSignatureTarget this:; npx:signedBy orcid:0000-0002-1267-0234 . }