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

Reifying triples as unique URIs

From: Max Völkel <voelkel@fzi.de>
Date: Mon, 7 Aug 2006 16:36:57 +0200
Message-ID: <134763170.20060807163657@fzi.de>
To: semantic-web <semantic-web@w3.org>
CC: Heiko Haller <hhaller@fzi.de>

Hi, I was looking for a neat way to address statements.

Version 1)
---------
Ok, I know there is reification, but that's quite expensive:

for a single statement
(a,b,c)

i need:
(x, rdf:type, Statement)
(x, hasSubject a)
(x, hasPredicate b)
(x, hasObject c)

Asking  in  SPARQL  for  information  about (a,b,c) is also not really
concise.


Version 2)
---------
Named Graphs, Contexts, Quads

for (a,b,c) I could add  (x,a,b,c), where x is the context.

Then  I  could  add  data about the statement x in the graph. Hmm. But
then I loose the nice possibility of Named Graphs to group triples,

like
(x,a,b,c)
(x,e,f,g)
(x,h,i,j)
(y,l,m,n)

all  quads  (x,*,*,*)  form  a  named  graph "x" with threee triples -
great! I want to keep this. So, do I need fivelets?

Version 3)
---------
Unique Relations

This  is  a  new idea, that I haven't seen discussed anywhere - that's
why  I post this email. The idea is: In some way, the relation between
two things is unique. So we represent
(a,b,c)
as (a,x,c), (x rdfs:subPropertyOf b).
We  use  b  as  the  type of the relation, x is a random unique URI (I
don't like blank nodes).


This allows moderately harmless SPARQL queries
e. g. "who knows whom?"
SELECT  ?subj ?obj
WHERE {?subj foaf:knows ?obj. }

and to get the relation instance:
SELECT  ?subj  ?obj ?rel
WHERE  {?subject ?rel  ?object  .  ?rel rdfs:subPropertyOf foaf:knows. }

MAybe   one   should   also   type "x" as an :RelationInstance. So all
'leaves' in the subPropertyOf-inducded tree should be typed with this.

Now  the challenge is, you should try to re-use the same "x", as often
as semantically possible.

When the same "knowing" from a to c is occurring, use the same x.
If a knows c in two different ways, use two different URIs.

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.

What  do  you think about the idea to reify triples as unique property
URIs? Has this been discussed elsewhere?


Kind regards,

  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 Monday, 7 August 2006 14:37:19 UTC

This archive was generated by hypermail 2.4.0 : Tuesday, 5 July 2022 08:44:58 UTC