. . . . "Returns all 3PFF events for a given user, including the role they had in each event." . . . "Get 3PFF events for user" . . "prefix rdfs: \nprefix np: \nprefix npa: \nprefix npx: \nprefix dct: \nprefix tpff: \nprefix schema: \n\nselect ?event ?event_label (sample(?ev_name) as ?event_name) (sample(?ev_date) as ?event_date) ?roles_multi_iri ?roles_label_multi ?nps_multi_iri ?nps_label_multi where {\n {\n select ?event (replace(str(?event), \"^.*/\", \"\") as ?event_label) (group_concat(str(?role); separator=\" \") as ?roles_multi_iri) (group_concat(?role_label; separator=\"\\n\") as ?roles_label_multi) (group_concat(str(?latest_np); separator=\" \") as ?nps_multi_iri) (group_concat(\"^\"; separator=\"\\n\") as ?nps_label_multi) where {\n {\n select ?event ?role ?role_label (sample(?np) as ?latest_np) where {\n values (?role ?role_label) {\n (tpff:participatedAsParticipantIn \"Participant\")\n (tpff:participatedAsFacilitatorIn \"Facilitator\")\n (tpff:participatedAsTrainerIn \"Trainer\")\n (tpff:participatedAsFacilitatorAssistantIn \"Facilitator Assistant\")\n (tpff:participatedAsTrainerAssistantIn \"Trainer Assistant\")\n (tpff:participatedAsImplementerIn \"Implementer\")\n (tpff:participatedAsImplementerAspirantIn \"Implementer Aspirant\")\n }\n graph npa:graph {\n ?np npx:hasNanopubType ?role .\n ?np dct:creator ?_user_iri .\n ?np npa:hasValidSignatureForPublicKeyHash ?pk .\n filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pk . }\n ?np np:hasAssertion ?a .\n ?np dct:created ?date .\n }\n graph ?a {\n ?_user_iri ?role ?event .\n }\n filter not exists {\n graph npa:graph {\n ?np2 npx:hasNanopubType ?role .\n ?np2 dct:creator ?_user_iri .\n ?np2 npa:hasValidSignatureForPublicKeyHash ?pk2 .\n filter not exists { ?npx2 npx:invalidates ?np2 ; npa:hasValidSignatureForPublicKeyHash ?pk2 . }\n ?np2 np:hasAssertion ?a2 .\n ?np2 dct:created ?date2 .\n filter(?date2 > ?date)\n }\n graph ?a2 {\n ?_user_iri ?role ?event .\n }\n }\n }\n group by ?event ?role ?role_label\n }\n }\n group by ?event\n }\n optional {\n graph npa:graph {\n ?enp npx:introduces ?event .\n ?enp npa:hasValidSignatureForPublicKeyHash ?epk .\n filter not exists { ?enpx npx:invalidates ?enp ; npa:hasValidSignatureForPublicKeyHash ?epk . }\n ?enp np:hasAssertion ?ea .\n }\n graph ?ea {\n ?event rdfs:label ?ename .\n optional { ?event dct:date ?dateDct . }\n optional { ?event schema:startDate ?dateSchema . }\n }\n }\n bind(coalesce(?dateDct, strBefore(str(?dateSchema), \"T\")) as ?ev_date)\n bind(replace(?ename, \"^[^|]*\\\\| ?\", \"\") as ?ev_name)\n}\ngroup by ?event ?event_label ?roles_multi_iri ?roles_label_multi ?nps_multi_iri ?nps_label_multi\norder by desc(sample(?ev_date))" . . "Tobias Kuhn" . "2026-03-26T08:59:34Z"^^ . . . . "Get 3PFF events for user" . . . . . "RSA" . "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB" . "MJHJ2bkyriyEbKkZb1LBB+Pyxi5fFP5kL+WPwi3LMRhbs2FhQPmYKtfltZ/uPffU21n5oxjF2gOQPnx0grurmTkdtsLt3xTzkO22FEeAGnu8S89FM3a74pbKw6W4DbeSus7Z34Y5Rl0iALP9hMUQiHhDiSaHEmW27klv+mVpXi0=" . . .