W3C home > Mailing lists > Public > semantic-web@w3.org > August 2006

Re: Re[2]: Reifying triples as unique URIs

From: Alan Ruttenberg <alanruttenberg@gmail.com>
Date: Tue, 8 Aug 2006 16:06:57 -0400
Message-Id: <B266A019-B287-4202-812C-9AAB7D5A24A3@gmail.com>
Cc: semantic-web@w3.org
To: Max Völkel <voelkel@fzi.de>

Instead of going through this trouble, why not simply create a uri  
for the activity.

ex:9876587658765 a ex:activity
ex:9876587658765 ex:subject ex:christian
ex:9876587658765 ex:action ex:reads
ex:9876587658765 ex:object ex:paper_1
ex:9876587658765 ex:happens_in  ex:my_office


This looks like reification, but it is shorter (since a reification  
of a triple doesn't entail a triple, you also need the triple if you  
want to query on the triple).

You lose the simple triple query in sparql, but then you don't need  
to do two different sorts of queries for ex:subject versus  
ex:happens. And you avoid all these issues of treating a property  
like an individual, and the semantic imprecision you have about what  
exactly you are talking about when you annotate the property.

You also have the advantage that you can more precisely define and  
document what ex:activity, ex:subject etc means, since they are your  
own properties.

BTW, I also don't like bnodes, but for another reason: They aren't  
what they seem. They appear to be individuals that you don't want to  
bother to name but, in fact, in the logical sense they are scoped  
existential variables. It seems to me one doesn't want to use them  
unless one knows that one needs that sort of thing.


On Aug 8, 2006, at 1:49 PM, Max Völkel wrote:

> 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 20:07:02 UTC

This archive was generated by hypermail 2.4.0 : Thursday, 24 March 2022 20:41:00 UTC