Search the web
Sign In
New User? Sign Up
jena-dev · Jena Developers
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Hear how Yahoo! Groups has changed the lives of others. Take me there.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
Still confused with reification (long).   Message List  
Reply | Forward Message #25769 of 42071 |
Re: Still confused with reification (long).

--- In jena-dev@yahoogroups.com, Dave Reynolds <der@...> wrote:
>
> Michael Schneider wrote:
> > --- In jena-dev@yahoogroups.com, Dave Reynolds <der@> wrote:

> >> In N3 this would then look like:
> >>
> >> :instX1 :haveA :instY2.
> >> _:s1 a rdf:Statement; rdf:subject :instX1;
> >> rdf:predicate :haveA; rdf:object :instY2 .
> >> _:s1 :isComment [a :Comment; dc:author "mike"; dc:date "..." etc].
> >
> > But what I see is that 'rdf:Reification'
>
> I think you mean 'rdf:Statement'
>
> > is not an owl:Class,
> > but an rdfs:Class. And so I would expect that it should not be allowed
> > within OWL-DL to construct statements like:
> >
> > _:s1 a rdf:Statement .
>
> Ah but an OWL reasoner doesn't know anything about rdf:Statement at all
> so just that model will validate as OWL/full because there is an
> undeclared class.

Oh, I see! Yes, there are several RDF constructs which OWL does not
know about, and rdf:{Statement|subject|predicate|object} are such
unknown things. I seem to had some hidden thinking that, because OWL
has some RDF syntax and is part of the semantic web language canon, it
should know about every RDF construct. But, of course, OWL only needs
to know those things of RDF which are necessary to capture OWL's
concepts. OWL is actually an ontology definition language on its own,
not really dependent on RDF. Easy to oversee...

> The trick you need to pull is to add:
>
> rdf:Statement a owl:Class .
>
> That validates with the WonderWeb online validator.
>
> [One could argue over just how Kosher that statement is but it's
> certainly true we only use rdf:Statement as if it were a class, not as
> an instance as well, so I see no fundamental problem with claiming that
> as far as an OWL reasoner is concerned.]

Uh, that really works! Great! :) (Well, I even thought of this myself for
a second when I wrote my last post, but I did not dare to follow this
thought, or even put it on a public mailing list. ;-) )

Ok, but this alone will not yet help to do reasonable things: In the
moment I create some reified statement, everything is again classified
as OWL-FULL. So the properties "rdf:subject", "rdf:predicate" and
"rdf:object" have to be introduced into the scope of OWL-DL, too. Of
course with an analogue trick as above. The problem is that one cannot
make them into ObjectPropertyS, because:

* the rdf:object of a rdf:Statement can be both an individual or a
literal;
* the rdf:predicate is not even an rdfs:Resource, but it's a
rdf:Property (can be at least both ObjectProperty or DatatypeProperty);
* even the rdf:subject can be something else than an individual,
e.g. an rdf:Statement itself (ok, we can make rdf:Statement a subclass
of owl:Thing, but I would like to investigate the consequences first,
before doing a second hack after that "a owl:Class")

So I think it's best [FIXME!] to make those properties into
owl:AnnotationPropertyS, in the way described in section 7.1 of the
OWL Language Reference:

http://www.w3.org/TR/owl-ref/#Annotations

I have attached a little example ontology doing this, and which
contains two reified statements: one containing an object property as
its predicate, and one containing a datatype property as its predicate
and a string as its object. This ontology is classified as OWL-LITE by
both Pellet and the WonderWeb validator.

> Try using: http://phoebus.cs.man.ac.uk:9999/OWL/Validator
> it gives useful explanations of why the species classification fails to
> turn out as you expect.

And the pellet "demo" (indeed a complete OWL validator with species
identification) does this, too (I just had forgotten about the
existence of this web site):

http://www.mindswap.org/2003/pellet/demo

Well, this site not only tells me what's actually wrong with my
ontology ("undefined class"), it even tells me what to do, to bring my
OWL file into DL conformance! A cool, error correcting feature. :)

Cheers,
Michael

------- DEMO: Reification in OWL-LITE -----

<?xml version="1.0"?>
<rdf:RDF
xmlns="http://www.ex.org/owl-refication.owl#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xml:base="http://www.ex.org/owl-refication.owl">

<owl:Ontology rdf:about=""/>

<!-- introducing reification into OWL -->

<owl:Class
rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"/>
<owl:AnnotationProperty
rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#subject"/>
<owl:AnnotationProperty
rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate"/>
<owl:AnnotationProperty
rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#object"/>

<!-- definitions of object property, datatype property and two
individuals -->

<owl:ObjectProperty rdf:ID="op"/>
<owl:DatatypeProperty rdf:ID="dp">
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
</owl:DatatypeProperty>
<owl:Thing rdf:ID="x1"/>
<owl:Thing rdf:ID="x2"/>

<!-- reified statement with object property -->

<rdf:Statement rdf:ID="op_stmt">
<rdf:subject rdf:resource="#x1"/>
<rdf:predicate rdf:resource="#op"/>
<rdf:object rdf:resource="#x2"/>
</rdf:Statement>

<!-- reified statement with datatype property -->

<rdf:Statement rdf:ID="dp_stmt">
<rdf:subject rdf:resource="#x1"/>
<rdf:predicate rdf:resource="#dp"/>
<rdf:object
rdf:datatype="http://www.w3.org/2001/XMLSchema#string">foo</rdf:object>
</rdf:Statement>

</rdf:RDF>





Mon Oct 16, 2006 4:21 pm

m_schnei1992
Offline Offline
Send Email Send Email

Forward
Message #25769 of 42071 |
Expand Messages Author Sort by Date

I use a OntModel; - 2 classes X and Y. - one property hasA that links X instances to Y instances. I have individuals: - 1 instance instX (of type X) - 1 instY...
Contact DaTao.net
olivier.rossel@...
Send Email
Oct 12, 2006
1:07 pm

... OK. (Shouldn't it be called `hasY`?) ... OK. ... What for? ... I don't know what "manage reification natively" means. ... I don't know, since I don't know...
Chris Dollin
kers_ihy
Offline Send Email
Oct 12, 2006
1:24 pm

Ok. So I will try to explain my model in a OWL manner. My model is described in OWL 1.0. The model is written by hand. The model is to be loaded by Jena, and...
Contact DaTao.net
olivier.rossel@...
Send Email
Oct 12, 2006
2:28 pm

... It turns out, I was wrong to suggest that using the reification vocabulary puts you outside OWL/DL into OWL/full. Sorry about that. Because RDF doesn't...
Dave Reynolds
derihy
Offline Send Email
Oct 12, 2006
8:15 pm

[I stared to reply to this, but must have hit send by accident halfway through and the mail got lost. I mention this in case you end up with two responses, one...
Dave Reynolds
derihy
Offline Send Email
Oct 12, 2006
8:53 pm

... put ... But is this really the case? First, I want to mention that I read the section in OWL-Semantics cited by you above and find it a little vague, so I...
Michael Schneider
m_schnei1992
Offline Send Email
Oct 13, 2006
2:44 pm

... I think you mean 'rdf:Statement' ... Ah but an OWL reasoner doesn't know anything about rdf:Statement at all so just that model will validate as OWL/full...
Dave Reynolds
derihy
Offline Send Email
Oct 13, 2006
3:17 pm

... Oh, I see! Yes, there are several RDF constructs which OWL does not know about, and rdf:{Statement|subject|predicate|object} are such unknown things. I...
Michael Schneider
m_schnei1992
Offline Send Email
Oct 16, 2006
4:30 pm

... No, it is rather different from that. Because OWL is *encoded* in RDF there are a lot of restrictions on where you can use RDF constructs for fear of their...
Dave Reynolds
derihy
Offline Send Email
Oct 16, 2006
7:22 pm

... Chris is right to point out the ambiguity in your specification but assuming you really do mean to annotate the relationships then yes you would have to...
Dave Reynolds
derihy
Offline Send Email
Oct 12, 2006
3:15 pm
Advanced

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help