Re[2]: Reifying triples as unique URIs

Hi Christian, here I clarify my idea:

>> e.g.
>> (a,x,c)
>> (x, rdfs:subPropertyOf, foaf:knows)
>> (a,y,c)
>> (y, rdfs:subPropertyOf, foaf:knows)
>>
>> an then we can add
>> x hasHappendenIn :Kindergarten
>> and they got sepratated and years later they met again
>> y hasHappendedIn :HighSchool
>> - you get the example I hope.
>>
> I don't like the approach and I think it is in some way conceptually
> incorrect.
> If you specilize  a property (e.g. reads_at_my_desk     
> rdfs:subPropertyOf     reads) and then make some statement about it 
> (e.g. reads_at_my_desk   ex:happens_in   ex:my_office) than you are 
> reifing the act of reading something sitting at my desk but  not the 
> statement in which teh property is used...
> if I say

> ex:christian       ex:reads_at_my_desk         ex:paper_1
> ex:john            ex:reads_at_my_desk         ex:paper_2

I propose to do

ex:christian       ex:876587658         ex:paper_1
ex:john            ex:287682822         ex:paper_2

and also say:
ex:876587658       rdfs:subPropertyOf  ex:read

so we entail
ex:christian       ex:read             ex:paper_1
which is good for simple queries (who read what?)

Conceptually,  this  says  that christian has a very particular way of
reading  paper1.  In  fact I propose to never use the URI ex:876587658
for any other triple on earth ever again.
So I have pretty high costs of managing URIs.

Now  I  can (even in another graph, thats why I don't use blank nodes)
say:
ex:876587658       ex:location      ex:myFavoriteCafe
to tell everybody that Christian is reading papers in a cafe.

Conceptually,  this  blurs  the distinction between ABox and TBox, but
maybe that's just a human-friendly way of modeling?

> what do I have to do to actually talk about the fact that chritian was
> reading paper_1? for example if I want to specify the moment in which an
> action has been done I can't say:  ex:reads_at_my_desk   ex:when   
> ex:august2006....
With  the "unique property instance URI"-approach you can, because you
would  never use the same property instance URI again in the p-role of
a triple.

> well you could invent a new property that is 
> "ex:reads_at_my_desk_in_august2006" and then make a new statement
> (christian   ex:reads_at_my_desk_in_august2006   ex:paper_1), but irt 
> seems to me not so convenient :-)
Instead  of stuffing *more* information into the property I suggest to
separate. One could even take a radical approach an says:

ex:Christian ex:9876587658765 ex:Paper1
ex:9876587658765  radical:hasType   ex:read
ex:9876587658765  radical:location   ex:niceCafe
ex:9876587658765  radical:duration   "2 hours"^xsd:time
ex:9876587658765  radical:mood   ex:angry
....

So not putting ANY semantics directly in the relation at all.
This is the way we are MAYBE going to implement a personal information
manager  with RDF. But I like the rdfs:subPropertyOf-approach, because
the  entailments  give  you  better  compatibility with existing query
expectations.

Do I need reification at all then?
Is  reification  support  in  current  triple  stores  good  (=fast)?
Pointers?

Kind regards for reading all this,

  Max Völkel
--
Dipl.-Inform. Max Völkel, Universität Karlsruhe / FZI
            nepomuk.semanticdesktop.org
voelkel@fzi.de   +49 721 9654-854   www.xam.de

*Second* Workshop on Semantic Wikis: http://semwiki.org/wibke2006

Received on Tuesday, 8 August 2006 17:49:40 UTC