I want to use 2 synonymous IRIs to SPARQL query for same resource (from most recent ontology)
I want to be able to construct SPARQL queries for the latest version of my ontology (example.org/myontology/) I want each resource to be reachable in 2 synonymous ways:
- versionIRI#MyClassIRI, eg. example.org/myontology/v04/MyClass123
- ontologyIRI#MyClass123, eg. example.org/myontology/MyClass123 (the "unversioned" version)
So
SELECT * {example.org/myontology/**v04**/MyClass123 ?p ?o}
and
SELECT * {example.org/myontology/MyClass123 ?p ?o}
yield the same result.
I am aware that I could use
SELECT GRAPH /0.4 SELECT * {example.org/myontology/MyClass123 ?p ?o} to reach the specific file, I do not want to do that.
I want to be able to SPARQL query for retired ontologies' concepts
For retired versions, that for code stability reasons need to have unchanging unversioned IRI, I want the same class to only be reachable by the versionIRI, so:
- versionIRI#MyClassIRI, eg. example.org/myontology/v03/MyClass123
SELECT * {example.org/myontology/**v03**/MyClass123 ?p ?o}
Other resources
It is clear from w3c documentation how to version entire ontologies/graphs. Each ontology must have a versionIRI, and they may have an ontologyIRI. It is not clear if there is a non-external (eg not a html solution) inside the rdf file itself to make sure that both the versionIRI (eg example.org/myontology/v04/MyClass123) and the unversioned ontologyIRI (eg. example.org/myontology/v03/MyClass123)
In dereferencing, ontologies like FIBO (example html creates a dereferencable version-specific URL (.../ontology/master/2023Q2/BE/... in the version above) for past versions, but I have not been able to find old versions of FIBO to test if the versioned IRI for a particular resource still works in a sparql query.