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

Re: Well Behaved RDF - Taming Blank Nodes, etc.

From: Enrique Pérez Arnaud <enriquepablo@gmail.com>
Date: Tue, 18 Dec 2012 17:45:28 +0100
Message-ID: <CAKJFYy4ZoQFPE=6E1LSaEYzvFht4azez5qhLGNeRm6U52EvhTw@mail.gmail.com>
To: Lee Feigenbaum <lee@thefigtrees.net>
Cc: Thomas Passin <list1@tompassin.net>, semantic-web <semantic-web@w3.org>
Hi Lee


2012/12/18 Lee Feigenbaum <lee@thefigtrees.net>

>
> What can I do in the blank node case that I can't in the URI case?
>

I mostly agree with what you say, but I see cases where a URI might not be
appropriate (or I am misunderstanding the scope of the discussion). How
might you express something like "jane wants an apple"? Would you mint a
new URI for something that is not and may never get concrete? How can you
avoid using [a :apple] there?


>
> You say that the second case (with no blank nodes) "eliminate[s] one of
> the two basic ways of describing something". How is that the case?
>
> If a second person comes along and makes another observation described by
> properties, we could get either:
>
> # note that [] is going to mint a new blank node here
>
> [] a ex:Person ; :zipCode "02111" ; :gender "male" ; :dob "1978-12-13" .
>
> # note a new arbitrary URI has been minted for the second observation
>
> <urn:uuid:fghi> a ex:Person ; :zipCode "02111" ; :gender "male" ; :dob
> "1978-12-13" .
>
>
> So... what's the difference? In either case, I can use SPARQL queries to
> say that these resources might be the same thing. In either case, I could
> use owl:hasKey, owl:sameAs, and friends to establish an equivalent identity
> (if appropriate for my application). I feel like I must be missing
> something here?
>
> Of course, if these triples were the objects of some other data, then the
> blank nodes have all of the usage challenges that people are familiar with:
>
> :Lee :satNextTo [ a ex:Person ; :zipCode "02111" ; :gender "male" ; :dob
> "1978-12-13" ] .
>
>
> vs.
>
> :Lee :satNextTo <urn:uuid:abcde> .
>
> <urn:uuid:abcde> a ex:Person ; :zipCode "02111" ; :gender "male" ; :dob
> "1978-12-13" .
>
>
> So now I come along and ask who sat next to me:
>
> SELECT ?person { :Lee :satNextTo ?person }
>
>
> In the URI case, I get a value that I can then directly interrogate
> further:
>
> SELECT ?p ?o { <urn:uuid:abcde> ?p ?o }
>
>
> In the blank node case... no such luck. I can't feed the blank node I get
> a result into a subsequent query (because blank node identifiers are not
> stable, of course). So... I'm stuck having to do follow-on queries like:
>
> SELECT ?p ?o { :Lee :satNextTo [ ?p ?o ] }
>
>
> which are more complicated to author, potentially more complicated to
> execute, and not nearly as precise in the face of multiple people sitting
> next to Lee.
>
> So, can you help me understand what I'm missing, please?
>
> Lee
>
>
>
>
>


-- 
Enrique Pérez Arnaud
enriquepablo@gmail.com
Received on Tuesday, 18 December 2012 16:46:14 UTC

This archive was generated by hypermail 2.4.0 : Tuesday, 5 July 2022 08:45:31 UTC