If you care about what the OWL spec says and don't want to write
something invalid (or inconsistent), you first have to distinguish
between OWL DL and OWL Full.
In OWL Full, everything is an instance of owl:Thing. Classes,
Properties, Literals, Datatypes, etc are instances of owl:Thing. Even
owl:Thing itself is an instance of owl:Thing. That is to say that
owl:Thing is equivalent to rdfs:Resource. So, owl:sameAs can be used for
anything.
Which does not mean that it should!
In OWL DL, there are restrictions but since OWL 2 is standard, it's been
more complicated. owl:Thing does not contain classes. So, in principle,
owl:sameAs must not be used to relate an individual to a class. But OWL
2 introduced the idea of "punning" which says that you can use a *class
name* as an *individual name*. So, for example, this is legal in OWL 2
DL (Turtle syntax):
:c a owl:Class .
:x a :c .
:x owl:sameAs :c .
The fact is that :c on line 2 is a class, while :c on line 3 is an
individual. Morever, :c on line 2 and :c on line 3 have absolutely no
semantic relationship. They simply have the same name.
But again, it's not because it's allowed that it is necessarily good.
Now, if you really *need* to say that :a owl:sameAs :b, then by all
means do. But remember that this means that :a and :b *is* only one
individual. If you don't need to assert this identity, maybe it's better
using something like skos:exactMatch.
If your application does not treat owl:sameAs in any special way (e.g.,
you use an OWL reasoner, or you display the owl:sameAs link in a special
way) then you really don't need owl:sameAs. If you are doing something
special for the owl:sameAs predicate, you have to be conscious of the
implications.
In any case, there is no problem having a skos:Concept of type owl:Thing
in either OWL DL or OWL Full. A skos:Concept is not necessarily a class.
AZ
Le 07/03/2012 07:43, Sarven Capadisli a écrit :
Hi,
I'm sure this is talked somewhere, I'd love a pointer if you know any:
I often see resources of type owl:Class get paired with resources of
type owl:Thing using owl:sameAs. As far as I understand, this is
incorrect since domain and range of owl:sameAs should be owl:Thing.
I'm tempted to change my resource that is a skos:Concept
skos:exactMatch'ed with a resource of type owl:Thing, and use
owl:sameAs. Sort of like "everyone else is doing it, it should be
okay",
and "don't need to fear the thought police".
However, I don't wish to do that with a clear conscience, hence, I'd
appreciate it if anyone can shed some light here for me and help me
understand to make an informed decision based on reason (no pun
intended).
Related to this, I was wondering whether it makes sense to claim a
resource to be of type owl:Class as well as of type owl:Thing, where
may
be appropriate, or one could get away with it e.g., a country. If this
is okay, I imagine it is okay to use owl:sameAs for the subject at hand
and point to yet another thing.
Thanks all.
-Sarven