AllFemaleGame is a class that corresponds to the class of every game whose players and observers are all women.
Classes:
Declaration(Class(ns:Game))
Declaration(Class(ns:Person))
Declaration(Class(ns:Female))
Declaration(Class(ns:Observer))
SubClasses:
SubClassOf(ns:Female ns:Person)
Object Properties:
ObjectProperty(ns:isPlayerOf)
ObjectPropertyDomain(ns:isPlayerOf ns:Person)
ObjectPropertyRange(ns:isPlayerOf ns:Game)
EquivalentClasses(m:AllFemaleGame ObjectIntersectionOf(m:Game ObjectAllValuesFrom(m:isPlayerOf m:Female) ObjectAllValueFrom(m:isObserverOf m:Female)))
Am I doing it correctly?
The class expression ObjectAllValuesFrom(m:isPlayerOf m:Female)
describes the things x such that if x m:isPlayerOf
y, then y is m:Female
. Moreover, the domain of m:isPlayerOf
is m:Person
, and the range is m:Game
, so if such a y existed, then x would be a person, and y a game. It seems you have it in the wrong direction. Try this:
EquivalentClasses(
m:AllFemaleGame
ObjectIntersectionOf(
m:Game
ObjectAllValuesFrom(ObjectInverseOf(m:isPlayerOf) m:Female)
ObjectAllValueFrom(ObjectInverseOf(m:isObserverOf) m:Female)
)
)
Note that this class also contains games that do not have players or observers.