I was trying to use Analytical methods for geochemistry within Protege but it could not open the vocabulary due to an error [1]*, which was summed up as Ontology already exists. OntologyID(OntologyIRI(<http://www.w3.org/2004/02/skos/core>) VersionIRI(<null>)) Apparently, the vocabulary tries to import skos and also contains skos axioms itself. It could not be loaded with Protege.
To proceed, I downloaded the file and removed the import statement in the local copy. Protege was able to load the remaining statements, but then there is an inconsistency in the skos axioms which seems to result from defining skos:inScheme as a subproperty of skos:member in the skos axioms that are hardcoded into the file. These skos data hardcoded into the file also differ from the data loaded from the SKOS namespace by the import statement. Seems like this was not intended.
Also, I saw that the metadata get mixed up in the "active ontology tab" of Protege, when two items declare to be an owl:Ontology. This is a bit confusing.
All of these three things can be resolved by getting all skos statements with owl:imports instead of hardcoding these axioms into the Analytical methods for geochemistry vocabulary, I'd say.
We would very much appreciate if you could look into this and hopefully fix it here at the source.
Thank you and all the best
Susanne
[1]
I had to shorten the error message, otherwise I could not save this issue.
2024-10-07 10:00:47.464 [AWT-EventQueue-0] INFO OWLModelManagerImpl ------------------------------- Loading Ontology -------------------------------
2024-10-07 10:00:47.464 [AWT-EventQueue-0] INFO OWLModelManagerImpl Loading ontology from https://raw.githubusercontent.com/amds-ldeo/Vocabulary/refs/heads/master/geochemistry/GeochemAnalyticalMethod.ttl
2024-10-07 10:00:50.825 [pool-5-thread-1] INFO OntologyLoader Finished loading imported ontology at http://www.w3.org/2004/02/skos/core
2024-10-07 10:00:50.861 [pool-5-thread-1] ERROR OWLOntologyManagerImpl OWLOntologyManagerImpl.checkForOntologyIDChange() existing:Ontology(OntologyID(OntologyIRI(<http://www.w3.org/2004/02/skos/core>) VersionIRI(<null>))) [Axioms: 205 Logical Axioms: 42] First 20 axioms: { Functional: memberList OrderedCollection SubClassOf Collection member Domain Collection topConceptOf Domain Concept hasTopConcept Domain ConceptScheme memberList Domain OrderedCollection semanticRelation Domain Concept example SubPropertyOf: note historyNote SubPropertyOf: note scopeNote SubPropertyOf: note prefLabel SubPropertyOf: label editorialNote SubPropertyOf: note hiddenLabel SubPropertyOf: label definition SubPropertyOf: note changeNote SubPropertyOf: note altLabel SubPropertyOf: label <http://www.w3.org/2004/02/skos/core#scopeNote> definition "A note that helps to clarify the meaning and/or the use of a concept."@en <http://www.w3.org/2004/02/skos/core#narrower> isDefinedBy <http://www.w3.org/2004/02/skos/core> <http://www.w3.org/2004/02/skos/core#narrowerTransitive> label "has narrower transitive"@en <http://www.w3.org/2004/02/skos/core#note> label "note"@en}
2024-10-07 10:00:50.863 [pool-5-thread-1] ERROR OWLOntologyManagerImpl OWLOntologyManagerImpl.checkForOntologyIDChange() new:Ontology(OntologyID(Anonymous-20)) [Axioms: 3787 Logical Axioms: 1218] First 20 axioms: {tableOfContents SubPropertyOf: description creator SubPropertyOf: contributor created SubPropertyOf: date altLabel SubPropertyOf: label conformsTo SubPropertyOf: relation isVersionOf SubPropertyOf: relation spatial SubPropertyOf: coverage language SubPropertyOf: language subject SubPropertyOf: subject format SubPropertyOf: format date SubPropertyOf: date valid SubPropertyOf: date prefLabel SubPropertyOf: label isPartOf SubPropertyOf: relation hasVersion SubPropertyOf: relation abstract SubPropertyOf: description creator SubPropertyOf: creator medium SubPropertyOf: format spatial SubPropertyOf: coverage references SubPropertyOf: relation}
2024-10-07 10:00:50.865 [pool-5-thread-1] ERROR OWLOntologyManagerImpl OWLOntologyManagerImpl.checkForOntologyIDChange() only in existing:[]
2024-10-07 10:00:50.865 [pool-5-thread-1] ERROR OWLOntologyManagerImpl OWLOntologyManagerImpl.checkForOntologyIDChange() only in new:[inScheme SubPropertyOf: member, modified SubPropertyOf: date, available SubPropertyOf: date, alternative SubPropertyOf: title, dateCopyrighted SubPropertyOf: date, dateAccepted SubPropertyOf: date, created SubPropertyOf: date, valid SubPropertyOf: date, bibliographicCitation SubPropertyOf: identifier, dateSubmitted SubPropertyOf: date, issued SubPropertyOf: date, identifier Range: Literal, created Range: Literal, dateSubmitted Range: Literal, alternative Range: Literal, dateCopyrighted Range: Literal, available Range: Literal, valid Range: Literal, date Range: Literal, dateAccepted Range: Literal, modified Range: Literal, bibliographicCitation Range: Literal, issued Range: Literal, title Range: Literal, FileFormat SubClassOf MediaType, MediaType SubClassOf MediaTypeOrExtent, Location SubClassOf LocationPeriodOrJurisdiction, PeriodOfTime SubClassOf LocationPeriodOrJurisdiction, SizeOrDuration SubClassOf MediaTypeOrExtent, Collection SubClassOf Thing, ConceptScheme SubClassOf Thing, Jurisdiction SubClassOf LocationPeriodOrJurisdiction, LicenseDocument SubClassOf RightsStatement, Concept SubClassOf Thing, AgentClass SubClassOf Class, PhysicalMedium SubClassOf MediaType, DCMIType issued "2000-07-11"^^date, infraredabsorptionspectrometry notation "IR-A-S", nuclearmicroprobeanalysis notation "SPM", isRequiredBy issued "2000-07-11"^^date, laserabsorptionspectrometry notation "L-A-S", identifier issued "2008-01-14"^^date, cavityringdownspectrometry notation "CRD-S", ...]
2024-10-07 10:00:50.869 [pool-5-thread-1] INFO OntologyLoader Finished loading https://raw.githubusercontent.com/amds-ldeo/Vocabulary/refs/heads/master/geochemistry/GeochemAnalyticalMethod.ttl
2024-10-07 10:00:50.881 [AWT-EventQueue-0] WARN OntologyLoadErrorHandlerUI Ontology already exists. OntologyID(OntologyIRI(<http://www.w3.org/2004/02/skos/core>) VersionIRI(<null>))
org.semanticweb.owlapi.model.OWLOntologyAlreadyExistsException: Ontology already exists. OntologyID(OntologyIRI(<http://www.w3.org/2004/02/skos/core>) VersionIRI(<null>))
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:1253) ~[na:na]
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:1200) ~[na:na]
at org.protege.editor.owl.model.io.OntologyLoader.loadOntologyInternal(OntologyLoader.java:116) ~[na:na]
at org.protege.editor.owl.model.io.OntologyLoader.lambda$loadOntologyInOtherThread$0(OntologyLoader.java:71) ~[na:na]
at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:na]
at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]
Caused by: org.semanticweb.owlapi.model.OWLOntologyRenameException: Could not rename ontology. An ontology with this ID already exists: OntologyID(OntologyIRI(<http://www.w3.org/2004/02/skos/core>) VersionIRI(<null>)) change: SetOntologyIDData(OntologyID(OntologyIRI(<http://www.w3.org/2004/02/skos/core>) VersionIRI(<null>)))
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.checkForOntologyIDChange(OWLOntologyManagerImpl.java:882) ~[na:na]
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.enactChangeApplication(OWLOntologyManagerImpl.java:642) ~[na:na]
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.applyChanges(OWLOntologyManagerImpl.java:670) ~[na:na]
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.applyChange(OWLOntologyManagerImpl.java:820) ~[na:na]
at org.semanticweb.owlapi.rdf.rdfxml.parser.OWLRDFConsumer.applyChange(OWLRDFConsumer.java:733) ~[na:na]
at org.semanticweb.owlapi.rdf.rdfxml.parser.OWLRDFConsumer.chooseAndSetOntologyIRI(OWLRDFConsumer.java:1492) ~[na:na]
at org.semanticweb.owlapi.rdf.rdfxml.parser.OWLRDFConsumer.endModel(OWLRDFConsumer.java:1393) ~[na:na]
at org.semanticweb.owlapi.rio.RioOWLRDFConsumerAdapter.endRDF(RioOWLRDFConsumerAdapter.java:78) ~[na:na]
at org.semanticweb.owlapi.rio.RioParserImpl$RioParserRDFHandler.endRDF(RioParserImpl.java:300) ~[na:na]
at org.eclipse.rdf4j.rio.turtle.TurtleParser.parse(TurtleParser.java:170) ~[na:na]
at org.eclipse.rdf4j.rio.turtle.TurtleParser.parse(TurtleParser.java:125) ~[na:na]
at org.semanticweb.owlapi.rio.RioParserImpl.parseDocumentSource(RioParserImpl.java:245) ~[na:na]
at org.semanticweb.owlapi.rio.RioParserImpl.parse(RioParserImpl.java:185) ~[na:na]
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyFactoryImpl.loadOWLOntology(OWLOntologyFactoryImpl.java:220) ~[na:na]
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.actualParse(OWLOntologyManagerImpl.java:1303) ~[na:na]
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:1243) ~[na:na]
... 7 common frames omitted
Thanks for the alert. I've removed the SKOS definitions from the ttl file, and it opens in protege for me here. Its updated in ARDC RVA and in the github. Hopefully that fixes the problem.
Hi everyone,
I was trying to use Analytical methods for geochemistry within Protege but it could not open the vocabulary due to an error [1]*, which was summed up as
Ontology already exists. OntologyID(OntologyIRI(<http://www.w3.org/2004/02/skos/core>) VersionIRI(<null>))
Apparently, the vocabulary tries to import skos and also contains skos axioms itself. It could not be loaded with Protege.To proceed, I downloaded the file and removed the import statement in the local copy. Protege was able to load the remaining statements, but then there is an inconsistency in the skos axioms which seems to result from defining skos:inScheme as a subproperty of skos:member in the skos axioms that are hardcoded into the file. These skos data hardcoded into the file also differ from the data loaded from the SKOS namespace by the import statement. Seems like this was not intended.
Also, I saw that the metadata get mixed up in the "active ontology tab" of Protege, when two items declare to be an owl:Ontology. This is a bit confusing.
All of these three things can be resolved by getting all skos statements with owl:imports instead of hardcoding these axioms into the Analytical methods for geochemistry vocabulary, I'd say.
We would very much appreciate if you could look into this and hopefully fix it here at the source.
Thank you and all the best
Susanne
[1]