There exists rdfs:range and rdfs:domain. Is it also possible to say something like:

:domainOf owl:inverseOf rdfs:domain , to be able to state that a certain class is the domain of a certain property (here called :domainOf)? Same for rdfs:range.

Thank you very much in advance! DJ

asked 15 Dec '12, 08:11

benny222's gravatar image

accept rate: 0%

It could be possible if one could make statements about classes and use properties as objects. Why do you need this? Domains and ranges often are complex class expressions, not bare sets of classes.

(17 Dec '12, 03:55) utapyngo utapyngo's gravatar image

Well I would like to say that both the subject and the object, given a certain predicate, belong to the same class; now the built-ins rdfs:range and rdfs:domain come to mind, and especially their inverses, so to be able to say: The RANGE and DOMAIN of a certain PREDICATE must be the SAME. But probably DL wont allow it? So I must find an other way out?

(20 Dec '12, 08:41) benny222 benny222's gravatar image

This is an example of "syntax reflection" (and there are a couple of other terms around to refer to this). It's allowed syntactically in OWL Full, and the semantics of OWL Full supports it the way you expect. It also works under the OWL 2 RL/RDF rules, pD*, and many available RDF entailment rule reasoners, such as the Jena reasoner, or OWLIM (using pD* or the OWL 2 RL rules).

You can play around with it using Ivan Herman's online OWL RL reasoner .

However, it is not allowed in OWL DL or any of its profiles (syntax error). In fact, none of the OWL DL reasoners I know will provide results you might expect, although some OWL DL reasoners are flexible enough to read ontologies with such stuff without signaling an error.

Another, similar example is to build the inverse of rdf:type, which can be used, for example, to concisely list instances of a class in Turtle or RDF/XML:

:isTypeOf owl:inverseOf rdf:type .
:Country :isTypeOf :Argentina, :Belarus, :China, :Denmark, ...

It would be nice to be able to do this anonymously, instead, as in

    :Country [owl:inverseOf rdf:type] :Argentina, :Belarus, :China, :Denmark, ...

but that's not allowed in RDF, because blank nodes must not occur in predicate position. (On the other hand, anonymous inverse properties is something that actually is supported by OWL DL, when using the native OWL DL syntax, but then, it isn't allowed to use it with rdf:type, ah well...)

permanent link

answered 17 Dec '12, 04:32

Michael%20Schneider's gravatar image

Michael Schn... ♦
accept rate: 34%

edited 17 Dec '12, 04:34

I was already afraid it wont go, see my explanation above.

(20 Dec '12, 08:44) benny222 benny222'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: 15 Dec '12, 08:11

question was seen: 1,490 times

last updated: 20 Dec '12, 08:45