- From: Alan Ruttenberg <alanruttenberg@gmail.com>
- Date: Tue, 8 Aug 2006 16:06:57 -0400
- To: Max Völkel <voelkel@fzi.de>
- Cc: semantic-web@w3.org
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 etc. 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. Regards, Alan 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