[ { "@id": "https://w3id.org/np/RA35FBp7_6xTRnCGw20Y5JXHUp4byjNXzE5zZpPr1dJls/Head", "@graph": [ { "@id": "https://w3id.org/np/RA35FBp7_6xTRnCGw20Y5JXHUp4byjNXzE5zZpPr1dJls", "http://www.nanopub.org/nschema#hasAssertion": [ { "@id": "https://w3id.org/np/RA35FBp7_6xTRnCGw20Y5JXHUp4byjNXzE5zZpPr1dJls/assertion" } ], "http://www.nanopub.org/nschema#hasProvenance": [ { "@id": "https://w3id.org/np/RA35FBp7_6xTRnCGw20Y5JXHUp4byjNXzE5zZpPr1dJls/provenance" } ], "http://www.nanopub.org/nschema#hasPublicationInfo": [ { "@id": "https://w3id.org/np/RA35FBp7_6xTRnCGw20Y5JXHUp4byjNXzE5zZpPr1dJls/pubinfo" } ], "@type": [ "http://www.nanopub.org/nschema#Nanopublication" ] } ] }, { "@id": "https://w3id.org/np/RA35FBp7_6xTRnCGw20Y5JXHUp4byjNXzE5zZpPr1dJls/provenance", "@graph": [ { "@id": "https://w3id.org/np/RA35FBp7_6xTRnCGw20Y5JXHUp4byjNXzE5zZpPr1dJls/assertion", "http://www.w3.org/ns/prov#wasAttributedTo": [ { "@id": "https://orcid.org/0000-0002-1267-0234" } ] } ] }, { "@id": "https://w3id.org/np/RA35FBp7_6xTRnCGw20Y5JXHUp4byjNXzE5zZpPr1dJls/pubinfo", "@graph": [ { "@id": "https://orcid.org/0000-0002-1267-0234", "http://xmlns.com/foaf/0.1/name": [ { "@value": "Tobias Kuhn" } ] }, { "@id": "https://w3id.org/np/RA35FBp7_6xTRnCGw20Y5JXHUp4byjNXzE5zZpPr1dJls", "http://purl.org/dc/terms/created": [ { "@value": "2026-06-23T13:17:12Z", "@type": "http://www.w3.org/2001/XMLSchema#dateTime" } ], "http://purl.org/dc/terms/creator": [ { "@id": "https://orcid.org/0000-0002-1267-0234" } ], "http://purl.org/dc/terms/license": [ { "@id": "https://creativecommons.org/licenses/by/4.0/" } ], "http://purl.org/nanopub/x/introduces": [ { "@id": "https://w3id.org/np/RA35FBp7_6xTRnCGw20Y5JXHUp4byjNXzE5zZpPr1dJls/get-ongoing-and-upcoming-sub-space-projects" } ], "http://purl.org/nanopub/x/supersedes": [ { "@id": "https://w3id.org/np/RAFWyRo5gIBtNjG65gM5_k8TFVR4DhvTDOl_zK_5ePZ-0" } ], "https://w3id.org/np/o/ntemplate/wasCreatedFromProvenanceTemplate": [ { "@id": "https://w3id.org/np/RA7lSq6MuK_TIC6JMSHvLtee3lpLoZDOqLJCLXevnrPoU" } ], "https://w3id.org/np/o/ntemplate/wasCreatedFromPubinfoTemplate": [ { "@id": "https://w3id.org/np/RA0J4vUn_dekg-U1kK3AOEt02p9mT2WO03uGxLDec1jLw" }, { "@id": "https://w3id.org/np/RAukAcWHRDlkqxk7H2XNSegc1WnHI569INvNr-xdptDGI" } ], "https://w3id.org/np/o/ntemplate/wasCreatedFromTemplate": [ { "@id": "https://w3id.org/np/RAEFAt-QcFK0ZhqfvlsmS10BnzGJA0xwOICZXkO-ai87k" } ] }, { "@id": "https://w3id.org/np/RA35FBp7_6xTRnCGw20Y5JXHUp4byjNXzE5zZpPr1dJls/sig", "http://purl.org/nanopub/x/hasAlgorithm": [ { "@value": "RSA" } ], "http://purl.org/nanopub/x/hasPublicKey": [ { "@value": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwUtewGCpT5vIfXYE1bmf/Uqu1ojqnWdYxv+ySO80ul8Gu7m8KoyPAwuvaPj0lvPtHrg000qMmkxzKhYknEjq8v7EerxZNYp5B3/3+5ZpuWOYAs78UnQVjbHSmDdmryr4D4VvvNIiUmd0yxci47dTFUj4DvfHnGd6hVe5+goqdcwIDAQAB" } ], "http://purl.org/nanopub/x/hasSignature": [ { "@value": "EeYoW+hBUEZaH5efjXcgkTMdqAW3IrFnQsKagSgx2DGJk5PgFDKqgM58u0BhMWrAW9AWBg4HvlVmMcIzQ/Y+b4DI9qa43XucuF+ZQj7+chAvoKjIItaPKitTev78wQgQ9Z6i8CctiyQn3nI/d0/mia0bydQhW/cSJU/BR00iZYo=" } ], "http://purl.org/nanopub/x/hasSignatureTarget": [ { "@id": "https://w3id.org/np/RA35FBp7_6xTRnCGw20Y5JXHUp4byjNXzE5zZpPr1dJls" } ], "http://purl.org/nanopub/x/signedBy": [ { "@id": "https://orcid.org/0000-0002-1267-0234" } ] } ] }, { "@id": "https://w3id.org/np/RA35FBp7_6xTRnCGw20Y5JXHUp4byjNXzE5zZpPr1dJls/assertion", "@graph": [ { "@id": "https://w3id.org/np/RA35FBp7_6xTRnCGw20Y5JXHUp4byjNXzE5zZpPr1dJls/get-ongoing-and-upcoming-sub-space-projects", "http://purl.org/dc/terms/description": [ { "@value": "Returns the ongoing and upcoming projects (defined as Spaces) that are sub-spaces of the given space, together with their top-down approved project lead. A project counts as ongoing/upcoming when it has no end date or its end date is today or later." } ], "http://purl.org/dc/terms/license": [ { "@id": "http://www.apache.org/licenses/LICENSE-2.0" } ], "@type": [ "https://w3id.org/kpxl/grlc/grlc-query" ], "http://www.w3.org/2000/01/rdf-schema#label": [ { "@value": "Get ongoing and upcoming sub-space projects" } ], "https://w3id.org/kpxl/grlc/endpoint": [ { "@id": "https://w3id.org/np/l/nanopub-query-1.1/repo/type/8ad572d99071cc1ba0c16e54087b43594bdd9e8b2cfb62d2a0b16945fc49e53c" } ], "https://w3id.org/kpxl/grlc/sparql": [ { "@value": "prefix rdfs: \nprefix dct: \nprefix np: \nprefix npa: \nprefix npx: \nprefix gen: \nprefix schema: \nprefix foaf: \nprefix xsd: \n\nselect distinct ?project ?project_label ?dates ?lead ?lead_label ?description ?np (\"^\" as ?np_label) where {\n graph npa:graph {\n ?np npa:hasValidSignatureForPublicKeyHash ?pubkey .\n filter not exists { ?npx npx:invalidates ?np ; npa:hasValidSignatureForPublicKeyHash ?pubkey . }\n filter not exists { ?np npx:hasNanopubType npx:ExampleNanopub . }\n ?np npx:introduces ?project .\n ?np np:hasAssertion ?a .\n ?np dct:created ?npDate .\n filter not exists {\n ?np2 npx:introduces ?project .\n ?np2 npa:hasValidSignatureForPublicKeyHash ?pubkey2 .\n filter not exists { ?npx2 npx:invalidates ?np2 ; npa:hasValidSignatureForPublicKeyHash ?pubkey2 . }\n ?np2 dct:created ?npDate2 .\n filter(?npDate2 > ?npDate)\n }\n }\n graph ?a {\n ?project a gen:Space .\n ?project a gen:Project .\n ?project rdfs:label ?project_label .\n optional { ?project dct:description ?description . }\n optional { ?project schema:startDate ?datetime . }\n optional { ?project schema:endDate ?endDatetime . }\n }\n service {\n graph npa:graph { npa:thisRepo npa:hasCurrentSpaceState ?stateG . }\n graph ?stateG { ?_resource_iri npa:hasSubSpace ?project . }\n optional {\n graph npa:spacesGraph {\n ?riStem (npa:regularProperty|npa:inverseProperty) gen:hasProjectLead ;\n npa:forSpace ?project ; npa:forAgent ?lead .\n }\n graph ?stateG { ?riFull npa:forSpace ?project ; npa:forAgent ?lead . }\n filter(strstarts(str(?riFull), concat(str(?riStem), \"__\")))\n optional { graph ?stateG { ?lead foaf:name ?lead_label } }\n }\n }\n bind(xsd:date(substr(str(?datetime), 1, 10)) as ?startDate)\n bind(xsd:date(substr(str(?endDatetime), 1, 10)) as ?endDate)\n bind(xsd:date(substr(str(now()), 1, 10)) as ?today)\n filter(!bound(?endDate) || ?endDate >= ?today)\n bind(substr(str(?datetime), 1, 10) as ?startDay)\n bind(if(bound(?endDatetime), substr(str(?endDatetime), 1, 10), ?startDay) as ?endDay)\n bind(if(?startDay = ?endDay, concat(?startDay, \" \", substr(str(?datetime), 12, 5)), concat(?startDay, \" – \", ?endDay)) as ?dates)\n} order by ?startDate" } ] } ] } ]