I find that OWL 2 RL/RDF rules can only reason over hasKey (using prp-key) when there are multiple keys defined for a class (in a list). Then it seems to me they cannot handle the case when there is only one key. For example, according to my understanding they can not deduce from the premises the conclusion given below:


classAssertion (Student studentA)
classAssertion (Student studentB)
hasKey (Student (studentNo))
DataPropertyAssertion (studentA studentNo "1")
DataPropertyAssertion (studentB studentNo "1")


studentA sameAs studentB

Did I miss any details on OWL 2 RL/RDF rules or they indeed deliberately skipped this type of reasoning?

asked 28 Jan '13, 13:09

weimust's gravatar image

accept rate: 0%

edited 28 Jan '13, 17:18

Signified's gravatar image

Signified ♦

Yup, as Antoine says, the conclusion you expect holds. How did you come to the conclusion that OWL 2 RL/RDF doesn't allow this?

(28 Jan '13, 17:20) Signified ♦ Signified's gravatar image

Thanks Signified, please see the comment to Antoine's answer.

(28 Jan '13, 17:59) weimust weimust's gravatar image

The rule indicates the following:

if I have the pattern

T(?c, owl:hasKey, ?u)
LIST[?u, ?p1, ..., ?pn]
T(?x, rdf:type, ?c)
T(?x, ?p1, ?z1)
T(?x, ?pn, ?zn)
T(?y, rdf:type, ?c)
T(?y, ?p1, ?z1)
T(?y, ?pn, ?zn)

then the following conclusion holds:

T(?x, owl:sameAs, ?y)

The case you describe in your question is for n = 1, that is:

T(?c, owl:hasKey, ?u)
LIST[?u, ?p1]
T(?x, rdf:type, ?c)
T(?x, ?p1, ?z1)
T(?y, rdf:type, ?c)
T(?y, ?p1, ?z1)

So the conclusion indeed holds.

permanent link

answered 28 Jan '13, 14:00

Antoine%20Zimmermann's gravatar image

Antoine Zimm... ♦
accept rate: 34%

Thank you Antoine for your answer. Does that imply hasKey has a range of rdf:List? I came to this doubt because I did not see anywhere (maybe because of my bad searching skill) defined that hasKey had a range as rdf:List, so I supposed that for cases with only a single key (as the example I given above) it was more straight-forward to write it directly as the value of hasKey rather than using a list containing only single element, which is not supported by prp-key.

(28 Jan '13, 17:58) weimust weimust's gravatar image

@weitai, yup, it has to be a list. You can create a list with a single member in your case.

(28 Jan '13, 20:09) Signified ♦ Signified's gravatar image
Your answer
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: 28 Jan '13, 13:09

question was seen: 1,733 times

last updated: 28 Jan '13, 20:09