PREFIX obo: <http://purl.obolibrary.org/obo/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

obo:IAO_8000010 a rdfs:Class ;
  rdfs:label "exclusion subset ontology module"@en ;
  rdfs:comment "A subset of an ontology that is intended to be excluded for some purpose. For example, a blacklist of classes."@en ;
  rdfs:subClassOf obo:IAO_8000006 .

obo:IAO_8000007 a rdfs:Class ;
  rdfs:label "curation subset ontology module"@en ;
  rdfs:comment "A subset ontology that is intended as a whitelist for curators using the ontology. Such a subset will exclude classes that curators should not use for curation."@en ;
  rdfs:subClassOf obo:IAO_8000006 .

obo:IAO_8000013 a rdfs:Class ;
  rdfs:label "reasoned ontology module"@en ;
  rdfs:comment "An ontology module that contains axioms generated by a reasoner. The generated axioms are typically direct SubClassOf axioms, but other possibilities are available."@en ;
  rdfs:seeAlso <http://robot.obolibrary.org/reason> ;
  rdfs:subClassOf obo:IAO_8000000 .

obo:IAO_8000011 a rdfs:Class ;
  rdfs:label "external import ontology module"@en ;
  rdfs:comment "An imported ontology module that is derived from an external ontology. Derivation methods include the OWLAPI SLME approach."@en ;
  rdfs:subClassOf obo:IAO_8000005 .

obo:IAO_8000016 a rdfs:Class ;
  rdfs:label "taxonomic bridge ontology module"@en ;
  rdfs:subClassOf obo:IAO_8000004 .

obo:IAO_8000005 a rdfs:Class ;
  rdfs:label "import ontology module"@en ;
  rdfs:comment "A subset ontology module that is intended to be imported from another ontology."@en ;
  rdfs:seeAlso <http://robot.obolibrary.org/extract> ;
  rdfs:subClassOf obo:IAO_8000006 .

obo:IAO_8000019 a rdfs:Class ;
  rdfs:label "ontology module subsetted by OWL profile"@en ;
  rdfs:subClassOf obo:IAO_8000017 .

obo:IAO_8000015 a rdfs:Class ;
  rdfs:label "template generated ontology module"@en ;
  rdfs:comment "An ontology module that is automatically generated from a template specification and fillers for slots in that template."@en ;
  rdfs:seeAlso <http://robot.obolibrary.org/template> , <https://github.com/dosumis/dead_simple_owl_design_patterns/> , <https://doi.org/10.1186/s13326-017-0126-0> ;
  rdfs:subClassOf obo:IAO_8000014 .

obo:IAO_8000020 a rdfs:Class ;
  rdfs:label "EL++ ontology module"@en ;
  rdfs:subClassOf obo:IAO_8000019 .

obo:IAO_8000008 a rdfs:Class ;
  rdfs:label "analysis subset ontology module"@en ;
  rdfs:comment "An ontology module that is intended for usage in analysis or discovery applications."@en ;
  rdfs:subClassOf obo:IAO_8000006 .

obo:IAO_0000027 a rdfs:Class ;
  rdfs:label "data entity"@en ;
  rdfs:subClassOf obo:IAO_0000030 .

obo:IAO_8000014 a rdfs:Class ;
  rdfs:label "generated ontology module"@en ;
  rdfs:comment "An ontology module that is automatically generated, for example via a SPARQL query or via template and a CSV."@en ;
  rdfs:subClassOf obo:IAO_8000000 .

obo:IAO_8000003 a rdfs:Class ;
  rdfs:label "main release ontology module"@en ;
  rdfs:comment "An ontology module that is intended to be the primary release product and the one consumed by the majority of tools."@en ;
  rdfs:subClassOf obo:IAO_8000000 .

obo:IAO_8000000 a rdfs:Class ;
  rdfs:label "ontology module"@en ;
  rdfs:subClassOf obo:IAO_0000102 .

obo:IAO_8000018 a rdfs:Class ;
  rdfs:label "obo basic subset ontology module"@en ;
  rdfs:comment """A subset ontology that is designed for basic applications to continue to make certain simplifying assumptions; many of these simplifying assumptions were based on the initial version of the Gene Ontology, and have become enshrined in many popular and useful tools such as term enrichment tools.

Examples of such assumptions include: traversing the ontology graph ignoring relationship types using a naive algorithm will not lead to cycles (i.e. the ontology is a DAG); every referenced term is declared in the ontology (i.e. there are no dangling clauses).

An ontology is OBO Basic if and only if it has the following characteristics:
DAG
Unidirectional
No Dangling Clauses
Fully Asserted
Fully Labeled
No equivalence axioms
Singly labeled edges
No qualifier lists
No disjointness axioms
No owl-axioms header
No imports"""@en ;
  rdfs:seeAlso <http://owlcollab.github.io/oboformat/doc/obo-syntax.html#6.2> ;
  rdfs:subClassOf obo:IAO_8000017 .

obo:IAO_8000002 a rdfs:Class ;
  rdfs:label "editors ontology module"@en ;
  rdfs:comment "An ontology module that is intended to be directly edited, typically managed in source control, and typically not intended for direct consumption by end-users."@en ;
  rdfs:subClassOf obo:IAO_8000000 .

obo:IAO_8000017 a rdfs:Class ;
  rdfs:label "ontology module subsetted by expressivity"@en ;
  rdfs:subClassOf obo:IAO_8000006 .

obo:IAO_0000030 a rdfs:Class ;
  rdfs:label "information content entity"@en .

obo:IAO_8000006 a rdfs:Class ;
  rdfs:label "subset ontology module"@en ;
  rdfs:comment "An ontology module that is extracted from a main ontology module and includes only a subset of entities or axioms."@en ;
  rdfs:seeAlso <http://robot.obolibrary.org/filter> , <http://www.geneontology.org/page/go-slim-and-subset-guide> ;
  rdfs:subClassOf obo:IAO_8000000 .

obo:IAO_8000001 a rdfs:Class ;
  rdfs:label "base ontology module"@en ;
  rdfs:comment "An ontology module that comprises only of asserted axioms local to the ontology, excludes import directives, and excludes axioms or declarations from external ontologies."@en ;
  rdfs:seeAlso <https://github.com/INCATools/ontology-starter-kit/issues/50> ;
  rdfs:subClassOf obo:IAO_8000000 .

obo:IAO_8000012 a rdfs:Class ;
  rdfs:label "species subset ontology module"@en ;
  rdfs:comment "A subset ontology that is crafted to either include or exclude a taxonomic grouping of species."@en ;
  rdfs:seeAlso <https://github.com/obophenotype/uberon/wiki/Taxon-constraints> ;
  rdfs:subClassOf obo:IAO_8000006 .

obo:IAO_0000102 a rdfs:Class ;
  rdfs:label "data about an ontology part"@en ;
  rdfs:comment "Data about an ontology part is a data item about a part of an ontology, for example a term"@en ;
  rdfs:subClassOf obo:IAO_0000027 .

obo:IAO_8000004 a rdfs:Class ;
  rdfs:label "bridge ontology module"@en ;
  rdfs:comment "An ontology module that consists entirely of axioms that connect or bridge two distinct ontology modules. For example, the Uberon-to-ZFA bridge module."@en ;
  rdfs:seeAlso <https://github.com/obophenotype/uberon/wiki/inter-anatomy-ontology-bridge-ontologies> ;
  rdfs:subClassOf obo:IAO_8000000 .

obo:IAO_8000009 a rdfs:Class ;
  rdfs:label "single layer subset ontology module"@en ;
  rdfs:comment "A subset ontology that is largely comprised of a single layer or strata in an ontology class hierarchy. The purpose is typically for rolling up for visualization. The classes in the layer need not be disjoint."@en ;
  rdfs:subClassOf obo:IAO_8000006 .

obo:IAO_0000111 a rdf:Property ;
  rdfs:label "editor preferred term"@en ;
  rdfs:comment "The concise, meaningful, and human-friendly name for a class or property preferred by the ontology developers. (US-English)"@en ;
  rdfs:range xsd:string .

obo:IAO_0000112 a rdf:Property ;
  rdfs:label "example of usage"@en ;
  rdfs:comment "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 ;
  rdfs:range xsd:string .

obo:IAO_0000113 a rdf:Property ;
  rdfs:label "in branch"@en ;
  rdfs:comment "An annotation property indicating which module the terms belong to. This is currently experimental and not implemented yet."@en ;
  rdfs:range xsd:string .

obo:IAO_0000114 a rdf:Property ;
  rdfs:label "has curation status"@en ;
  rdfs:range xsd:string .

obo:IAO_0000115 a rdf:Property ;
  rdfs:label "definition"@en ;
  rdfs:comment "The official definition, explaining the meaning of a class or property. Shall be Aristotelian, formalized and normalized. Can be augmented with colloquial definitions."@en ;
  rdfs:range xsd:string .

obo:IAO_0000116 a rdf:Property ;
  rdfs:label "editor note"@en ;
  rdfs:comment "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 ;
  rdfs:range xsd:string .

obo:IAO_0000117 a rdf:Property ;
  rdfs:label "term editor"@en ;
  rdfs:comment "Name of editor entering the term in the file. The term editor is a point of contact for information regarding the term. The term editor may be, but is not always, the author of the definition, which may have been worked upon by several people"@en ;
  rdfs:range xsd:string .

obo:IAO_0000118 a rdf:Property ;
  rdfs:label "alternative label"@en ;
  rdfs:comment "A label for a class or property that can be used to refer to the class or property instead of the preferred rdfs:label. Alternative labels should be used to indicate community- or context-specific labels, abbreviations, shorthand forms and the like."@en ;
  rdfs:range xsd:string .

obo:IAO_0000119 a rdf:Property ;
  rdfs:label "definition source"@en ;
  rdfs:comment "Formal citation, e.g. identifier in external database to indicate / attribute source(s) for the definition. Free text indicate / attribute source(s) for the definition. EXAMPLE: Author Name, URI, MeSH Term C04, PUBMED ID, Wiki uri on 31.01.2007"@en ;
  rdfs:range xsd:string .

obo:IAO_0000231 a rdf:Property ;
  rdfs:label "has obsolescence reason"@en ;
  rdfs:comment "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 ;
  rdfs:range xsd:string .

obo:IAO_0000232 a rdf:Property ;
  rdfs:label "curator note"@en ;
  rdfs:comment "An administrative note of use for a curator but of no use for a user"@en ;
  rdfs:range xsd:string .

obo:IAO_0000233 a rdf:Property ;
  rdfs:label "term tracker item"@en ;
  rdfs:comment "A URL for a request or discussion of an ontology term."@en ;
  rdfs:range xsd:anyURI .

obo:IAO_0000234 a rdf:Property ;
  rdfs:label "ontology term requester"@en ;
  rdfs:comment "The name of the person, project, or organization that motivated inclusion of an ontology term by requesting its addition."@en ;
  rdfs:range xsd:string .

obo:IAO_0000411 a rdf:Property ;
  rdfs:label "is denotator type"@en ;
  rdfs:comment "Relates an class defined in an ontology, to the type of it's denotator"@en ;
  rdfs:range xsd:string .

obo:IAO_0000412 a rdf:Property ;
  rdfs:label "imported from"@en ;
  rdfs:comment "For external terms/classes, the ontology from which the term was imported"@en ;
  rdfs:range xsd:string .

obo:IAO_0000424 a rdf:Property ;
  rdfs:label "expand expression to"@en ;
  rdfs:comment "A macro expansion tag applied to an object property (or possibly a data property)  which can be used by a macro-expansion engine to generate more complex expressions from simpler ones"@en ;
  rdfs:range xsd:string .

obo:IAO_0000425 a rdf:Property ;
  rdfs:label "expand assertion to"@en ;
  rdfs:comment "A macro expansion tag applied to an annotation property which can be expanded into a more detailed axiom."@en ;
  rdfs:range xsd:string .

obo:IAO_0000426 a rdf:Property ;
  rdfs:label "first order logic expression"@en ;
  rdfs:range xsd:string .

obo:IAO_0000427 a rdf:Property ;
  rdfs:label "antisymmetric property"@en ;
  rdfs:comment "Use boolean value xsd:true to indicate that the property is an antisymmetric property"@en ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf obo:OMO_0001001 .

obo:IAO_0000589 a rdf:Property ;
  rdfs:label "OBO foundry unique label"@en ;
  rdfs:comment "An alternative name for a class or property which is unique across the OBO Foundry."@en ;
  rdfs:range xsd:string .

obo:IAO_0000596 a rdf:Property ;
  rdfs:label "has ID digit count"@en ;
  rdfs:comment "Relates an ontology used to record id policy to the number of digits in the URI. The URI is: the 'has ID prefix\" annotation property value concatenated with an integer in the id range (left padded with \"0\"s to make this many digits)"@en ;
  rdfs:range xsd:string .

obo:IAO_0000597 a rdf:Property ;
  rdfs:label "has ID range allocated to"@en ;
  rdfs:comment "Relates a datatype that encodes a range of integers to the name of the person or organization who can use those ids constructed in that range to define new terms"@en ;
  rdfs:range xsd:string .

obo:IAO_0000598 a rdf:Property ;
  rdfs:label "has ID policy for"@en ;
  rdfs:comment "Relating an ontology used to record id policy to the ontology namespace whose policy it manages"@en ;
  rdfs:range xsd:string .

obo:IAO_0000599 a rdf:Property ;
  rdfs:label "has ID prefix"@en ;
  rdfs:comment "Relates an ontology used to record id policy to a prefix concatenated with an integer in the id range (left padded with \"0\"s to make this many digits) to construct an ID for a term being created."@en ;
  rdfs:range xsd:string .

obo:IAO_0000600 a rdf:Property ;
  rdfs:label "elucidation"@en ;
  rdfs:range xsd:string .

obo:IAO_0000601 a rdf:Property ;
  rdfs:label "has associated axiom(nl)"@en ;
  rdfs:range xsd:string .

obo:IAO_0000602 a rdf:Property ;
  rdfs:label "has associated axiom(fol)"@en ;
  rdfs:range xsd:string .

obo:IAO_0000603 a rdf:Property ;
  rdfs:label "is allocated id range"@en ;
  rdfs:comment "Relates an ontology IRI to an (inclusive) range of IRIs in an OBO name space. The range is give as, e.g. \"IAO_0020000-IAO_0020999\""@en ;
  rdfs:range xsd:string .

obo:IAO_0000700 a rdf:Property ;
  rdfs:label "has ontology root term"@en ;
  rdfs:comment "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 ;
  rdfs:range xsd:string .

obo:IAO_0006011 a rdf:Property ;
  rdfs:label "may be identical to"@en ;
  rdfs:comment "A annotation relationship between two terms in an ontology that may refer to the same (natural) type but where more evidence is required before terms are merged."@en ;
  rdfs:range xsd:string .

obo:IAO_0006012 a rdf:Property ;
  rdfs:label "scheduled for obsoletion on or after"@en ;
  rdfs:comment "Used when the class or object is scheduled for obsoletion/deprecation on or after a particular date."@en ;
  rdfs:range xsd:dateTime .

obo:IAO_0010000 a rdf:Property ;
  rdfs:label "has axiom label"@en ;
  rdfs:range xsd:string .

obo:IAO_0100001 a rdf:Property ;
  rdfs:label "term replaced by"@en ;
  rdfs:comment "Use on obsolete terms, relating the term to another term that can be used as a substitute"@en ;
  rdfs:range xsd:string .

obo:OMO_0001001 a rdf:Property ;
  rdfs:label "logical characteristic of object property" ;
  rdfs:comment "This is an annotation used on an object property to indicate a logical characterstic beyond what is possible in OWL." ;
  rdfs:range xsd:string .

obo:OMO_0002000 a rdf:Property ;
  rdfs:label "defined by construct" ;
  rdfs:comment "Links an annotation property to a SPARQL CONSTRUCT query which is meant to provide semantics for a shortcut relation." ;
  rdfs:range xsd:string .

obo:OMO_0002001 a rdf:Property ;
  rdfs:label "preferred label for community" ;
  rdfs:comment "A provenance property that denotes a synonym to be the preferred one for a specific community." ;
  rdfs:range xsd:string .

obo:OMO_0003000 a rdf:Property ;
  rdfs:label "abbreviation" ;
  rdfs:comment "A synonym type for describing abbreviations or initialisms" ;
  rdfs:range xsd:string .

obo:OMO_0003001 a rdf:Property ;
  rdfs:label "ambiguous synonym" ;
  rdfs:comment "A synonym type for describing ambiguous synonyms" ;
  rdfs:range xsd:string .

obo:OMO_0003002 a rdf:Property ;
  rdfs:label "dubious synonym" ;
  rdfs:comment "A synonym type for describing dubious synonyms" ;
  rdfs:range xsd:string .

obo:OMO_0003003 a rdf:Property ;
  rdfs:label "layperson synonym" ;
  rdfs:comment "A synonym type for describing layperson or colloquial synonyms" ;
  rdfs:range xsd:string .

obo:OMO_0003004 a rdf:Property ;
  rdfs:label "plural form" ;
  rdfs:comment "A synonym type for describing pluralization synonyms" ;
  rdfs:range xsd:string .

obo:OMO_0003005 a rdf:Property ;
  rdfs:label "UK spelling synonym" ;
  rdfs:comment "A synonym type for describing UK spelling variants" ;
  rdfs:range xsd:string .

obo:OMO_0003006 a rdf:Property ;
  rdfs:label "misspelling" ;
  rdfs:comment "A synonym type for common misspellings" ;
  rdfs:range xsd:string .

obo:OMO_0003007 a rdf:Property ;
  rdfs:label "misnomer" ;
  rdfs:comment "A synonym type for misnomers, i.e., a synonym that is not technically correct but is commonly used anyway" ;
  rdfs:range xsd:string .

obo:OMO_0003008 a rdf:Property ;
  rdfs:label "previous name" ;
  rdfs:comment "A synonym type for names that have been used as primary labels in the past." ;
  rdfs:range xsd:string .

obo:OMO_0003009 a rdf:Property ;
  rdfs:label "legal name" ;
  rdfs:comment "A synonym type for the legal entity name" ;
  rdfs:range xsd:string .

obo:OMO_0003010 a rdf:Property ;
  rdfs:label "International Nonproprietary Name" ;
  rdfs:comment "The International Nonproprietary Name (INN) is a standardize name for a pharmaceutical drug or active ingredient issued by the World Health Organization (WHO) meant to address the issues with country- or language-specific brand names. These are issued in several languages, including English, Latin, French, Russian, Spanish, Arabic, and Chinese." ;
  rdfs:range xsd:string .

obo:OMO_0003011 a rdf:Property ;
  rdfs:label "latin term" ;
  rdfs:comment "A synonym type for describing Latin term synonyms." ;
  rdfs:range xsd:string .

obo:OMO_0003012 a rdf:Property ;
  rdfs:label "acronym" ;
  rdfs:comment "A synonym type for describing abbreviations that are a part of the full name's words, such as initialisms or alphabetisms." ;
  rdfs:range xsd:string .

obo:OMO_0003014 a rdf:Property ;
  rdfs:label "has ontology hierarchical property" ;
  rdfs:comment "Relates an ontology to predicates/properties that should be used by user interfaces to render the hierarchical structure of the ontology. Typically, this is rdfs:subClassOf, but in ontologies that are partonomies, this might also include BFO:0000050 (part of). Tools like OLS can use predicates annotated with this property for rendering the ontology class hierarchy. There can be more than one hierarchical property. In the absence of any, it should be assumed that it is rdfs:subClassOf." ;
  rdfs:range xsd:string .

obo:OMO_0004000 a rdf:Property ;
  rdfs:label "has symbol" ;
  rdfs:comment "An information content entity that is a mark(s) or character(s) used as a conventional representation of another entity." ;
  rdfs:range xsd:string .

obo:IAO_0000078 a rdfs:Class ;
  rdfs:label "curation status specification"@en ;
  rdfs:comment "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 ;
  rdfs:subClassOf obo:IAO_0000102 .

obo:IAO_0000002 a obo:IAO_0000078 ;
  rdfs:label "example to be eventually removed"@en .

obo:IAO_0000120 a obo:IAO_0000078 ;
  rdfs:label "metadata complete"@en ;
  rdfs:comment "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 .

obo:IAO_0000121 a obo:IAO_0000078 ;
  rdfs:label "organizational term"@en ;
  rdfs:comment "The term was created to ease viewing/sorting terms for development purposes, but will not be included in a release."@en .

obo:IAO_0000122 a obo:IAO_0000078 ;
  rdfs:label "ready for release"@en ;
  rdfs:comment "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 .

obo:IAO_0000123 a obo:IAO_0000078 ;
  rdfs:label "metadata incomplete"@en ;
  rdfs:comment "Class is being worked on; however, the metadata (including definition) are not complete or sufficiently clear to the branch editors."@en .

obo:IAO_0000124 a obo:IAO_0000078 ;
  rdfs:label "uncurated"@en ;
  rdfs:comment "Nothing done yet beyond assigning a unique class ID and proposing a preferred term."@en .

obo:IAO_0000125 a obo:IAO_0000078 ;
  rdfs:label "pending final vetting"@en ;
  rdfs:comment "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 .

obo:IAO_0000423 a obo:IAO_0000078 ;
  rdfs:label "to be replaced with external ontology term"@en ;
  rdfs:comment "Terms with this status should eventually replaced with a term from another ontology."@en .

obo:IAO_0000428 a obo:IAO_0000078 ;
  rdfs:label "requires discussion"@en ;
  rdfs:comment "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 .

obo:IAO_0000225 a rdfs:Class ;
  rdfs:label "obsolescence reason specification"@en ;
  rdfs:comment "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 ;
  rdfs:subClassOf obo:IAO_0000102 .

obo:IAO_0000103 a obo:IAO_0000225 ;
  rdfs:label "failed exploratory term"@en ;
  rdfs:comment "The term was initially used in an attempt to structure part of the ontology, but in retrospect failed to do a good job."@en .

obo:IAO_0000226 a obo:IAO_0000225 ;
  rdfs:label "placeholder removed"@en ;
  rdfs:comment "The term was created to temporarily stand in for a semantic purpose, but is no longer needed, typically due to another permanent term being defined."@en .

obo:IAO_0000227 a obo:IAO_0000225 ;
  rdfs:label "terms merged"@en ;
  rdfs:comment "The term has been combined with one or more other terms to create a more encompassing (merged) term."@en .

obo:IAO_0000228 a obo:IAO_0000225 ;
  rdfs:label "term imported"@en ;
  rdfs:comment "The term has been replaced by a term imported from another ontology."@en .

obo:IAO_0000229 a obo:IAO_0000225 ;
  rdfs:label "term split"@en ;
  rdfs:comment "The term has been split into two or more new terms."@en .

obo:OMO_0001000 a obo:IAO_0000225 ;
  rdfs:label "out of scope" ;
  rdfs:comment "The term was added to the ontology on the assumption it was in scope, but it turned out later that it was not."@en .

obo:IAO_0000409 a rdfs:Class ;
  rdfs:label "denotator type"@en ;
  rdfs:comment "A denotator type indicates how a term should be interpreted from an ontological perspective."@en ;
  rdfs:subClassOf obo:IAO_0000102 .

obo:IAO_0000410 a obo:IAO_0000409 ;
  rdfs:label "universal"@en .

obo:IAO_0000420 a obo:IAO_0000409 ;
  rdfs:label "defined class"@en ;
  rdfs:comment "A defined class is a class that is defined by a set of logically necessary and sufficient conditions but is not a universal"@en .

obo:IAO_0000421 a obo:IAO_0000409 ;
  rdfs:label "named class expression"@en ;
  rdfs:comment "A named class expression is a logical expression that is given a name. The name can be used in place of the expression."@en .
