@prefix this: . @prefix sub: . @prefix np: . @prefix grlc: . @prefix dct: . @prefix nt: . @prefix npx: . @prefix xsd: . @prefix rdfs: . @prefix orcid: . @prefix prov: . @prefix foaf: . sub:Head { this: a np:Nanopublication; np:hasAssertion sub:assertion; np:hasProvenance sub:provenance; np:hasPublicationInfo sub:pubinfo . } sub:assertion { sub:get-workshops-for-conference a grlc:grlc-query; dct:description "Lists the sub-spaces of a given conference Space, one row each, each linked to its own page, with whether it is a Workshop or a Tutorial (conference-ontology), and its day, time and room, ordered by when it starts. Sub-space membership is read from the validated current space state. The descriptive triples come from each sub-space's current defining nanopublication: among the valid (not invalidated, not superseded) nanopublications introducing the sub-space, the most recently created one wins, so an override published by another admin under a different signing key replaces the earlier definition instead of adding a second row. Reads both the http:// and https:// schema.org namespaces. The website column links to the event's schema:url (http or https form) when it has one, labelled with the bare host and path; it is empty otherwise."; dct:license ; rdfs:label "Get workshops and tutorials of a conference"; grlc:endpoint ; grlc:sparql """prefix rdfs: prefix rdf: prefix dct: prefix np: prefix npa: prefix npx: prefix gen: prefix conf: prefix schema: prefix schemanew: prefix foaf: select ?title_iri ?title_iri_label ?kind ?day ?time ?room ?website_iri ?website_iri_label ?np ?np_label (?np as ?override_target) where { { select ?title_iri ?np ?a ?start where { { select ?title_iri ?maxC (max(str(?cnp)) as ?npS) where { { select ?title_iri (max(?created) as ?maxC) where { values ?_space_multi_iri {} graph npa:graph { npa:thisRepo npa:hasCurrentSpaceState ?state } graph ?state { ?title_iri npa:isSubSpaceOf ?_space_multi_iri } graph npa:graph { ?cnp npa:hasValidSignatureForPublicKeyHash ?pubkey ; npx:introduces ?title_iri ; dct:created ?created . filter not exists { ?inv npx:invalidates ?cnp ; npa:hasValidSignatureForPublicKeyHash ?pubkey . } filter not exists { ?newer npx:supersedes ?cnp . } } } group by ?title_iri } graph npa:graph { ?cnp npx:introduces ?title_iri ; dct:created ?maxC . } } group by ?title_iri ?maxC } bind(iri(?npS) as ?np) graph npa:graph { ?np np:hasAssertion ?a . } optional { graph ?a { ?title_iri schema:startDate ?startA . } } optional { graph ?a { ?title_iri schemanew:startDate ?startB . } } bind(coalesce(?startA, ?startB) as ?start) } } graph ?a { ?title_iri rdfs:label ?title_iri_label . } optional { graph ?a { ?title_iri rdf:type ?t . } filter(?t in (conf:Workshop, conf:Tutorial)) } optional { graph ?a { ?title_iri schema:endDate ?endA . } } optional { graph ?a { ?title_iri schemanew:endDate ?endB . } } optional { graph ?a { ?title_iri schema:location ?roomA . } } optional { graph ?a { ?title_iri schemanew:location ?roomB . } } optional { graph ?a { ?title_iri schema:url ?webA . } } optional { graph ?a { ?title_iri schemanew:url ?webB . } } bind(coalesce(?webA, ?webB) as ?website_iri) bind(coalesce(replace(replace(str(?website_iri), \"^https?://\", \"\"), \"/$\", \"\"), \"\") as ?website_iri_label) bind(coalesce(?endA, ?endB) as ?end) bind(coalesce(str(?roomA), str(?roomB), \"\") as ?room) bind(if(bound(?t), replace(str(?t), \"^.*#\", \"\"), \"\") as ?kind) bind(if(bound(?start), substr(str(?start), 1, 10), \"\") as ?day) bind(if(bound(?start), concat(substr(str(?start), 12, 5), if(bound(?end), concat(\"-\", substr(str(?end), 12, 5)), \"\")), \"\") as ?time) bind(\"^\" as ?np_label) } order by ?day ?time ?title_iri_label""" . } sub:provenance { sub:assertion prov:wasAttributedTo orcid:0000-0002-1267-0234 . } sub:pubinfo { orcid:0000-0002-1267-0234 foaf:name "Tobias Kuhn" . this: dct:created "2026-09-14T12:52:37Z"^^xsd:dateTime; dct:creator orcid:0000-0002-1267-0234; dct:license ; npx:embeds sub:get-workshops-for-conference; npx:supersedes ; rdfs:label "Get workshops and tutorials of a conference"; nt:wasCreatedFromProvenanceTemplate ; nt:wasCreatedFromPubinfoTemplate , , , ; nt:wasCreatedFromTemplate . sub:sig npx:hasAlgorithm "RSA"; npx:hasPublicKey "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB"; npx:hasSignature "KOk+O0iY01nxywnoUVI/gku4kAnwO6csh+Szy3gy9Q9DXBtJ8yBmNv/MLkoWCnLhNkiH8diE0FDE0N6kns8WSjHUXWGLjE3bLUjEUv52JE6TiSj09DmiHnl4uqYyorTq0sd83n34oMUe6Kk4V263n/CfzeDFONU+orlifuZZteY="; npx:hasSignatureTarget this:; npx:signedBy orcid:0000-0002-1267-0234 . }