I am half way reading the OWL2 primer and is having problem understanding the universal quantification
The example given is
EquivalentClasses(
:HappyPerson
ObjectAllValuesFrom( :hasChild :HappyPerson )
)
It says somebody is a happy person exactly if all their children are happy persons. But what if John Doe has no children can he be an instance of HappyPerson? What about his parent?
I also find this part very confusing, it says:
Hence, by our above statement, every childless person would be qualified as happy.
but wouldn’t it violate the ObjectAllValuesFrom() constructor?
I think the primer actually does quite a good job at explaining this, particularly the following:
To simplify this a bit further, consider the expression you’ve given:
HappyPerson ≡ ∀ hasChild . HappyPersonThis says that a
HappyPersonis someone who only has children who are alsoHappyPerson(are also happy). Logically, this actually says nothing about the existence of instances of happy children. It simply serves as a universal constraint on any children that may exist (note that this includes any instances ofHappyPersonthat don’t have any children).Compare this to the existential quantifier, exists (∃):
HappyPerson ≡ ∃ hasChild . HappyPersonThis says that a
HappyPersonis someone who has at least one child that is also aHappyPerson. In constrast to (∀), this expression actually implies the existence of a happy child for every instance of aHappyPerson.The answer, albeit initially unintuitive, lies in the interpretation/semantics of the
ObjectAllValuesFromOWL construct in first-order logic (actually, Description Logic). Fundamentally, theObjectAllValuesFromconstruct relates to the logical universal quantifier (∀), and theObjectSomeValuesFromconstruct relates to the logical existential quantifier (∃).