Meaning of OWL exact cardinality restrictions

2019-04-16 09:19发布

I am a newbie coding with the Manchester syntax for OWL. I need to understand the role of exactly. Which of these restrictions is correct:

(hasChild (A or B)) and (hasChild exactly 1 Thing)
(hasChild (A or B)) and (hasChild exactly 2 Thing)
(hasChild (A and B)) and (hasChild exactly 1 Thing)
(hasChild (A and B)) and (hasChild exactly 2 Thing)

Can you explain it when A and B are equivalent, and when they are disjoint?

1条回答
对你真心纯属浪费
2楼-- · 2019-04-16 09:47

The meaning of class expressions is defined in section 2.2.3 Class Expressions of the OWL 2 Web Ontology Language Direct Semantics W3C recommendation.

The four class expressions given in the question aren't quite well formed, as I understand the Manchester OWL syntax, as hasChild (A or/and B) really needs to be hasChild some/only (A or/and B). That said, we can still discuss the meaning of the various combinations.

Exact Cardinality Restrictions

The restrictions hasChild exactly 1 Thing and hasChild exactly 2 Thing denote the classes of individuals which are related to exactly one or two other individuals by the hasChild property, respectively. Since the class expression in the restriction is Thing, it is probably more common to see the versions without a class: hasChild exactly 1 and hasChild exactly 2.

Universal or AllValuesFrom Restrictions

The expression hasChild only X denotes the class of individuals which are such that if they are related to any other individual by the hasChild property, then the other individual is an instance of X. It does not impose any constraint that there are such individuals, but only that if there are any, then they must be Xs.

Existential or SomeValuesFrom Restrictions

The expression hasChild some X denotes the class of individuals which are related to at least one other individual that is an X by the hasChild property. It does not impose any constraint that every other individual related by the hasChild is an X, just that at least one is.

The meaning of the expressions

The class expressions in the problem aren't well formed at the moment, and should either be hasChild some (A or/and B) or hasChild only (A or/and B). This means that there are a number of cases to consider, but fortunately some of them condense down.

If A and B are equivalent

If A and B are equivalent, then both (A or B) and (A and B) are equivalent to A and to B. This means that the expressions in the question can be simplified into two cases, depending on whether the restriction on the left hand side should be some or only.

  • (hasChild some A) and (hasChild exactly 1 Thing)
    This class expression denotes the class of individuals which are related by the hasChild property to at least one individual of type A, and that are related to exactly one other individual by the hasChild property (and by the left side, that one individual must be that individual of type A).

  • (hasChild some A) and (hasChild exactly 2 Thing)
    This class expression denotes the class of individuals which are related by the hasChild property to at least one individual of type A, and that are related to exactly two individuals by the hasChild property (and by the left side, one of these individuals must that individual of type A).

  • (hasChild only A) and (hasChild exactly 1 Thing)
    This class expression denotes the class of individuals which are related by the hasChild property only to individuals of type A, and that are related to exactly one other individual by the hasChild property (and by the left side, that one individual must be of type A).

  • (hasChild only A) and (hasChild exactly 2 Thing)
    This class expression denotes the class of individuals which are related by the hasChild property to some individual of type A, and that are related to exactly two individuals by the hasChild property (and by the left side, both of these individuals must that individual of type A).

If A and B are disjoint

If A and B are disjoint, then the class expression A and B denotes the empty class, since nothing can be both an A and a B. That means that that four of the cases are unsatisfiable.

The cases that involve hasChild some (A and B) are unsatisfiable, because there are no A and Bs for anything to be related to. There are two such cases:

(hasChild some (A and B)) and (hasChild exactly 1 Thing)
(hasChild some (A and B)) and (hasChild exactly 2 Thing)

The combination of only (A and B) and exactly n is unsatisfiable, since (as long as n is not 0), it says that an individual must be related to exactly n things, and that each of those n things must be an A and B (of which there can be none. There are two such cases:

(hasChild only (A and B)) and (hasChild exactly 1 Thing)
(hasChild only (A and B)) and (hasChild exactly 2 Thing)

The remaining cases are all fairly straightforward, given the meaning of some and only. Though there are four class expressions, there are only two distinct classes.

(hasChild only (A or B)) and (hasChild exactly 1 Thing)
(hasChild some (A or B)) and (hasChild exactly 1 Thing)

This is the class of things that have exactly one child, which must be an A or a B.

(hasChild only (A or B)) and (hasChild exactly 2 Thing)
(hasChild some (A or B)) and (hasChild exactly 2 Thing)

This is the class of things that have exactly two children, each of which must be an A or a B.

查看更多
登录 后发表回答