diff --git a/docs/odk-workflows/RepositoryFileStructure.md b/docs/odk-workflows/RepositoryFileStructure.md index b55918861f..aaea0d9af9 100644 --- a/docs/odk-workflows/RepositoryFileStructure.md +++ b/docs/odk-workflows/RepositoryFileStructure.md @@ -28,6 +28,7 @@ These are the current imports in UBERON | ncbitaxon | http://purl.obolibrary.org/obo/ncbitaxon/subsets/taxslim.owl | None | | nbo | http://purl.obolibrary.org/obo/nbo.owl | None | | orcidio | https://w3id.org/orcidio/orcidio.owl | None | +| omo | http://purl.obolibrary.org/obo/omo.owl | mirror | ## Components Components, in contrast to imports, are considered full members of the ontology. This means that any axiom in a component is also included in the ontology base - which means it is considered _native_ to the ontology. While this sounds complicated, consider this: conceptually, no component should be part of more than one ontology. If that seems to be the case, we are most likely talking about an import. Components are often not needed for ontologies, but there are some use cases: diff --git a/src/ontology/Makefile b/src/ontology/Makefile index f81e195d50..d650bef1c7 100644 --- a/src/ontology/Makefile +++ b/src/ontology/Makefile @@ -114,7 +114,7 @@ all_main: $(MAIN_FILES) # ---------------------------------------- -IMPORTS = pr cl go envo ro bspo chebi pato bfo ncbitaxon nbo orcidio +IMPORTS = pr cl go envo ro bspo chebi pato bfo ncbitaxon nbo orcidio omo IMPORT_ROOTS = $(IMPORTDIR)/merged_import IMPORT_OWL_FILES = $(foreach n,$(IMPORT_ROOTS), $(n).owl) @@ -339,6 +339,12 @@ $(IMPORTDIR)/%_import.owl: $(MIRRORDIR)/merged.owl $(IMPORTDIR)/%_terms_combined .PRECIOUS: $(IMPORTDIR)/%_import.owl +## Module for ontology: omo + +$(IMPORTDIR)/omo_import.owl: $(MIRRORDIR)/merged.owl $(IMPORTDIR)/omo_terms_combined.txt + if [ $(IMP) = true ]; then $(ROBOT) merge -i $< query --update ../sparql/preprocess-module.ru --update ../sparql/inject-subset-declaration.ru --update ../sparql/inject-synonymtype-declaration.ru --update ../sparql/postprocess-module.ru \ + $(ANNOTATE_CONVERT_FILE); fi + .PHONY: refresh-imports refresh-imports: @@ -505,6 +511,15 @@ mirror-orcidio: | $(TMPDIR) if [ $(MIR) = true ] && [ $(IMP) = true ]; then $(ROBOT) convert -I https://w3id.org/orcidio/orcidio.owl -o $@.tmp.owl &&\ mv $@.tmp.owl $(TMPDIR)/$@.owl; fi + +## ONTOLOGY: omo +.PHONY: mirror-omo +.PRECIOUS: $(MIRRORDIR)/omo.owl +mirror-omo: | $(TMPDIR) + if [ $(MIR) = true ] && [ $(IMP) = true ]; then curl -L $(OBOBASE)/omo.owl --create-dirs -o $(MIRRORDIR)/omo.owl --retry 4 --max-time 200 &&\ + $(ROBOT) convert -i $(MIRRORDIR)/omo.owl -o $@.tmp.owl &&\ + mv $@.tmp.owl $(TMPDIR)/$@.owl; fi + ALL_MIRRORS = $(patsubst %, $(MIRRORDIR)/%.owl, $(IMPORTS)) MERGE_MIRRORS = true diff --git a/src/ontology/imports/merged_import.owl b/src/ontology/imports/merged_import.owl index fa2f60b947..4a9e67fde1 100644 --- a/src/ontology/imports/merged_import.owl +++ b/src/ontology/imports/merged_import.owl @@ -7,8 +7,8 @@ Prefix(rdfs:=) Ontology( - -Annotation(owl:versionInfo "2023-10-24") + +Annotation(owl:versionInfo "2023-10-25") Declaration(Class()) Declaration(Class()) @@ -9443,6 +9443,12 @@ Declaration(Class()) Declaration(Class()) Declaration(Class()) Declaration(Class()) +Declaration(Class()) +Declaration(Class()) +Declaration(Class()) +Declaration(Class()) +Declaration(Class()) +Declaration(Class()) Declaration(Class()) Declaration(Class()) Declaration(Class()) @@ -12066,6 +12072,24 @@ Declaration(ObjectProperty()) Declaration(ObjectProperty()) Declaration(ObjectProperty()) Declaration(ObjectProperty()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) +Declaration(NamedIndividual()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) @@ -12080,6 +12104,7 @@ Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) @@ -12087,11 +12112,13 @@ Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) @@ -12177,9 +12204,11 @@ Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) +Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) @@ -12225,54 +12254,163 @@ Declaration(AnnotationProperty() Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) Declaration(AnnotationProperty()) +Declaration(Datatype(xsd:date)) ############################ # Annotation Properties ############################ # Annotation Property: (example of usage) +AnnotationAssertion( "example of usage"@en) +AnnotationAssertion( ) +AnnotationAssertion( "A phrase describing how a term should be used and/or a citation to a work which uses it. May also include other kinds of examples that facilitate immediate understanding, such as widely know prototypes or instances of a class, or cases where a relation is said to hold."@en) +AnnotationAssertion( "PERSON:Daniel Schober"@en) +AnnotationAssertion( "GROUP:OBI:"@en) AnnotationAssertion(rdfs:isDefinedBy ) AnnotationAssertion(rdfs:label "example of usage"@en) AnnotationAssertion(rdfs:label "example of usage") # Annotation Property: (definition) +AnnotationAssertion( "definition"@en) +AnnotationAssertion( ) +AnnotationAssertion( "The official definition, explaining the meaning of a class or property. Shall be Aristotelian, formalized and normalized. Can be augmented with colloquial definitions."@en) +AnnotationAssertion( "2012-04-05: +Barry Smith + +The official OBI definition, explaining the meaning of a class or property: 'Shall be Aristotelian, formalized and normalized. Can be augmented with colloquial definitions' is terrible. + +Can you fix to something like: + +A statement of necessary and sufficient conditions explaining the meaning of an expression referring to a class or property. + +Alan Ruttenberg + +Your proposed definition is a reasonable candidate, except that it is very common that necessary and sufficient conditions are not given. Mostly they are necessary, occasionally they are necessary and sufficient or just sufficient. Often they use terms that are not themselves defined and so they effectively can't be evaluated by those criteria. + +On the specifics of the proposed definition: + +We don't have definitions of 'meaning' or 'expression' or 'property'. For 'reference' in the intended sense I think we use the term 'denotation'. For 'expression', I think we you mean symbol, or identifier. For 'meaning' it differs for class and property. For class we want documentation that let's the intended reader determine whether an entity is instance of the class, or not. For property we want documentation that let's the intended reader determine, given a pair of potential relata, whether the assertion that the relation holds is true. The 'intended reader' part suggests that we also specify who, we expect, would be able to understand the definition, and also generalizes over human and computer reader to include textual and logical definition. + +Personally, I am more comfortable weakening definition to documentation, with instructions as to what is desirable. + +We also have the outstanding issue of how to aim different definitions to different audiences. A clinical audience reading chebi wants a different sort of definition documentation/definition from a chemistry trained audience, and similarly there is a need for a definition that is adequate for an ontologist to work with."@en) +AnnotationAssertion( "PERSON:Daniel Schober"@en) +AnnotationAssertion( "GROUP:OBI:"@en) AnnotationAssertion(rdfs:isDefinedBy ) AnnotationAssertion(rdfs:label "definition"@en) AnnotationAssertion(rdfs:label "definition") # Annotation Property: (editor note) +AnnotationAssertion( "editor note"@en) +AnnotationAssertion( ) +AnnotationAssertion( "An administrative note intended for its editor. It may not be included in the publication version of the ontology, so it should contain nothing necessary for end users to understand the ontology."@en) +AnnotationAssertion( "PERSON:Daniel Schober"@en) +AnnotationAssertion( "GROUP:OBI:"@en) AnnotationAssertion(rdfs:isDefinedBy ) AnnotationAssertion(rdfs:label "editor note"@en) AnnotationAssertion(rdfs:label "editor note") +# Annotation Property: (has obsolescence reason) + +AnnotationAssertion( "has obsolescence reason"@en) +AnnotationAssertion( "Relates an annotation property to an obsolescence reason. The values of obsolescence reasons come from a list of predefined terms, instances of the class obsolescence reason specification."@en) +AnnotationAssertion( "PERSON:Alan Ruttenberg"@en) +AnnotationAssertion( "PERSON:Melanie Courtot"@en) +AnnotationAssertion(rdfs:label "has obsolescence reason"@en) + # Annotation Property: (curator note) +AnnotationAssertion( "curator note"@en) +AnnotationAssertion( ) +AnnotationAssertion( "An administrative note of use for a curator but of no use for a user"@en) +AnnotationAssertion( "PERSON:Alan Ruttenberg"@en) AnnotationAssertion(rdfs:isDefinedBy ) AnnotationAssertion(rdfs:label "curator note"@en) AnnotationAssertion(rdfs:label "curator note") +# Annotation Property: (term tracker item) + +AnnotationAssertion( "term tracker item"@en) +AnnotationAssertion( "the URI for an OBI Terms ticket at sourceforge, such as https://sourceforge.net/p/obi/obi-terms/772/"@en) +AnnotationAssertion( ) +AnnotationAssertion( "An IRI or similar locator for a request or discussion of an ontology term."@en) +AnnotationAssertion( "Person: Jie Zheng, Chris Stoeckert, Alan Ruttenberg"@en) +AnnotationAssertion( "Person: Jie Zheng, Chris Stoeckert, Alan Ruttenberg"@en) +AnnotationAssertion(rdfs:comment "The 'tracker item' can associate a tracker with a specific ontology term."@en) +AnnotationAssertion(rdfs:label "term tracker item"@en) + # Annotation Property: (expand assertion to) +AnnotationAssertion( "expand assertion to"@en) +AnnotationAssertion( "ObjectProperty: RO??? +Label: spatially disjoint from +Annotations: expand_assertion_to \"DisjointClasses: (http://purl.obolibrary.org/obo/BFO_0000051 some ?X) (http://purl.obolibrary.org/obo/BFO_0000051 some ?Y)\" +"@en) +AnnotationAssertion( "A macro expansion tag applied to an annotation property which can be expanded into a more detailed axiom."@en) +AnnotationAssertion( "Chris Mungall"@en) +AnnotationAssertion(rdfs:label "expand assertion to"@en) AnnotationAssertion(rdfs:label "expand assertion to") -# Annotation Property: (preferred_root) +# Annotation Property: (has ontology root term) +AnnotationAssertion( "has ontology root term"@en) +AnnotationAssertion( "Ontology annotation property. Relates an ontology to a term that is a designated root term of the ontology. Display tools like OLS can use terms annotated with this property as the starting point for rendering the ontology class hierarchy. There can be more than one root."@en) +AnnotationAssertion( "Nicolas Matentzoglu"@en) +AnnotationAssertion(rdfs:label "has ontology root term"@en) AnnotationAssertion(rdfs:label "preferred_root") +# Annotation Property: (scheduled for obsoletion on or after) + +AnnotationAssertion( "scheduled for obsoletion on or after"@en) +AnnotationAssertion( "Used when the class or object is scheduled for obsoletion/deprecation on or after a particular date."@en) +AnnotationAssertion( "Chris Mungall, Jie Zheng"@en) +AnnotationAssertion( "https://github.com/geneontology/go-ontology/issues/15532"@en) +AnnotationAssertion( "https://github.com/information-artifact-ontology/ontology-metadata/issues/32"@en) +AnnotationAssertion( "GO ontology"@en) +AnnotationAssertion(rdfs:label "scheduled for obsoletion on or after"@en) + # Annotation Property: (term replaced by) +AnnotationAssertion( "term replaced by"@en) +AnnotationAssertion( ) +AnnotationAssertion( "Use on obsolete terms, relating the term to another term that can be used as a substitute"@en) +AnnotationAssertion( "Person:Alan Ruttenberg"@en) +AnnotationAssertion( "Person:Alan Ruttenberg"@en) +AnnotationAssertion(rdfs:comment "Add as annotation triples in the granting ontology"@en) +AnnotationAssertion(rdfs:label "term replaced by"@en) AnnotationAssertion(rdfs:label "term replaced by") -# Annotation Property: () +# Annotation Property: (abbreviation) +AnnotationAssertion( "CHEBI:26523 (reactive oxygen species) has an exact synonym (ROS), which is of type OMO:0003000 (abbreviation)") +AnnotationAssertion( "A synonym type for describing abbreviations or initalisms") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion( "2023-03-03"^^xsd:date) +AnnotationAssertion(rdfs:label "abbreviation") SubAnnotationPropertyOf( ) -# Annotation Property: () +# Annotation Property: (plural form) +AnnotationAssertion( "CHEBI:23367 (molecular entity) has an exact synonym (molecular entities), which is of the type OMO:0003004 (plural form)") +AnnotationAssertion( "A synonym type for describing pluralization synonyms") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion( "2023-03-03"^^xsd:date) +AnnotationAssertion(rdfs:label "plural form") SubAnnotationPropertyOf( ) +# Annotation Property: (latin term) + +AnnotationAssertion( "nasopharynx (UBERON:0001728) has the latin name \"pars nasalis pharyngis") +AnnotationAssertion( "A synonym type for describing Latin term synonyms.") +AnnotationAssertion( ) +AnnotationAssertion( ) +AnnotationAssertion( "2023-10-12"^^xsd:date) +AnnotationAssertion(rdfs:label "latin term") + # Annotation Property: (never in taxon) AnnotationAssertion( "tooth SubClassOf 'never in taxon' value 'Aves'") @@ -12653,19 +12791,34 @@ AnnotationAssertion(rdfs:label (has_broad_synonym) +AnnotationAssertion( "An alternative label for a class or property which has a more general meaning than the preferred name/primary label.") +AnnotationAssertion( ) +AnnotationAssertion( "https://github.com/information-artifact-ontology/ontology-metadata/issues/18") +AnnotationAssertion(rdfs:label "has broad synonym"@en) AnnotationAssertion(rdfs:label "has_broad_synonym") +AnnotationAssertion(rdfs:seeAlso "https://github.com/information-artifact-ontology/ontology-metadata/issues/18") # Annotation Property: (database_cross_reference) AnnotationAssertion(rdfs:label "database_cross_reference") -# Annotation Property: (has_exact_synonym) +# Annotation Property: (has exact synonym) +AnnotationAssertion( "An alternative label for a class or property which has the exact same meaning than the preferred name/primary label.") +AnnotationAssertion( ) +AnnotationAssertion( "https://github.com/information-artifact-ontology/ontology-metadata/issues/20") +AnnotationAssertion(rdfs:label "has exact synonym"@en) AnnotationAssertion(rdfs:label "has_exact_synonym") +AnnotationAssertion(rdfs:seeAlso "https://github.com/information-artifact-ontology/ontology-metadata/issues/20") -# Annotation Property: (has_narrow_synonym) +# Annotation Property: (has narrow synonym) +AnnotationAssertion( "An alternative label for a class or property which has a more specific meaning than the preferred name/primary label.") +AnnotationAssertion( ) +AnnotationAssertion( "https://github.com/information-artifact-ontology/ontology-metadata/issues/19") +AnnotationAssertion(rdfs:label "has narrow synonym"@en) AnnotationAssertion(rdfs:label "has_narrow_synonym") +AnnotationAssertion(rdfs:seeAlso "https://github.com/information-artifact-ontology/ontology-metadata/issues/19") # Annotation Property: (has_obo_format_version) @@ -12677,7 +12830,12 @@ AnnotationAssertion(rdfs:label (has_related_synonym) +AnnotationAssertion( "An alternative label for a class or property that has been used synonymously with the primary term name, but the usage is not strictly correct.") +AnnotationAssertion( ) +AnnotationAssertion( "https://github.com/information-artifact-ontology/ontology-metadata/issues/21") +AnnotationAssertion(rdfs:label "has related synonym"@en) AnnotationAssertion(rdfs:label "has_related_synonym") +AnnotationAssertion(rdfs:seeAlso "https://github.com/information-artifact-ontology/ontology-metadata/issues/21") # Annotation Property: (has_scope) @@ -137278,6 +137436,62 @@ AnnotationAssertion( "positive regulation of chromosome organization") EquivalentClasses( ObjectIntersectionOf( ObjectSomeValuesFrom( ))) +# Class: (data item) + +AnnotationAssertion( "data item"@en) +AnnotationAssertion(rdfs:label "data item"@en) +SubClassOf( ) + +# Class: (information content entity) + +AnnotationAssertion( "information content entity"@en) +AnnotationAssertion(rdfs:label "information content entity"@en) +SubClassOf( ) + +# Class: (curation status specification) + +AnnotationAssertion( "curation status specification"@en) +AnnotationAssertion( ) +AnnotationAssertion( "The curation status of the term. The allowed values come from an enumerated list of predefined terms. See the specification of these instances for more detailed definitions of each enumerated value."@en) +AnnotationAssertion( "Better to represent curation as a process with parts and then relate labels to that process (in IAO meeting)"@en) +AnnotationAssertion( "PERSON:Bill Bug"@en) +AnnotationAssertion( "GROUP:OBI:"@en) +AnnotationAssertion( "OBI_0000266"@en) +AnnotationAssertion(rdfs:label "curation status specification"@en) +EquivalentClasses( ObjectOneOf( )) +SubClassOf( ) + +# Class: (data about an ontology part) + +AnnotationAssertion( "data about an ontology part"@en) +AnnotationAssertion( "Data about an ontology part is a data item about a part of an ontology, for example a term"@en) +AnnotationAssertion( "Person:Alan Ruttenberg"@en) +AnnotationAssertion(rdfs:label "data about an ontology part"@en) +SubClassOf( ) + +# Class: (obsolescence reason specification) + +AnnotationAssertion( "obsolescence reason specification"@en) +AnnotationAssertion( ) +AnnotationAssertion( "The reason for which a term has been deprecated. The allowed values come from an enumerated list of predefined terms. See the specification of these instances for more detailed definitions of each enumerated value."@en) +AnnotationAssertion( "The creation of this class has been inspired in part by Werner Ceusters' paper, Applying evolutionary terminology auditing to the Gene Ontology."@en) +AnnotationAssertion( "PERSON: Alan Ruttenberg"@en) +AnnotationAssertion( "PERSON: Melanie Courtot"@en) +AnnotationAssertion(rdfs:label "obsolescence reason specification"@en) +EquivalentClasses( ObjectOneOf( )) +SubClassOf( ) + +# Class: (denotator type) + +AnnotationAssertion( "denotator type"@en) +AnnotationAssertion( "The Basic Formal Ontology ontology makes a distinction between Universals and defined classes, where the formal are \"natural kinds\" and the latter arbitrary collections of entities."@en) +AnnotationAssertion( "A denotator type indicates how a term should be interpreted from an ontological perspective."@en) +AnnotationAssertion( "Alan Ruttenberg"@en) +AnnotationAssertion( "Barry Smith, Werner Ceusters"@en) +AnnotationAssertion(rdfs:label "denotator type"@en) +EquivalentClasses( ObjectOneOf( )) +SubClassOf( ) + # Class: (body part movement) AnnotationAssertion( "A change of place or position of part of an organism that does not involve the entire organism [NBO:SMAC]") @@ -150652,6 +150866,131 @@ AnnotationAssertion(rdfs:label "syst SubClassOf( ) +############################ +# Named Individuals +############################ + +# Individual: (example to be eventually removed) + +AnnotationAssertion( "example to be eventually removed"@en) +AnnotationAssertion(rdfs:label "example to be eventually removed"@en) + +# Individual: (failed exploratory term) + +AnnotationAssertion( "failed exploratory term"@en) +AnnotationAssertion( "The term was used in an attempt to structure part of the ontology but in retrospect failed to do a good job"@en) +AnnotationAssertion( "Person:Alan Ruttenberg"@en) +AnnotationAssertion(rdfs:label "failed exploratory term"@en) + +# Individual: (metadata complete) + +AnnotationAssertion( "metadata complete"@en) +AnnotationAssertion( "Class has all its metadata, but is either not guaranteed to be in its final location in the asserted IS_A hierarchy or refers to another class that is not complete."@en) +AnnotationAssertion(rdfs:label "metadata complete"@en) + +# Individual: (organizational term) + +AnnotationAssertion( "organizational term"@en) +AnnotationAssertion( "Term created to ease viewing/sort terms for development purpose, and will not be included in a release"@en) +AnnotationAssertion(rdfs:label "organizational term"@en) + +# Individual: (ready for release) + +AnnotationAssertion( "ready for release"@en) +AnnotationAssertion( "Class has undergone final review, is ready for use, and will be included in the next release. Any class lacking \"ready_for_release\" should be considered likely to change place in hierarchy, have its definition refined, or be obsoleted in the next release. Those classes deemed \"ready_for_release\" will also derived from a chain of ancestor classes that are also \"ready_for_release.\""@en) +AnnotationAssertion(rdfs:label "ready for release"@en) + +# Individual: (metadata incomplete) + +AnnotationAssertion( "metadata incomplete"@en) +AnnotationAssertion( "Class is being worked on; however, the metadata (including definition) are not complete or sufficiently clear to the branch editors."@en) +AnnotationAssertion(rdfs:label "metadata incomplete"@en) + +# Individual: (uncurated) + +AnnotationAssertion( "uncurated"@en) +AnnotationAssertion( "Nothing done yet beyond assigning a unique class ID and proposing a preferred term."@en) +AnnotationAssertion(rdfs:label "uncurated"@en) + +# Individual: (pending final vetting) + +AnnotationAssertion( "pending final vetting"@en) +AnnotationAssertion( "All definitions, placement in the asserted IS_A hierarchy and required minimal metadata are complete. The class is awaiting a final review by someone other than the term editor."@en) +AnnotationAssertion(rdfs:label "pending final vetting"@en) + +# Individual: (placeholder removed) + +AnnotationAssertion( "placeholder removed"@en) +AnnotationAssertion(rdfs:label "placeholder removed"@en) + +# Individual: (terms merged) + +AnnotationAssertion( "terms merged"@en) +AnnotationAssertion( "An editor note should explain what were the merged terms and the reason for the merge."@en) +AnnotationAssertion(rdfs:label "terms merged"@en) + +# Individual: (term imported) + +AnnotationAssertion( "term imported"@en) +AnnotationAssertion( "This is to be used when the original term has been replaced by a term imported from an other ontology. An editor note should indicate what is the URI of the new term to use."@en) +AnnotationAssertion(rdfs:label "term imported"@en) + +# Individual: (term split) + +AnnotationAssertion( "term split"@en) +AnnotationAssertion( "This is to be used when a term has been split in two or more new terms. An editor note should indicate the reason for the split and indicate the URIs of the new terms created."@en) +AnnotationAssertion(rdfs:label "term split"@en) + +# Individual: (universal) + +AnnotationAssertion( "universal"@en) +AnnotationAssertion( "Hard to give a definition for. Intuitively a \"natural kind\" rather than a collection of any old things, which a class is able to be, formally. At the meta level, universals are defined as positives, are disjoint with their siblings, have single asserted parents."@en) +AnnotationAssertion( "Alan Ruttenberg"@en) +AnnotationAssertion( "A Formal Theory of Substances, Qualities, and Universals, http://ontology.buffalo.edu/bfo/SQU.pdf"@en) +AnnotationAssertion(rdfs:label "universal"@en) + +# Individual: (defined class) + +AnnotationAssertion( "defined class"@en) +AnnotationAssertion( "A defined class is a class that is defined by a set of logically necessary and sufficient conditions but is not a universal"@en) +AnnotationAssertion( "\"definitions\", in some readings, always are given by necessary and sufficient conditions. So one must be careful (and this is difficult sometimes) to distinguish between defined classes and universal."@en) +AnnotationAssertion( "Alan Ruttenberg"@en) +AnnotationAssertion(rdfs:label "defined class"@en) + +# Individual: (named class expression) + +AnnotationAssertion( "named class expression"@en) +AnnotationAssertion( "A named class expression is a logical expression that is given a name. The name can be used in place of the expression."@en) +AnnotationAssertion( "named class expressions are used in order to have more concise logical definition but their extensions may not be interesting classes on their own. In languages such as OWL, with no provisions for macros, these show up as actuall classes. Tools may with to not show them as such, and to replace uses of the macros with their expansions"@en) +AnnotationAssertion( "Alan Ruttenberg"@en) +AnnotationAssertion(rdfs:label "named class expression"@en) + +# Individual: (to be replaced with external ontology term) + +AnnotationAssertion( "to be replaced with external ontology term"@en) +AnnotationAssertion( "Terms with this status should eventually replaced with a term from another ontology."@en) +AnnotationAssertion( "Alan Ruttenberg"@en) +AnnotationAssertion( "group:OBI"@en) +AnnotationAssertion(rdfs:label "to be replaced with external ontology term"@en) + +# Individual: (requires discussion) + +AnnotationAssertion( "requires discussion"@en) +AnnotationAssertion( "A term that is metadata complete, has been reviewed, and problems have been identified that require discussion before release. Such a term requires editor note(s) to identify the outstanding issues."@en) +AnnotationAssertion( "Alan Ruttenberg"@en) +AnnotationAssertion( "group:OBI"@en) +AnnotationAssertion(rdfs:label "requires discussion"@en) + +# Individual: (out of scope) + +AnnotationAssertion( "The term was added to the ontology on the assumption it was in scope, but it turned out later that it was not."@en) +AnnotationAssertion( "This obsolesence reason should be used conservatively. Typical valid examples are: un-necessary grouping classes in disease ontologies, a phenotype term added on the assumption it was a disease."@en) +AnnotationAssertion( ) +AnnotationAssertion( "https://github.com/information-artifact-ontology/ontology-metadata/issues/77") +AnnotationAssertion( "https://orcid.org/0000-0001-5208-3432") +AnnotationAssertion(rdfs:label "out of scope") + + EquivalentClasses(ObjectIntersectionOf( ObjectSomeValuesFrom( )) ObjectIntersectionOf( ObjectMinCardinality(2 ))) EquivalentClasses(ObjectIntersectionOf( ObjectComplementOf(ObjectSomeValuesFrom( ))) ObjectIntersectionOf( ObjectSomeValuesFrom( ))) EquivalentClasses(ObjectIntersectionOf( ObjectSomeValuesFrom( )) ObjectIntersectionOf( ObjectSomeValuesFrom( ))) diff --git a/src/ontology/imports/omo_terms.txt b/src/ontology/imports/omo_terms.txt new file mode 100644 index 0000000000..fd22180454 --- /dev/null +++ b/src/ontology/imports/omo_terms.txt @@ -0,0 +1,5 @@ +OMO:0003004 +OMO:0003000 +OMO:0003011 + + diff --git a/src/ontology/uberon-odk.yaml b/src/ontology/uberon-odk.yaml index 678988466d..2b37c24409 100644 --- a/src/ontology/uberon-odk.yaml +++ b/src/ontology/uberon-odk.yaml @@ -70,6 +70,8 @@ import_group: mirror_from: https://w3id.org/orcidio/orcidio.owl base_iris: - https://orcid.org/ + - id: omo + module_type: mirror subset_group: products: - id: appendicular-minimal