macro_rules! doc (
    (DisjointClasses) => { "A disjoint relationship between two `ClassExpression`\n\nNo instance of one `ClassExpression` can also be an instance\nof any of the others." };
    (Class) => { "A named class" };
    (ObjectPropertyRange) => { "The range of the object property.\n\nThis states that if an individual `i` is connected to be the\nrelationship `ope`, then it is an individual of `ce`.1\n\nSee also: [Domain](https://www.w3.org/TR/owl2-syntax/#Object_Property_Range)" };
    (DeclareClass) => { "Declares that an IRI represents a Class in the Ontology\n\nIn OWL, entities must be declared to be of a particular\ntype. While, OWL (and Horned-OWL) allows the use of Class in\nan ontology where there is no declaration, the end ontology\nwill change profile to OWL Full.  See also the [OWL\nPrimer](https://www.w3.org/TR/2012/REC-owl2-primer-20121211/#Entity_Declarations)" };
    (ObjectPropertyAssertion) => { "An object property assertion.\n\nIndividual `from` is connected `to` by `ope`.\n\nSee also: [Positive Object Property Assertions](https://www.w3.org/TR/owl2-syntax/#Positive_Object_Property_Assertions)" };
    (DataPropertyAssertion) => { "A data property assertion.\n\nIndividual `from` is connected `to`` literal by `dp`.\n\nSee also: [Data Property Assertion](https://www.w3.org/TR/owl2-syntax/#Positive_Data_Property_Assertions)" };
    (FunctionalObjectProperty) => { "The functional characteristic.\n\nThis states that if for a given individual `i`, there can be\nonly one individual `j` connected to `i` by this object\nproperty expression.\n\nSee also: [Functional](https://www.w3.org/TR/owl2-syntax/#Functional_Object_Properties)" };
    (DataMinCardinality) => { "A minimum cardinality restriction\nThe class of individuals have at least `n` relationships of\nthe kind `dp` to a given data range `dr`.\nSee also [Min Cardinality](https://www.w3.org/TR/owl2-syntax/#Minimum_Cardinality_2)" };
    (NamedIndividual) => { "An OWL\n[NamedIndividual](https://www.w3.org/TR/2012/REC-owl2-primer-20121211/#Classes_and_Instances)\nis an individual in the ontology which is specifically known\nabout and can be identified by name." };
    (ClassExpression) => { "A class expression\n\nAs well as a named class, it is possible to define classes of\nindividuals based on these class constructors." };
    (EquivalentObjectProperties) => { "An equivalent object properties relationship.\n\nStates that two object properties are semantically identical\nto each other." };
    (DataMaxCardinality) => { "A max cardinality restriction\nThe class of individuals have at most `n` relationships of\nthe kind `dp` to a given data range `dr`.\nSee also [Max Cardinality](https://www.w3.org/TR/owl2-syntax/#Maximum_Cardinality_2)" };
    (HasKey) => { "A key\n\nAn individual `i` which is of type `ce` can be uniquely\nidentified by `pe`. Keys can only be applied to individuals\nwhich are explicitly named in the ontology, not those that are\ninferred.\n\nSee also: [Keys](https://www.w3.org/TR/owl2-syntax/#Keys)" };
    (ObjectHasValue) => { "An existential relationship to an individual\n\nThis is the class of individuals `c` which have the\nrelationship `o` to another individual `i`. Every individual\nin `c` must have this relationship to the individual `i`" };
    (InverseObjectProperties) => { "An inverse relationship between two object properties.\n\nIf two individuals are related by one relationship, they are\nrelated by the other in the opposite direction. So, if `r` and\n`s` are transitive, then `a r b` implies `b r a`.\n\nSee also: [Property Characteristics](https://www.w3.org/TR/2012/REC-owl2-primer-20121211/#Property_Characteristics)" };
    (SubAnnotationPropertyOf) => { "An sub-property assertion for annotation properties.\n\nImplies that any annotation of the type `sub_property` is also\nan annotation of the type `super_property`." };
    (AsymmetricObjectProperty) => { "The asymmetric characteristic.\n\nif an individual `i` is connected to `j` by this\nObjectPropertyExpression, then `j` cannot be connected to `i`\nby the ObjectPropertyExpression.\n\nSee also: [Asymmetric](https://www.w3.org/TR/owl2-syntax/#Asymmetric_Object_Properties)" };
    (OntologyID) => { "An ontology identifier\n\nAn ontology is identified by an IRI which is expected to remain\nstable over the lifetime of the ontology, and a version IRI which\nis expected to change between versions." };
    (ObjectPropertyExpression) => { "A object property expression" };
    (SubObjectPropertyExpression) => { "A sub-object property expression" };
    (IRI) => { "An\n[IRI](https://en.wikipedia.org/wiki/Internationalized_Resource_Identifier)\nis an internationalized version of an URI/URL.\n\nHere, we represent it as a simple string. In Horned-OWL IRIs are\ncreated through `Build`; this caches the underlying String meaning\nthat IRIs are light-weight to `clone`." };
    (SubObjectPropertyOf) => { "A sub property relationship between two object properties.\n\nThe existance of the sub property relationship between two\nindividuals also implies the super property relationship\nalso. The super property can also be a property chain.\nSo, if `s` is a super property of `r` then `a r b` implies `a\ns b`.\n\nSee also: [Property Hierarchies](https://www.w3.org/TR/2012/REC-owl2-primer-20121211/#Property_Hierarchies)\nSee also: [Property Chains](https://www.w3.org/TR/2012/REC-owl2-primer-20121211/#Property_Chains)" };
    (NegativeDataPropertyAssertion) => { "A negative data property assertion.\n\nIndividual `from` is not connected `to` literal by `dp`.\n\nSee also [Negative Data Property Assertions](https://www.w3.org/TR/owl2-syntax/#Negative_Data_Property_Assertions)" };
    (ObjectAllValuesFrom) => { "A universal relationship\n\nThis is the anonymous class of individuals `i` where all\nindividuals which are related by `o` are instances of\n`ce`. This does not imply that the `i` necessarily has any\nrelation `r`." };
    (OntologyAnnotation) => { "An annotation associated with this Ontology" };
    (AnnotatedAxiom) => { "An `AnnotatedAxiom` is an `Axiom` with one orpmore `Annotation`." };
    (ObjectUnionOf) => { "The boolean or\n\nThe class of individuals which are individuals of any of these\nclasses." };
    (ClassAssertion) => { "A class assertion expression.\n\nStates that `i` is in class `ce`.\n\nSee also: [Class Assertions](https://www.w3.org/TR/owl2-syntax/#Class_Assertions)" };
    (ReflexiveObjectProperty) => { "The reflexive characteristic\n\nEvery individual that is connected via the\nObjectPropertyExpression is connected to itself.\n\nSee also: [Reflexive](https://www.w3.org/TR/owl2-syntax/#Reflexive_Object_Properties)" };
    (ObjectExactCardinality) => { "An exact cardinality relationship between individuals\n\nGiven an object property `o` and a class `ce`, this describes\nthe class of individuals which have the `o` relationship to exactly\n`n` other individuals." };
    (DataExactCardinality) => { "An exact cardinality restriction\nThe class of individuals have exactly `n` relationships of\nthe kind `dp` to a given data range `dr`.\nSee also [Exactly Cardinality](https://www.w3.org/TR/owl2-syntax/#Exact_Cardinality_2)" };
    (IrreflexiveObjectProperty) => { "The irreflexive characteristic\n\nNo individual can be connected to itself by this property.\n\nSee also: [Irreflexive](https://www.w3.org/TR/owl2-syntax/#Irreflexive_Object_Properties)" };
    (PropertyExpression) => { "A property expression" };
    (SubClassOf) => { "A subclass relationship between two `ClassExpression`.\n\nAll instances of `sub_class` are also instances of\n`super_class`." };
    (DeclareDataProperty) => { "Declares that an IRI represents a DataProperty in the\nontology.\n\nSee also [`DeclareClass`](struct.DeclareClass.html)" };
    (DataPropertyDomain) => { "The domain of a DataProperty.\n\nIf an individual `i` has a relationship `dp` then `i` must be\nof type `ce`.\n\nSee also: [Data Property Domain](https://www.w3.org/TR/owl2-syntax/#Disjoint_Data_Properties)" };
    (NegativeObjectPropertyAssertion) => { "A negative object property assertion.\n\nIndividual `from` is not connected `to` by `ope`\n\nSee also: [Negative Object Property Assertions](https://www.w3.org/TR/owl2-syntax/#Negative_Object_Property_Assertions)" };
    (AnnotationValue) => { "The value of an annotation\n\nThis Enum is currently not complete." };
    (DisjointUnion) => { "A disjoint union expression between one `ClassExpression` and\na set of others.\n\nSee also: https://www.w3.org/TR/owl2-syntax/#Disjoint_Union_of_Class_Expressions" };
    (DifferentIndividuals) => { "A different individuals expression.\n\nSee also: [Individual Inequality](https://www.w3.org/TR/owl2-syntax/#Individual_Inequality)" };
    (DatatypeDefinition) => { "Defintion of a datatype.\n\nSee also: [Datatype Definitions](https://www.w3.org/TR/owl2-syntax/#Datatype_Definitions)" };
    (Datatype) => { "An OWL\n[Datatype](https://www.w3.org/TR/owl2-primer/#Datatypes) is a\nspecific kind of data, such as an integer, string or so forth." };
    (AnnotationPropertyDomain) => { "Assert the domain of an `AnnotationProperty`" };
    (DeclareNamedIndividual) => { "Declare that an IRI represents a NamedIndividual in the\nontology.\n\nSee also [`DeclareClass`](struct.DeclareClass.html)" };
    (DeclareObjectProperty) => { "Declares that an IRI represents an ObjectProperty in the\nOntology.\n\nSee also [`DeclareClass`](struct.DeclareClass.html)" };
    (EquivalentClasses) => { "An equivalance relationship between two `ClassExpression`.\n\nAll instances of `ClassExpression` are also instances\nof other other." };
    (Annotation) => { "Data associated with a part of the ontology.\n\nAnnotations are associated an IRI and describe that IRI in a\nparticular way, defined by the property." };
    (ObjectOneOf) => { "An enumeration of individuals\n\nThis is the class containing exactly the given set of\nindividuals." };
    (DeclareAnnotationProperty) => { "Declares that an IRI represents an AnnotationProperty in the\nOntology.\n\nSee also [`DeclareClass`](struct.DeclareClass.html)" };
    (NamedEntity) => { "An OWL entity that is directly resolvable to an IRI\n\nAll variants in this enum are named after the struct\nequivalent form. The individual structs for each variant\nprovide us types for use elsewhere in the library." };
    (Axiom) => { "An axiom\n\nThis enum has variants representing the various kinds of\nAxiom that can be found in an OWL Ontology. An OWL axiom\nmaps to three different entities in Horned-OWL. First is a\nstruct (for example, `SubClassOf`) which contains the data\nwhich defines the axiom (i.e. super and sub class for\n`SubClassOf`). Second, is a variant of the `AxiomKind`,\nwhich is used to identify all instances of a particular\nkind of axiom (i.e. any `SubClassOf` axiom will return an\ninstance of AxiomKind::SubClassOf). Finally, we have a\nvariant of this enum, which contains one of the structs\n(i.e. Axiom::SubClassOf(SubClassOf)), which is used as a union\ntype for all structs. The struct and enum variants all\nshare identical names." };
    (AnnotationPropertyRange) => { "Assert the range of an `AnnotationProperty`" };
    (InverseFunctionalObjectProperty) => { "The inverse functional characteristic\n\nThis states that for each individual `i`, there can be at most\none individual `j` connected to `i` via this object property\nexpression.\n\nSee also: [Inverse Functional](https://www.w3.org/TR/owl2-syntax/#Inverse-Functional_Object_Properties)" };
    (ObjectSomeValuesFrom) => { "An existential relationship\n\nThis is the anonymous class of individuals `i`, which have the\nrelationship `o` to a class expression `ce`. Every individual\nin `i` must have this relationship to one individual in `ce`." };
    (DataAllValuesFrom) => { "A universal relationship.\n\nThis is the anonymous class of individuals `i` which if they\nhave a relationship `dp` to some data, then that must be of\ntype `dr`.\n\nSee also [Universal Quantification](https://www.w3.org/TR/owl2-syntax/#Universal_Quantification_2)" };
    (ObjectPropertyDomain) => { "The domain of the object property.\n\nThis states that if an individual `i` has an relationship,\n`ope` to any other individual, then the individual `i` is an\ninstances of `ce`\n\nSee also: [Domain](https://www.w3.org/TR/owl2-syntax/#Object_Property_Domain)" };
    (Build) => { "`Build` creates new `IRI` and `NamedEntity` instances.\n\nThere is caching for performance. An `IRI` or `NamedEntity` with a\ngiven IRI will use the same string in memory, if they have been\ncreated with the same builder. Equality, ordering and hashing is\nconserved across different `Build` instances, so entities from\ndifferent instances can be combined within a single ontology\nwithout consequences except for increased memory use." };
    (AnnotationProperty) => { "An OWL\n[AnnotationProperty](https://www.w3.org/TR/2012/REC-owl2-primer-20121211/#Document_Information_and_Annotations)\nis a relationship between a part of an ontology and an\n`Annotation`.\n\nThe `Annotation` describes that part of the ontology. It is\nnot part of the description of the world, but a description of\nthe ontology itself." };
    (DisjointObjectProperties) => { "A disjoint object property relationship.\n\nThis states that is an individual is connected by one of these\nobject properties, it cannot be connected by any of the others." };
    (ObjectIntersectionOf) => { "The boolean and\n\nThe class of individuals which are individuals of all these\nclasses." };
    (ObjectMaxCardinality) => { "A max cardinality relationship between individuals\n\nGiven an object property `o` and a class `ce`, this describes\nthe class of individuals which have the `o` relationship to at\nmost `n` other individuals." };
    (DataHasValue) => { "A has-value relationship.\nThis is the class of individuals, `i`, which have the\nrelationship `dp` to exactly the literal `l`.\nSee also [Value Restriction](https://www.w3.org/TR/owl2-syntax/#Literal_Value_Restriction)" };
    (SubDataPropertyOf) => { "A sub data property relationship.\n\nThe existence of the `sub_property` relationship also implies\nthe existence of the `super_property`.\n\nSee also: [Data Subproperties](https://www.w3.org/TR/owl2-syntax/#Data_Subproperties)" };
    (TransitiveObjectProperty) => { "A transitive relationship between two object properties.\n\nWhen `r` is transitive, then `a r b`, and `b r c` implies `a r\nc` also.\n\nSee also: [TransitiveObjectProperty](https://www.w3.org/TR/owl2-syntax/#Transitive_Object_Properties)" };
    (ObjectProperty) => { "An OWL\n[ObjectProperty](https://www.w3.org/TR/2012/REC-owl2-primer-20121211/#Object_Properties)\nis a relationship between two individuals.\n\nAlthough the relationship is between individuals, it is most\noften expressed as a relationship between two classes. See\n`ClassExpression` for more information." };
    (ObjectMinCardinality) => { "A min cardinality relationship between individuals\n\nGiven an object property `o` and a class `ce`, this describes\nthe class of individuals which have the `o` relationship to at\nleast `n` other individuals." };
    (AxiomKind) => { "Contains all different kinds of axiom\n\nVariants of this C-style enum represent all of the\ndifferent axioms that can exist in the ontology. Instances\nof this enum are returned by all `Axiom` and other\nentities as part of the `Kinded` trait.\nSee also `Axiom` which is a Enum whose variants take\ninstances of the `Axiom`" };
    (DataSomeValuesFrom) => { "An exististential relationship.\n\nThis is the anonymous class of individuals `i` which have the\nrelationship `dp` to the data range, `dr`. Every individual\n`i` must have this relationship to data constrainted by `dr`.\n\nSee also: [Existential Quantification](https://www.w3.org/TR/owl2-syntax/#Existential_Quantification_2)" };
    (AnnotationAssertion) => { "An annotation assertion axiom\n\nStates that `annotation` applies to the\n`annotation_subject`. Annotations refer to an `IRI` rather\nthan the `NamedEntity` identified by that `IRI`." };
    (DataProperty) => { "An OWL\n[DataProperty](https://www.w3.org/TR/2012/REC-owl2-primer-20121211/#Datatypes)\nis a relationship between part of an ontology and some\nconcrete information." };
    (DataPropertyRange) => { "The range of a DataProperty.\n\nIf in individual `i` has a relationship `dp` with some literal\n`l`, then `l` must by in `dr`.\n\nSee also: [Data Property Range](https://www.w3.org/TR/owl2-syntax/#Data_Property_Range)" };
    (EquivalentDataProperties) => { "An equivalent data property relationship.\n\nAll these DataProperties are semantically identical.\n\nSee also: [EquivalentDataproperties](https://www.w3.org/TR/owl2-syntax/#Equivalent_Data_Properties)" };
    (DisjointDataProperties) => { "A disjoint data property relationship.\n\nNo individual can be connected to a data property expression\nby more than one of these DataProperty relations.\n\nSee also: [DisjointDataProperties](https://www.w3.org/TR/owl2-syntax/#Disjoint_Data_Properties)" };
    (ObjectComplementOf) => { "The boolean not\n\nThe class of individuals which are not individuals of any of\nthese classes." };
    (SymmetricObjectProperty) => { "The symmetric characteristic\n\nIf an individual `i` is connected to `j` by this\nObjectPropertyExpression, then `j` is also connected by `i`\nSee also: [Symmetric](https://www.w3.org/TR/owl2-syntax/#Symmetric_Object_Properties)" };
    (SameIndividual) => { "A same individual expression.\n\nSee also: [Individual Equality](https://www.w3.org/TR/owl2-syntax/#Individual_Equality)" };
    (DeclareDatatype) => { "Declare that an IRI represents a Datatype in the ontology.\n" };
    (FunctionalDataProperty) => { "The functional DataProperty characteristic.\n\nAny individual `i` can only be connected to a single literal\nby this DataProperty.\n\nSee also: [Functional Data Property]:(https://www.w3.org/TR/owl2-syntax/#Functional_Data_Properties)" };
    (Import) => { "Declares that an IRI is an import of this ontology" };
    (ObjectHasSelf) => { "The class of individuals which have a relation to themselves\n\nGiven a object property `r`, this class defines all the\nindividuals where `i r i`." };
    ($t:ident) => {""}
);
