sub = sourceOnt.getOntologyID().getOntologyIRI();
+
+ if(!sub.isPresent()){
+ return;
+ }
+
+ IRI ontologyIRI = sub.get();
+
+ // Get imports and add them as omv:useImports
+ OWLAnnotationProperty useImportProp = fact.getOWLAnnotationProperty(IRI.create(USE_IMPORTS_IRI));
+ for (OWLOntology imported : sourceOnt.getImports()) {
+ if (!imported.getOntologyID().isAnonymous()) {
+ log.info("useImports: " + imported.getOntologyID().getOntologyIRI().get());
+ OWLAnnotationAssertionAxiom useImportAxiom = fact.getOWLAnnotationAssertionAxiom(useImportProp, ontologyIRI, imported.getOntologyID().getOntologyIRI().get());
+ this.targetOwlManager.addAxiom(targetOwlOntology, useImportAxiom);
+ }
+ }
+ }
+
/**
* Copies ontology-level annotation axioms from the source ontology to the target ontology.
*
@@ -188,6 +216,7 @@ private void addGroundMetadata(IRI documentIRI, OWLDataFactory factory, OWLOntol
}
for (OWLAnnotation annotation : sourceOntology.getAnnotations()) {
+
IRI subjectIRI = ontologyID.getOntologyIRI().get();
OWLAnnotationProperty annotationProperty = annotation.getProperty();
OWLAnnotationValue annotationValue = annotation.getValue();
@@ -212,6 +241,7 @@ private boolean buildOWLOntology(OWLOntology masterOntology, boolean isOBO) {
try {
targetOwlOntology = targetOwlManager.createOntology();
addOntologyIRI(masterOntology);
+ addOntologyImports(fact, masterOntology);
} catch (OWLOntologyCreationException e) {
log.error(e.getMessage());
parserLog.addError(ParserError.OWL_CREATE_ONTOLOGY_EXCEPTION, "Error buildOWLOntology" + e.getMessage());
@@ -232,51 +262,52 @@ private boolean buildOWLOntology(OWLOntology masterOntology, boolean isOBO) {
boolean isPrefixedOWL = sourceOwlManager.getOntologyFormat(sourceOnt).isPrefixOWLOntologyFormat();
log.info("isPrefixOWLOntologyFormat: {}", isPrefixedOWL);
- if (isPrefixedOWL == true && !isOBO) {
+ if (isPrefixedOWL && !isOBO) {
generateSKOSInOwl(allAxioms, fact, sourceOnt);
}
}
- targetOwlManager.addAxioms(targetOwlOntology, allAxioms);
- for (OWLAnnotation ann : targetOwlOntology.getAnnotations()) {
+
+ targetOwlManager.addAxioms(targetOwlOntology, allAxioms);
+ for (OWLAnnotation ann : targetOwlOntology.getAnnotations()) {
+ AddOntologyAnnotation addAnn = new AddOntologyAnnotation(targetOwlOntology, ann);
+ targetOwlManager.applyChange(addAnn);
+ }
+
+ if (isOBO) {
+ String oboVersion = parserInvocation.getOBOVersion();
+ if (oboVersion != null) {
+ log.info("Adding version: {}", oboVersion);
+ OWLAnnotationProperty prop = fact.getOWLAnnotationProperty(IRI.create(OWLRDFVocabulary.OWL_VERSION_INFO.toString()));
+ IRI versionSubjectIRI = IRI.create(VERSION_SUBJECT);
+ OWLAnnotationAssertionAxiom annVersion = fact.getOWLAnnotationAssertionAxiom(prop, versionSubjectIRI, fact.getOWLLiteral(oboVersion));
+ targetOwlManager.addAxiom(targetOwlOntology, annVersion);
+ }
+ }
+
+ addOntologyAnnotations(masterOntology);
+ escapeXMLLiterals(targetOwlOntology);
+
+ OWLReasonerFactory reasonerFactory = new StructuralReasonerFactory();
+ OWLReasoner reasoner = reasonerFactory.createReasoner(targetOwlOntology);
+ InferredSubClassAxiomGenerator isc = new InferredSubClassAxiomGenerator();
+ Set subAxs = isc.createAxioms(targetOwlOntology.getOWLOntologyManager().getOWLDataFactory(), reasoner);
+ targetOwlManager.addAxioms(targetOwlOntology, subAxs);
+ deprecateBranch();
+
+ log.info("isOBO: {}", isOBO);
+ if (isOBO) {
+ replicateHierarchyAsTreeview(fact);
+ }
+ return true;
+ }
+
+ private void addOntologyAnnotations(OWLOntology masterOntology){
+ for (OWLAnnotation ann : masterOntology.getAnnotations()) {
AddOntologyAnnotation addAnn = new AddOntologyAnnotation(targetOwlOntology, ann);
targetOwlManager.applyChange(addAnn);
}
-
- if (isOBO) {
- String oboVersion = parserInvocation.getOBOVersion();
- if (oboVersion != null) {
- log.info("Adding version: {}", oboVersion);
- OWLAnnotationProperty prop = fact.getOWLAnnotationProperty(IRI.create(OWLRDFVocabulary.OWL_VERSION_INFO.toString()));
- IRI versionSubjectIRI = IRI.create(VERSION_SUBJECT);
- OWLAnnotationAssertionAxiom annVersion = fact.getOWLAnnotationAssertionAxiom(prop, versionSubjectIRI, fact.getOWLLiteral(oboVersion));
- targetOwlManager.addAxiom(targetOwlOntology, annVersion);
- }
- }
-
- for (OWLOntology sourceOnt : sourceOwlManager.getOntologies()) {
- for (OWLAnnotation ann : sourceOnt.getAnnotations()) {
- AddOntologyAnnotation addAnn = new AddOntologyAnnotation(targetOwlOntology, ann);
- targetOwlManager.applyChange(addAnn);
- }
- }
-
- escapeXMLLiterals(targetOwlOntology);
-
- OWLReasonerFactory reasonerFactory = new StructuralReasonerFactory();
- OWLReasoner reasoner = reasonerFactory.createReasoner(targetOwlOntology);
- InferredSubClassAxiomGenerator isc = new InferredSubClassAxiomGenerator();
- Set subAxs = isc.createAxioms(targetOwlOntology.getOWLOntologyManager().getOWLDataFactory(), reasoner);
- targetOwlManager.addAxioms(targetOwlOntology, subAxs);
- deprecateBranch();
-
- log.info("isOBO: {}", isOBO);
- if (isOBO) {
- replicateHierarchyAsTreeview(fact);
- }
- return true;
}
-
private void replicateHierarchyAsTreeview(OWLDataFactory fact) {
Set treeViewAxs = new HashSet();
for (OWLAxiom axiom : targetOwlOntology.getAxioms()) {
@@ -449,7 +480,7 @@ private void escapeXMLLiterals(OWLOntology target) {
targetOwlManager.addAxiom(target, annAsse);
Set del = new HashSet();
del.add(ann);
- targetOwlManager.removeAxioms(target,del);
+ targetOwlManager.removeAxioms(target,del);
}
}
}
diff --git a/src/main/java/org/stanford/ncbo/owlapi/wrapper/preferred_labels/PreferredLabels.java b/src/main/java/org/stanford/ncbo/owlapi/wrapper/preferred_labels/PreferredLabels.java
new file mode 100644
index 0000000..e723858
--- /dev/null
+++ b/src/main/java/org/stanford/ncbo/owlapi/wrapper/preferred_labels/PreferredLabels.java
@@ -0,0 +1,20 @@
+package org.stanford.ncbo.owlapi.wrapper.preferred_labels;
+
+import org.semanticweb.owlapi.model.OWLOntology;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.stanford.ncbo.owlapi.wrapper.ParserInvocation;
+import org.stanford.ncbo.owlapi.wrapper.metrics.OntologyMetrics;
+
+public class PreferredLabels {
+ private static final Logger logger = LoggerFactory.getLogger(OntologyMetrics.class);
+
+ private OWLOntology ontology;
+
+ private ParserInvocation parserInvocation;
+
+ public PreferredLabels(OWLOntology ontology, ParserInvocation parserInvocation) {
+ this.ontology = ontology;
+ this.parserInvocation = parserInvocation;
+ }
+}
diff --git a/src/test/java/org/stanford/ncbo/owlapi/wrapper/OntologyParserTest.java b/src/test/java/org/stanford/ncbo/owlapi/wrapper/OntologyParserTest.java
index 12d4699..e311ed1 100644
--- a/src/test/java/org/stanford/ncbo/owlapi/wrapper/OntologyParserTest.java
+++ b/src/test/java/org/stanford/ncbo/owlapi/wrapper/OntologyParserTest.java
@@ -18,6 +18,19 @@ public class OntologyParserTest {
public void setUp() throws Exception {
}
+
+ // Run this test: mvn -Dtest=OntologyParserTest#sifrTestParse test
+ // parse_OntologyENVO_ReturnsTrue fonctionne pour comparer
+ @Test
+ public void sifrTestParse() throws Exception {
+ ParserInvocation pi = new ParserInvocation("./src/test/resources/repo/input/sifr",
+ "./src/test/resources/repo/output/sifr", "foodon.owl", true);
+ // SKOS: anaee-france-thesaurus.rdf
+ // OWL: AnimalDiseasesOntology.owl.xml
+ OntologyParser parser = new OntologyParser(pi);
+ parser.parse();
+ //assertFalse(parser.parse());
+ }
@Test
public void getLocalOntologies_MultipleOntologies_Found() throws Exception {
@@ -165,6 +178,25 @@ public void parse_ImportSKOSCoreVocab_ShouldLoad() throws Exception {
OWLClass skosConceptClass = factory.getOWLClass(skosConceptIRI);
assertNotNull(skosConceptClass);
}
+ @Test
+ public void parse_OntologyAnnotationCount_ReturnsTrue() throws Exception {
+ String outputRepositoryFolder = "./src/test/resources/repo/output/cno";
+ ParserInvocation pi = new ParserInvocation("./src/test/resources/repo/input/cno",
+ outputRepositoryFolder, "cnov0_5.owl", true);
+ assertTrue(pi.valid());
+
+ OntologyParser parser = new OntologyParser(pi);
+ assertTrue(parser.parse());
+ assertEquals(1, parser.getLocalOntologies().size());
+
+ OWLOntology targetOwlOntology = parser.getTargetOwlOntology();
+ OWLOntology sourceOntology = parser.getParsedOntologies().stream().findFirst().orElse(null);
+
+ assertNotNull(sourceOntology);
+ assertEquals(sourceOntology.getAnnotations().size(), targetOwlOntology.getAnnotations().size());
+
+ }
+
@After
public void tearDown() throws Exception {
diff --git a/src/test/resources/repo/input/afo/afo.ttl b/src/test/resources/repo/input/afo/afo.ttl
new file mode 100644
index 0000000..d9771d8
--- /dev/null
+++ b/src/test/resources/repo/input/afo/afo.ttl
@@ -0,0 +1,59616 @@
+@prefix : .
+@prefix m: .
+@prefix cl: .
+@prefix co: .
+@prefix ex: .
+@prefix go: .
+@prefix qb: .
+@prefix ro: .
+@prefix uo: .
+@prefix bfo: .
+@prefix dct: .
+@prefix hdf: .
+@prefix iao: .
+@prefix ldp: .
+@prefix map: .
+@prefix mop: .
+@prefix obi: .
+@prefix ops: .
+@prefix ore: .
+@prefix org: .
+@prefix owl: .
+@prefix pav: .
+@prefix rdf: .
+@prefix xml: .
+@prefix xsd: .
+@prefix af-c: .
+@prefix af-e: .
+@prefix af-m: .
+@prefix af-p: .
+@prefix af-q: .
+@prefix af-r: .
+@prefix af-x: .
+@prefix caro: .
+@prefix chmo: .
+@prefix envo: .
+@prefix foaf: .
+@prefix ncbi: .
+@prefix omcd: .
+@prefix pato: .
+@prefix prov: .
+@prefix qudt: .
+@prefix rdfs: .
+@prefix skos: .
+@prefix time: .
+@prefix void: .
+@prefix af-cq: .
+@prefix af-fn: .
+@prefix af-re: .
+@prefix af-rl: .
+@prefix af-sp: .
+@prefix afs-c: .
+@prefix afs-q: .
+@prefix chebi: .
+@prefix shacl: .
+@prefix vcard: .
+@prefix adf-dc: .
+@prefix adf-dp: .
+@prefix af-cur: .
+@prefix af-gaz: .
+@prefix af-map: .
+@prefix afs-dc: .
+@prefix afs-hr: .
+@prefix dctype: .
+@prefix premis: .
+@prefix uberon: .
+@prefix af-math: .
+@prefix qudt-ext: .
+@prefix unit-ext: .
+@prefix qudt-unit: .
+@prefix adf-dc-hdf: .
+@prefix quantity-ext: .
+@base .
+
+ rdf:type owl:Ontology ;
+
+ owl:versionIRI ;
+
+ prov:wasDerivedFrom ;
+
+ dct:title "Allotrope Foundation Ontology MERGED (REC/2021/03)" ;
+
+ dct:rights ;
+
+ prov:wasDerivedFrom ,
+ ,
+ ,
+ ,
+ ;
+
+ dct:rights ;
+
+ prov:wasDerivedFrom ,
+ ,
+ ,
+ ,
+ ,
+ ;
+
+ dct:issued "2021-03-30T12:00:00Z"^^xsd:dateTime ;
+
+ prov:wasDerivedFrom ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ;
+
+ dct:contributor ;
+
+ prov:wasDerivedFrom ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ;
+
+ dct:publisher ;
+
+ prov:wasDerivedFrom ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ;
+
+ owl:versionInfo "REC/2021/03" ;
+
+ prov:wasDerivedFrom ,
+ ,
+ ,
+ ,
+ ;
+
+ dct:license ;
+
+ prov:wasDerivedFrom ,
+ ,
+ ,
+ ,
+ ,
+ .
+
+
+#################################################################
+#
+# Annotation properties
+#
+#################################################################
+
+
+### http://purl.allotrope.org/ontologies/property#AFX_0001144
+
+af-x:AFX_0001144 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ skos:altLabel "has predicate" ;
+
+ skos:definition "A reference to an object or datatype property. [Allotrope]" ;
+
+ skos:prefLabel "has property" .
+
+
+
+### http://purl.allotrope.org/ontologies/property#AFX_0001166
+
+af-x:AFX_0001166 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ skos:definition "A relation to a class of individuals. [Allotrope]" ;
+
+ skos:prefLabel "has class" ;
+
+ rdfs:range rdfs:Class .
+
+
+
+### http://purl.allotrope.org/ontologies/property#AFX_0002794
+
+af-x:AFX_0002794 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ skos:definition "Property is a note about a proposed logical expression in order to describe the term as defined class. [Allotrope]" ;
+
+ skos:prefLabel "is equivalent to" ;
+
+ rdfs:subPropertyOf skos:note .
+
+
+
+### http://purl.allotrope.org/ontologies/property#AFX_0002795
+
+af-x:AFX_0002795 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ skos:definition "Property is a note about a proposed expression of a restriction that the term should be a subclass of. [Allotrope]" ;
+
+ skos:prefLabel "has proposed restriction" ;
+
+ rdfs:subPropertyOf skos:note .
+
+
+
+### http://purl.allotrope.org/ontologies/property#AFX_0002796
+
+af-x:AFX_0002796 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ skos:definition "Property specifies level of granularity the term mainly belongs to. [Allotrope]" ;
+
+ skos:prefLabel "has granularity" ;
+
+ rdfs:subPropertyOf skos:note ;
+
+ rdfs:range af-r:AFR_0001221 .
+
+
+
+### http://purl.allotrope.org/ontologies/property#AFX_0002797
+
+af-x:AFX_0002797 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ skos:definition "Property tracks terms that have been aligned with BFO during development. [Allotrope]" ;
+
+ skos:prefLabel "is aligned with BFO" ;
+
+ rdfs:subPropertyOf skos:editorialNote .
+
+
+
+### http://purl.allotrope.org/ontologies/property#AFX_0002798
+
+af-x:AFX_0002798 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ skos:definition "Is defined class flags a resource as being a class that can be defined by necessary and sufficient conditions. [Allotrope]" ;
+
+ skos:prefLabel "is defined class" ;
+
+ rdfs:subPropertyOf skos:note .
+
+
+
+### http://purl.allotrope.org/ontologies/property#AFX_0002799
+
+af-x:AFX_0002799 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ skos:definition "An annotation predicate used to identify entity replacement by a role. [Allotrope]" ;
+
+ skos:prefLabel "is replaced by role" ;
+
+ rdfs:subPropertyOf skos:note .
+
+
+
+### http://purl.allotrope.org/ontologies/property#AFX_0002808
+
+af-x:AFX_0002808 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ skos:definition "Has close match establishes a connection between two resources that have a high degree of agreement in meaning such that they can be used interchangeably. [Allotrope]" ;
+
+ skos:note "Property is related to skos:closeMatch. Skos:closeMatch is an object property whereas this property is an annotation property to allow for weak semantic coupling. [Allotrope]" ;
+
+ skos:prefLabel "has close match" ;
+
+ rdfs:subPropertyOf skos:note .
+
+
+
+### http://purl.allotrope.org/ontologies/property#AFX_0002809
+
+af-x:AFX_0002809 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ skos:definition "Has exact match establishes a connection between two resources that have completely same meaning such that they can be used interchangeably. [Allotrope]" ;
+
+ skos:note "Property is related to skos:exactMatch. Skos:exactMatch is an object property whereas this property is an annotation property to allow for weak semantic coupling. [Allotrope]" ;
+
+ skos:prefLabel "has exact match" ;
+
+ rdfs:subPropertyOf af-x:AFX_0002808 .
+
+
+
+### http://purl.allotrope.org/ontologies/property#AFX_0002811
+
+af-x:AFX_0002811 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ skos:definition "Has related establishes a connection between two resources that have an associative relationship. [Allotrope]" ;
+
+ skos:note "Property is related to skos:related. Skos:related is an object property whereas this property is an annotation property to allow for weak semantic coupling. [Allotrope]" ;
+
+ skos:prefLabel "has related" ;
+
+ rdfs:subPropertyOf skos:note .
+
+
+
+### http://purl.allotrope.org/ontologies/property#AFX_0002815
+
+af-x:AFX_0002815 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ skos:definition "Reference that maps a class to a perspective. [Allotrope]" ;
+
+ skos:prefLabel "has perspective" ;
+
+ rdfs:subPropertyOf skos:scopeNote .
+
+
+
+### http://purl.allotrope.org/ontologies/property#AFX_0002818
+
+af-x:AFX_0002818 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ skos:definition "Is universal class flags a resource as being a primitive class that stands on its own. [Allotrope]" ;
+
+ skos:prefLabel "is universal class" ;
+
+ rdfs:subPropertyOf skos:note .
+
+
+
+### http://purl.allotrope.org/ontologies/property#AFX_0002841
+
+af-x:AFX_0002841 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ skos:definition "Has coordination annotates a class with some defining differentia. [Allotrope]" ;
+
+ skos:prefLabel "has coordination" .
+
+
+
+### http://purl.allotrope.org/ontologies/property#AFX_0002850
+
+af-x:AFX_0002850 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ skos:altLabel "design pattern" ,
+ "has pattern" ,
+ "pattern" ;
+
+ skos:definition "Has design pattern annotates a resource with a reference to a design pattern. [Allotrope]" ;
+
+ skos:prefLabel "has design pattern" ;
+
+ rdfs:subPropertyOf skos:note .
+
+
+
+### http://purl.allotrope.org/ontologies/property#AFX_0002865
+
+af-x:AFX_0002865 rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002808 pav:importedFrom ;
+
+ rdfs:isDefinedBy ;
+
+ skos:changeNote "2020-12-15 Property has been added in order to replace pav:importedFrom. The difference between af-x:AFX_0002865 and pav:importedFrom is that the former is an annotation property whereas the latter is an object property. We added a new property in order to avoid issues of redeclaration of pav:importedFrom as annotation property. [OSTHUS]" ;
+
+ skos:definition "The original source of imported information. [PAV]" ;
+
+ skos:prefLabel "imported from" ;
+
+ rdfs:subPropertyOf skos:note .
+
+
+
+### http://purl.allotrope.org/ontologies/property#AFX_0002866
+
+af-x:AFX_0002866 rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002808 pav:derivedFrom ;
+
+ rdfs:isDefinedBy ;
+
+ skos:definition "Derived from a different resource. [PAV]" ;
+
+ skos:note "2020-12-15 Property has been added in order to replace pav:derivedFrom. The difference between af-x:AFX_0002866 and pav:derivedFrom is that the former is an annotation property whereas the latter is an object property. We added a new property in order to avoid issues of redeclaration of pav:derivedFrom as annotation property. [OSTHUS]" ;
+
+ skos:prefLabel "derived from" ;
+
+ rdfs:subPropertyOf skos:note .
+
+
+
+### http://purl.obolibrary.org/obo/BFO_0000179
+
+bfo:_0000179 rdf:type owl:AnnotationProperty ;
+
+ iao:_0000115 "Relates an entity in the ontology to the name of the variable that is used to represent it in the code that generates the BFO OWL file from the lispy specification." ;
+
+ iao:_0000232 "Really of interest to developers only" ;
+
+ rdfs:label "BFO OWL specification label" ;
+
+ rdfs:subPropertyOf rdfs:label .
+
+
+
+### http://purl.obolibrary.org/obo/BFO_0000180
+
+bfo:_0000180 rdf:type owl:AnnotationProperty ;
+
+ iao:_0000115 "Relates an entity in the ontology to the term that is used to represent it in the the CLIF specification of BFO2" ;
+
+ iao:_0000119 "Person:Alan Ruttenberg" ;
+
+ iao:_0000232 "Really of interest to developers only" ;
+
+ rdfs:label "BFO CLIF specification label" ;
+
+ rdfs:subPropertyOf rdfs:label .
+
+
+
+### http://purl.obolibrary.org/obo/IAO_0000112
+
+iao:_0000112 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ rdfs:label "example of usage" .
+
+
+
+### http://purl.obolibrary.org/obo/IAO_0000115
+
+iao:_0000115 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ rdfs:label "definition" .
+
+
+
+### http://purl.obolibrary.org/obo/IAO_0000116
+
+iao:_0000116 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ rdfs:label "editor note" .
+
+
+
+### http://purl.obolibrary.org/obo/IAO_0000117
+
+iao:_0000117 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ rdfs:label "term editor" .
+
+
+
+### http://purl.obolibrary.org/obo/IAO_0000118
+
+iao:_0000118 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ rdfs:label "alternative term" .
+
+
+
+### http://purl.obolibrary.org/obo/IAO_0000119
+
+iao:_0000119 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ rdfs:label "definition source" .
+
+
+
+### http://purl.obolibrary.org/obo/IAO_0000232
+
+iao:_0000232 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ rdfs:label "curator note" .
+
+
+
+### http://purl.obolibrary.org/obo/IAO_0000412
+
+iao:_0000412 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ rdfs:label "imported from" .
+
+
+
+### http://purl.obolibrary.org/obo/IAO_0000600
+
+iao:_0000600 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ rdfs:label "elucidation" .
+
+
+
+### http://purl.obolibrary.org/obo/IAO_0000601
+
+iao:_0000601 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ rdfs:label "has associated axiom(nl)" .
+
+
+
+### http://purl.obolibrary.org/obo/IAO_0000602
+
+iao:_0000602 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ rdfs:label "has associated axiom(fol)" .
+
+
+
+### http://purl.obolibrary.org/obo/IAO_0010000
+
+iao:_0010000 rdf:type owl:AnnotationProperty ;
+
+ rdfs:isDefinedBy ;
+
+ rdfs:label "has axiom label" .
+
+
+
+### http://purl.org/dc/elements/1.1/contributor
+
+ rdf:type owl:AnnotationProperty .
+
+
+
+### http://purl.org/dc/elements/1.1/coverage
+
+ rdf:type owl:AnnotationProperty .
+
+
+
+### http://purl.org/dc/elements/1.1/creator
+
+ rdf:type owl:AnnotationProperty .
+
+
+
+### http://purl.org/dc/elements/1.1/date
+
+ rdf:type owl:AnnotationProperty .
+
+
+
+### http://purl.org/dc/elements/1.1/description
+
+ rdf:type owl:AnnotationProperty .
+
+
+
+### http://purl.org/dc/elements/1.1/format
+
+ rdf:type owl:AnnotationProperty .
+
+
+
+### http://purl.org/dc/elements/1.1/identifier
+
+ rdf:type owl:AnnotationProperty .
+
+
+
+### http://purl.org/dc/elements/1.1/language
+
+ rdf:type owl:AnnotationProperty .
+
+
+
+### http://purl.org/dc/elements/1.1/publisher
+
+ rdf:type owl:AnnotationProperty .
+
+
+
+### http://purl.org/dc/elements/1.1/relation
+
+ rdf:type owl:AnnotationProperty .
+
+
+
+### http://purl.org/dc/elements/1.1/rights
+
+ rdf:type owl:AnnotationProperty .
+
+
+
+### http://purl.org/dc/elements/1.1/source
+
+ rdf:type owl:AnnotationProperty .
+
+
+
+### http://purl.org/dc/elements/1.1/subject
+
+ rdf:type owl:AnnotationProperty .
+
+
+
+### http://purl.org/dc/elements/1.1/title
+
+ rdf:type owl:AnnotationProperty .
+
+
+
+### http://purl.org/dc/elements/1.1/type
+
+ rdf:type owl:AnnotationProperty .
+
+
+
+### http://purl.org/dc/terms/abstract
+
+dct:abstract rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "abstract" ;
+
+ rdfs:subPropertyOf ,
+ dct:description .
+
+
+
+### http://purl.org/dc/terms/accessRights
+
+dct:accessRights rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "access rights" ;
+
+ rdfs:subPropertyOf .
+
+
+
+### http://purl.org/dc/terms/alternative
+
+dct:alternative rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "alternative" ;
+
+ rdfs:subPropertyOf .
+
+
+
+### http://purl.org/dc/terms/available
+
+dct:available rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "available" ;
+
+ rdfs:subPropertyOf .
+
+
+
+### http://purl.org/dc/terms/bibliographicCitation
+
+dct:bibliographicCitation rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "bibliographic citation" ;
+
+ rdfs:subPropertyOf .
+
+
+
+### http://purl.org/dc/terms/conformsTo
+
+dct:conformsTo rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "conforms to" ;
+
+ rdfs:subPropertyOf ,
+ dct:relation .
+
+
+
+### http://purl.org/dc/terms/contributor
+
+dct:contributor rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "contributor" ;
+
+ rdfs:subPropertyOf .
+
+
+
+### http://purl.org/dc/terms/coverage
+
+dct:coverage rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "coverage" ;
+
+ rdfs:subPropertyOf .
+
+
+
+### http://purl.org/dc/terms/created
+
+dct:created rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "created" ;
+
+ rdfs:subPropertyOf .
+
+
+
+### http://purl.org/dc/terms/creator
+
+dct:creator rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "creator" ;
+
+ rdfs:subPropertyOf .
+
+
+
+### http://purl.org/dc/terms/date
+
+dct:date rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "date" ;
+
+ rdfs:subPropertyOf .
+
+
+
+### http://purl.org/dc/terms/dateAccepted
+
+dct:dateAccepted rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "date accepted" ;
+
+ rdfs:subPropertyOf .
+
+
+
+### http://purl.org/dc/terms/dateCopyrighted
+
+dct:dateCopyrighted rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "date copyrighted" ;
+
+ rdfs:subPropertyOf .
+
+
+
+### http://purl.org/dc/terms/dateSubmitted
+
+dct:dateSubmitted rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "date submitted" ;
+
+ rdfs:subPropertyOf .
+
+
+
+### http://purl.org/dc/terms/description
+
+dct:description rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "description" ;
+
+ rdfs:subPropertyOf .
+
+
+
+### http://purl.org/dc/terms/extent
+
+dct:extent rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "extend" ;
+
+ rdfs:subPropertyOf .
+
+
+
+### http://purl.org/dc/terms/format
+
+dct:format rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "format" ;
+
+ rdfs:subPropertyOf .
+
+
+
+### http://purl.org/dc/terms/hasFormat
+
+dct:hasFormat rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "has format" ;
+
+ rdfs:subPropertyOf ,
+ dct:relation .
+
+
+
+### http://purl.org/dc/terms/hasPart
+
+dct:hasPart rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "has part" ;
+
+ rdfs:subPropertyOf ,
+ dct:relation .
+
+
+
+### http://purl.org/dc/terms/hasVersion
+
+dct:hasVersion rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "has version" ;
+
+ rdfs:subPropertyOf ,
+ dct:relation .
+
+
+
+### http://purl.org/dc/terms/identifier
+
+dct:identifier rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "identifier" ;
+
+ rdfs:subPropertyOf .
+
+
+
+### http://purl.org/dc/terms/isFormatOf
+
+dct:isFormatOf rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "is format of" ;
+
+ rdfs:subPropertyOf ,
+ dct:relation .
+
+
+
+### http://purl.org/dc/terms/isPartOf
+
+dct:isPartOf rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "is part of" ;
+
+ rdfs:subPropertyOf ,
+ dct:relation .
+
+
+
+### http://purl.org/dc/terms/isReferencedBy
+
+dct:isReferencedBy rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "is referenced by" ;
+
+ rdfs:subPropertyOf ,
+ dct:relation .
+
+
+
+### http://purl.org/dc/terms/isReplacedBy
+
+dct:isReplacedBy rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "is replaced by" ;
+
+ rdfs:subPropertyOf ,
+ dct:relation .
+
+
+
+### http://purl.org/dc/terms/isRequiredBy
+
+dct:isRequiredBy rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "is required by" ;
+
+ rdfs:subPropertyOf ,
+ dct:relation .
+
+
+
+### http://purl.org/dc/terms/isVersionOf
+
+dct:isVersionOf rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "is version of" ;
+
+ rdfs:subPropertyOf ,
+ dct:relation .
+
+
+
+### http://purl.org/dc/terms/issued
+
+dct:issued rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "issued" ;
+
+ rdfs:subPropertyOf .
+
+
+
+### http://purl.org/dc/terms/language
+
+dct:language rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "language" ;
+
+ rdfs:subPropertyOf .
+
+
+
+### http://purl.org/dc/terms/license
+
+dct:license rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "license" ;
+
+ rdfs:subPropertyOf .
+
+
+
+### http://purl.org/dc/terms/medium
+
+dct:medium rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "medium" ;
+
+ rdfs:subPropertyOf .
+
+
+
+### http://purl.org/dc/terms/modified
+
+dct:modified rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "modified" ;
+
+ rdfs:subPropertyOf .
+
+
+
+### http://purl.org/dc/terms/publisher
+
+dct:publisher rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "publisher" ;
+
+ rdfs:subPropertyOf .
+
+
+
+### http://purl.org/dc/terms/references
+
+dct:references rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "references" ;
+
+ rdfs:subPropertyOf ,
+ dct:relation .
+
+
+
+### http://purl.org/dc/terms/relation
+
+dct:relation rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "relation" ;
+
+ rdfs:subPropertyOf .
+
+
+
+### http://purl.org/dc/terms/replaces
+
+dct:replaces rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy ;
+
+ skos:prefLabel "replaces" ;
+
+ rdfs:subPropertyOf ,
+ dct:relation .
+
+
+
+### http://purl.org/dc/terms/requires
+
+dct:requires rdf:type owl:AnnotationProperty ;
+
+ af-x:AFX_0002865 dct: ;
+
+ rdfs:isDefinedBy