. . . . "Returns the basic information known about an activity such as a study, as property/value rows: its kind, description, the project it is part of, who conducted it, where to find more information, whether it has been approved, and the source nanopublication it all comes from. Takes the most recent still-current nanopub about the evidence that was published by somebody holding a role in the project its study belongs to. Membership is taken from the validated space-role state (admin, maintainer or member tier) rather than from a fixed list of role predicates, so a nanopub counts whenever its creator holds any member-level role in the space." . . . "Get basic information about an activity" . . "prefix rdf: \nprefix rdfs: \nprefix dct: \nprefix np: \nprefix npa: \nprefix npx: \nprefix gen: \nprefix ff: \nprefix obo: \nprefix prov: \nprefix foaf: \nprefix nt: \n\nselect ?Property_noheader ?Property_label ?Value_multi_val_noheader ?Value_label_multi\n ?np ?target_np ?approve_target\nwhere {\n values ?_activity_multi_iri {}\n {\n select ?np (sample(?npT) as ?npTitle) ?project ?project_label ?description\n (group_concat(distinct str(?kind); separator=\"\\n\") as ?kind_vals)\n (group_concat(distinct ?kindL; separator=\"\\n\") as ?kind_labels)\n (group_concat(distinct str(?agent); separator=\"\\n\") as ?agent_vals)\n (group_concat(distinct ?agentName; separator=\"\\n\") as ?agent_labels)\n (group_concat(distinct str(?link); separator=\"\\n\") as ?link_vals)\n where {\n values ?_activity_multi_iri {}\n # the most recent still-current nanopub about this activity, published by somebody\n # holding a role in the project it belongs to\n {\n select ?np where {\n values ?_activity_multi_iri {}\n graph npa:graph {\n ?np npa:hasValidSignatureForPublicKeyHash ?pk0 ; np:hasAssertion ?a0 ; np:hasPublicationInfo ?pi0 .\n filter not exists { ?inv0 npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pk0 . }\n filter not exists { ?sup0 npx:supersedes ?np . }\n }\n graph ?a0 { ?_activity_multi_iri a obo:OBI_0000066 ; dct:isPartOf ?project0 . }\n service {\n select ?project0 ?member0 where {\n graph npa:graph { npa:hasCurrentSpaceState ?stateG . }\n graph ?stateG {\n ?ri0 a gen:RoleInstantiation ; npa:forSpace ?project0 ; npa:forAgent ?member0 ;\n npa:hasRoleType ?rt0 .\n filter(?rt0 in (gen:AdminRole, gen:MaintainerRole, gen:MemberRole))\n }\n }\n }\n graph ?pi0 { ?np dct:creator ?member0 ; dct:created ?created . }\n } order by desc(?created) limit 1\n }\n graph npa:graph { ?np np:hasAssertion ?a ; np:hasPublicationInfo ?pi ; np:hasProvenance ?prov . }\n optional { graph ?a { ?_activity_multi_iri dct:description ?description } }\n optional {\n graph ?a { ?_activity_multi_iri a ?kind }\n filter(?kind != obo:OBI_0000066)\n optional { graph ?pi { ?kind rdfs:label ?kindL } }\n }\n optional {\n graph ?a { ?_activity_multi_iri dct:isPartOf ?project }\n optional { graph ?pi { ?project nt:hasLabelFromApi ?project_label } }\n }\n optional {\n graph ?a { ?_activity_multi_iri prov:wasAssociatedWith ?agent }\n optional { graph ?pi { ?agent foaf:name ?agentName } }\n }\n optional { graph ?a { ?_activity_multi_iri rdfs:seeAlso ?link } }\n optional { graph ?pi { ?np rdfs:label ?npT } }\n } group by ?np ?project ?project_label ?description\n }\n bind(exists {\n graph npa:graph {\n ?anp npa:hasValidSignatureForPublicKeyHash ?apk ; np:hasAssertion ?aa .\n filter not exists { ?ainv npx:invalidates ?anp ; npa:hasValidSignatureForPublicKeyHash ?apk . }\n filter not exists { ?asup npx:supersedes ?anp . }\n }\n graph ?aa { ?approver npx:approvesOf ?np }\n } as ?isApproved)\n values (?key ?Property_noheader ?Property_label) {\n ('Kind' rdf:type 'Kind:')\n ('Desc' dct:description 'Description:')\n ('Project' dct:isPartOf 'Part of:')\n ('Who' prov:wasAssociatedWith 'Conducted by:')\n ('Link' rdfs:seeAlso 'More information:')\n ('Status' npx:approvesOf 'Status:')\n ('Source' dct:source 'Source:')\n }\n bind(if(?key = 'Kind', ?kind_vals,\n if(?key = 'Desc', str(?description),\n if(?key = 'Project', str(?project),\n if(?key = 'Who', ?agent_vals,\n if(?key = 'Link', ?link_vals,\n if(?key = 'Status', if(?isApproved, \"approved\", \"not approved\"), str(?np))))))) as ?rawVal)\n filter(bound(?rawVal) && ?rawVal != \"\")\n bind(?rawVal as ?Value_multi_val_noheader)\n bind(if(?key = 'Kind', ?kind_labels,\n if(?key = 'Project', coalesce(?project_label, \"\"),\n if(?key = 'Who', ?agent_labels,\n if(?key = 'Source', coalesce(?npTitle, \"\"), \"\")))) as ?Value_label_multi)\n bind(if(?key = 'Source', str(?np), ?nothing) as ?target_np)\n bind(if(?key = 'Status' && !?isApproved, str(?np), \"\") as ?approve_target)\n}\norder by (if(?key = 'Kind', 1, if(?key = 'Desc', 2, if(?key = 'Project', 3, if(?key = 'Who', 4, if(?key = 'Link', 5, if(?key = 'Status', 6, 7)))))))" . . . "2026-08-18T09:49:22Z"^^ . . . . "Get basic information about an activity" . . . . . "RSA" . "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxxo+arlpyxYYoHYYVTNSOWe/es90yVMBA8vaDyaAQk4pnOjTlpPptP5IkGg6zuCRIlm11QrHKkiU536witBT6gdh9kP9ay3S6m7wZ3iM7YcPMfhVHUXN6TBnuiKHHyJdVeK6RxMZlfXRKEz9HYcND+PGCXMVp8BofpKBKke3y4m8FTt+8aMEcgVcFBHFdrkWXoIIvkMlodtXkMgSwuGK8yXt/9lXqChIWpsbzu2juuX6pktMkfexkfQTwIH7oNSr/ma4KzZXERuLrCSO6IH5SfWXwjQUery6rKHiEMyie58mgBf0ssKh+uJoaZOqgbmj0f+EDwTIzq0dNsPA0A+n2QIDAQAB" . "mn5bhdhxBSdKPZ39JmKJzqfTdq9Aud+5HXSxGTJxVwDS1nMC0amh4zcpYvD7HOqVGZlTZKffiN+A9bBEZtU/2Krc/xOkZnOzudQV0RHEIZMa9rpc7UojJPWNJ9xM2Z5hQI7WoJU/kHA4wnUzcLxTyAulHb8SX671JBS2d5GyqrCICGPR9gTFEg50nWdfuxUY63nSv0yqYD9aJUabWuVnd2dkpN3olk0AGkzDh76KhRTZNVJ0ZcmRDfEfJSWhJvQOHssbxUXwHC2bCI0LXf/zzps1Jx6ETft0nro/eVILq2sYngNa+o9Vo6gEyaUSLo4Qk67TDUOBPhO2P0B6JHmSFw==" . . .