. . . . "Returns a summary of 3PFF event participation for a given user, with the number of events per role." . . . "Get 3PFF participation summary for user" . . "prefix np: \nprefix npa: \nprefix npx: \nprefix dct: \nprefix tpff: \n\nselect ?role ?role_label (count(distinct ?event) as ?event_count) 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 npa:hasValidSignatureForPublicKeyHash ?pk .\n filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pk . }\n ?np np:hasAssertion ?a .\n }\n graph ?a {\n ?_user_iri ?role ?event .\n }\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 a tpff:3PFF-event .\n }\n}\ngroup by ?role ?role_label\nhaving(count(distinct ?event) > 0)\norder by desc(?event_count)" . . "Tobias Kuhn" . "2026-03-26T11:53:07Z"^^ . . . . "Get 3PFF participation summary for user" . . . . . "RSA" . "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB" . "FRWWY0jZmOHNCMymO8T64UxpuXcnj12CF4oGDO0WQPDOIPO9IzZQ6HbVI5wxGq6w0L9t2LfigySx0x1xF0YHRq39OQBH2HcTqEv1b0jBz9urKraF+vnG0xuyW++9DoeJmXECjdZnovUbSZvUfsuBBT+sKKfU6Fg7B1dOj9VC3Vs=" . . .