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