FunctionalObjectProperty

class FunctionalObjectProperty(object_property_expression: ObjectPropertyExpression | URIRef | Reference | Referenced | str | IdentifierBox, *, annotations: list[Annotation] | None = None)[source]

Bases: _UnaryObjectProperty

An object property axiom defined in 9.2.7 “Functional Object Properties”.

Consider the ontology consisting of the following axioms.

>>> FunctionalObjectProperty("a:hasFather")  # Each object can have at most one father.
>>> ObjectPropertyAssertion("a:hasFather", "a:Stewie", "a:Peter")  # Peter is Stewie's father.
>>> ObjectPropertyAssertion(
...     "a:hasFather", "a:Stewie", "a:Peter_Griffin"
... )  # Peter Griffin is Stewie's father.

By the first axiom, a:hasFather can point from a:Stewie to at most one distinct individual, so a:Peter and a:Peter_Griffin must be equal; that is, this ontology entails the following assertion:

>>> SameIndividual(["a:Peter", "a:Peter_Griffin"])

One might expect the previous ontology to be inconsistent, since the a:hasFather property points to two different values for a:Stewie. OWL 2, however, does not make the unique name assumption, so a:Peter and a:Peter_Griffin are not necessarily distinct individuals. If the ontology were extended with the following assertion, then it would indeed become inconsistent:

>>> DifferentIndividuals(["a:Peter", "a:Peter_Griffin"])

Initialize a unary object property axiom.

Attributes Summary

property_type

Attributes Documentation

property_type: ClassVar[URIRef] = rdflib.term.URIRef('http://www.w3.org/2002/07/owl#FunctionalProperty')