@prefix this: . @prefix sub: . @prefix np: . @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-3pff-events-html a ; dct:description "Returns a list of all events related to the Three Point FAIRification Framework (3PFF), with multi-value fields pre-rendered as HTML anchor strings. Organizer and facilitator links use the agent's display name (resolved from the trust repository) as anchor text, falling back to the URI's local name. Variant of get-3pff-events intended for consumption by clients (e.g. nanopub-table with data-bind-html) that cannot split space-separated URI lists on their own."; dct:license ; rdfs:label "Get 3PFF Events (HTML)"; ; """prefix rdfs: prefix np: prefix npa: prefix npx: prefix xsd: prefix dct: prefix prov: prefix foaf: prefix tpff: prefix schema: select (?event as ?Event_ID) (?eventShortName as ?Event_ID__label) (?eventLongName as ?Event_Name) (?eventDate as ?Date) (concat(\"\", group_concat(distinct concat( \"\", coalesce(?eventOrganizerName, replace(str(?eventOrganizer), \"^.*[/#]\", \"\")), \"\" ); separator=\", \"), \"\") as ?Organizers) (concat(\"\", group_concat(distinct concat( \"\", coalesce(?eventFacilitatorName, replace(str(?eventFacilitator), \"^.*[/#]\", \"\")), \"\" ); separator=\", \"), \"\") as ?Facilitators) (concat(\"\", group_concat(distinct concat( \"\", replace(str(?eventMoreInfoLink), \"^.*[/#]\", \"\"), \"\" ); separator=\", \"), \"\") as ?More_Info) (?np as ?Source) where { graph npa:graph { ?np npa:hasValidSignatureForPublicKey ?pubkey . ?np dct:created ?npDate . ?np dct:creator ?npCreator . ?np np:hasAssertion ?assertion . ?np npx:introduces ?event . filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKey ?pubkey . } } graph ?assertion { ?event a tpff:3PFF-event . ?event rdfs:label ?eventName . # Date Handling: Check for both predicates optional { ?event dct:date ?dateDct . } optional { ?event schema:startDate ?dateSchema . } bind(coalesce(?dateDct, strBefore(str(?dateSchema), \"T\")) as ?eventDate) bind(replace(str(?eventName), ' ?\\\\|.*$', '') as ?eventShortName) bind(replace(str(?eventName), '^([A-Z0-9]{2,3}).*$', '$1') as ?eventSeries) bind(replace(str(?eventName), '^.*\\\\| ?(.*)$', '$1') as ?eventLongName) optional { ?event tpff:has-event-organizer ?eventOrganizer . optional { service { graph npa:graph { npa:hasCurrentTrustState ?organizerTrustState . } graph ?organizerTrustState { ?eventOrganizer foaf:name ?eventOrganizerName . } } } } optional { ?event tpff:has-event-facilitator ?eventFacilitator . optional { service { graph npa:graph { npa:hasCurrentTrustState ?facilitatorTrustState . } graph ?facilitatorTrustState { ?eventFacilitator foaf:name ?eventFacilitatorName . } } } } optional { ?event rdfs:seeAlso ?eventMoreInfoLink . } } } group by ?event ?eventShortName ?eventLongName ?eventDate ?np order by desc(?eventDate)""" . } sub:provenance { sub:assertion prov:wasAttributedTo orcid:0000-0002-1267-0234; prov:wasDerivedFrom . } sub:pubinfo { this: dct:created "2026-06-02T09:29:47Z"^^xsd:dateTime; dct:creator orcid:0000-0002-1267-0234; dct:license ; npx:embeds sub:get-3pff-events-html; npx:supersedes ; rdfs:label "Get 3PFF Events (HTML)"; nt:wasCreatedFromProvenanceTemplate ; nt:wasCreatedFromPubinfoTemplate , , , ; nt:wasCreatedFromTemplate . sub:sig npx:hasAlgorithm "RSA"; npx:hasPublicKey "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB"; npx:hasSignature "JZGv5Ax1SodrTzPeiIQ18QHTDb6NjzI7xAh9mUYeOnHwFT5bGwjHUo1zwnjpEVJ8C9yifa3as0GIH9FG4v0Ct1YJ2AgZOJf6znApN1V5FhSBqteWbG8CzGbHM+smK55w0a3lf5xoY5HNLongXPyKOhFjZDBgWU4umW6BQtGmPsQ="; npx:hasSignatureTarget this:; npx:signedBy orcid:0000-0002-1267-0234 . }