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

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