W3C home > Mailing lists > Public > semantic-web@w3.org > July 2012

Re: Why do we name nodes and not edges?

From: Steve Harris <steve.harris@garlik.com>
Date: Mon, 30 Jul 2012 11:09:35 +0100
Cc: Natasa Bulatovic <bulatovic@MPDL.MPG.DE>, "semantic-web@w3.org" <semantic-web@w3.org>
Message-Id: <E4EC0246-3DA0-47F6-9F73-1ED4FB78BE88@garlik.com>
To: Hugh Glaser <hg@ecs.soton.ac.uk>
On 2012-07-29, at 13:17, Hugh Glaser wrote:

> I don't think that Steve was suggesting it might ever be useful or recommended - just possible. :-)

Exactly - the original question was "why do we name nodes and not edges" - I think the answer is: mostly convention. Nothing in RDF or SPARQL makes it particularly hard, it's just not often necessary, and it will look weird to people used to RDF.

- Steve

> Let's see.
> 
> The simplest thing I can come up with (thanks Mike Uschold) is:
> id:john id:john_married_jane id:jane .
> id:john_married_jane id:in_place id:london .
> and you could then do:
> SELECT ?where WHERE { ?s id:john_married_jane ?w . id:john_married_jane id:in_place ?where }
> you would probably benefit from
> id:john_married_jane rdfs:subPropertyOf id:married .
> 
> I dumped some stuff in a store, if you want to try:
> http://test.rkbexplorer.com/sparql/
> And of course as Linked Data: http://test.rkbexplorer.com/id/john_married_jane
> RDF is here: http://test.rkbexplorer.com/models/me.ttl
> The above query is
> (http://test.rkbexplorer.com/sparql/?format=browse&query=PREFIX+id%3A+++%3Chttp%3A%2F%2Ftest.rkbexplorer.com%2Fid%2F%3E%0D%0ASELECT+%3Fwhere+WHERE+%7B+%3Fs+id%3Ajohn_married_jane+%3Fw+.+id%3Ajohn_married_jane+id%3Ain_place+%3Fwhere+%7D%0D%0A)
> 
> I also have some labels (everything should always have labels, even/especially properties), so you can do:
> SELECT ?event_label ?where_label WHERE
> { ?s id:john_married_jane ?w . id:john_married_jane id:in_place ?where . id:john_married_jane rdfs:label ?event_label . ?where rdfs:label ?where_label .}
> 
> As I say, I am not sure how useful it is.
> In fact for this sort of thing I prefer to move to a proper event-based model, as CIDOC/CRM does.
> But it is all perfectly valid, and looking back at it, it seems a perfectly sensible way of doing it.
> So it must be one of the patterns that modelling people recommend? ;-)
> I could have complicated it with bnodes or classes, but I think this makes it quite readable.
> A little amusement on a sunny Sunday afternoon - better than having to do the gardening.
> Back to the Olympics and the GrandPrix - life is so tiring.
> 
> Cheers
> On 25 Jul 2012, at 17:11, Natasa Bulatovic <bulatovic@MPDL.MPG.DE> wrote:
> 
>> Could you point to some examples where this scenario would be useful or recommended?
>> 
>> Cheers,
>> Natasa
>> 
>> Am 25.07.2012 18:04, schrieb Dave Reynolds:
>>> If I understand Steve's point he was meaning that you can mint a new unique edge:xxxxxx identifier for each edge.
>>> 
>>> [Presumably you could make that a subPropertyOf the actual property you wanted to assert.]
>>> 
>>> Cheers,
>>> Dave
>>> 
>>> On 25/07/12 16:47, Aidan Hogan wrote:
>>>> Steve,
>>>> 
>>>> If I understand Melvin's point, in RDF, edge:123456 is the URI of a
>>>> property used to label the edge, not the edge itself.
>>>> 
>>>> Analogously, you don't identify a class-instance by it's class URI.
>>>> 
>>>> An edge is between two things. It might be directed and it might be
>>>> labelled. In RDF it's both.
>>>> 
>>>> Hence, the edge would encapsulate the full triple, including source
>>>> (subject) and target (object) nodes, as well as the label (predicate).
>>>> 
>>>> Cheers,
>>>> Aidan
>>>> 
>>>> On 25/07/2012 16:18, Steve Harris wrote:
>>>>> Nothing stops you from giving edges a unique URI, infact I think I've
>>>>> worked on systems that did that.
>>>>> 
>>>>> e.g.
>>>>> 
>>>>> <foo> <http://example.com/edge/123456> 1 .
>>>>> <http://example.com/edge/123456> a rdf:Property .
>>>>> ...
>>>>> 
>>>>> - Steve
>>>>> 
>>>>> On 2012-07-25, at 16:07, Melvin Carvalho wrote:
>>>>> 
>>>>>> Sorry if this topic has been covered before, but I have a question
>>>>>> based on the axioms of the web, in particular:
>>>>>> 
>>>>>> *Axiom 0a: Universality 2    Any resource of significance should be
>>>>>> given a URI.
>>>>>> *
>>>>>> In this case we consider the web to be a directed graph (of nodes and
>>>>>> edges), where a *node* corresponds to a *resource* but edge does not.
>>>>>> 
>>>>>> We are encouraged to make nodes universal by giving them a URI.
>>>>>> 
>>>>>> Why dont edges get the same treatment, ie encouragment to give it a
>>>>>> (universal) name.  Is it even practical?
>>>>>> 
>>>>>> I know there's such thing as reification but that seems to be
>>>>>> unpopular (maybe before my time).
>>>>>> 
>>>>>> I'm just curious as to whether this seems asymmetrical, that nodes are
>>>>>> seemigly treated in one way, and edges in another?
>>>>> 
>>>>> -- 
>>>>> Steve Harris, CTO
>>>>> Garlik, a part of Experian
>>>>> +44 7854 417 874 http://www.garlik.com/
>>>>> Registered in England and Wales 653331 VAT # 887 1335 93
>>>>> Registered office: Landmark House, Experian Way, Nottingham, Notts,
>>>>> NG80 1ZZ
>>>>> 
>>>> 
>>>> 
>>> 
>>> 
>> 
>> -- 
>> --
>> Natasa Bulatovic
>> Max Planck Digital Library (MPDL)
>> Amalienstrasse 33
>> 80799 Munich, Germany
>> http://www.mpdl.mpg.de
>> 
>> e-Mail: bulatovic@mpdl.mpg.de
>> phone: +49-89-38602-223
>> fax: +49-89-38602-280
>> 
>> 
>> 
> 
> 

-- 
Steve Harris, CTO
Garlik, a part of Experian
+44 7854 417 874  http://www.garlik.com/
Registered in England and Wales 653331 VAT # 887 1335 93
Registered office: Landmark House, Experian Way, Nottingham, Notts, NG80 1ZZ
Received on Monday, 30 July 2012 10:10:12 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 March 2016 07:42:35 UTC