Hi, I am reading some materials about OWL and SWRL. The materials I read are SWRLLanguageFAQ and OWL 2 and SWRL Tutorial. In the SWRL LanguageFAQ, it mentioned that owl class expressions could be used in SWRL rules, especially the property cardinality restriction. For example,

(hasChild >= 1)(?x) ->  Parent(?x)

According to my understanding, this means all individuals that are members of an OWL class with the restriction that its hasChild property has a minimum cardinality of one are parents. If we have the following definition:

EquivalantClass(:Class1 ObjectMinCardinality(1 :hasChild :Person) )

For each individual of Class1, no matter whether it has the hasChild Property, it can be inferred as individual of Class Parent. For a class that has no such restriction, even its individual has the property hasChild, it can not be classified as individual of Parent. But I tried the example in OWL 2 and SWRL Tutorial. There's no restriction on Person Class, and there are three individuals Martin, Lenka and Ivan of Person. Martin and Lenka both hasChild Ivan. Use the SWRL rule mentioned above, Martin and Lenka are classified as individuals of Parent. Then I am quite confused. I tried to change the rule to

(hasChild =1)(?x) -> Parent(?x)

with ObjectExactCardinality, and it does not classify any more. I tried to change the rule to

(hasChild <=1)(?x) -> Parent(?x)

with ObjectMaxCardinality, and it does not classify again. Can someone explain why and help to understand property restriction in SWRL? Thanks in advance.

asked 04 Dec '12, 10:42

alexplorer's gravatar image

accept rate: 0%

edited 05 Dec '12, 19:37

Antoine%20Zimmermann's gravatar image

Antoine Zimm... ♦

Be the first one to answer this question!
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:


question asked: 04 Dec '12, 10:42

question was seen: 1,826 times

last updated: 06 Dec '12, 09:58