- From: David Booth <david@dbooth.org>
- Date: Thu, 29 Nov 2018 00:02:22 -0500
- To: semantic-web@w3.org
- Cc: Henry Story <henry.story@bblfish.net>
On 11/28/18 10:41 AM, Henry Story wrote: > A person looking at the Json [of a postal address] sees the same address because they think of of a number of things: > 1. . . . > 2. they could decide that two addresses are the same if they have exactly the same attributes and values. You're right, I forgot to mention one very important assumption: that the attributes and values of those addresses constitute a composite *key*. That is what allows us to logically conclude that they are the *same* address. For something like a postal address the attributes and values naturally do constitute a composite key, and we humans are so accustomed to knowing this that it is easy to forget that the computer will *not* necessarily know this . . . unless we tell it to do so. Let me explain further. Suppose we have these address entries for joe and monica: :joe :address _:b1 . _:b1 a "PostalAddress" ; :streetAddress "123 West Jefferson Street" ; :addressLocality "Phoenix" ; :addressRegion "AZ" ; :postalCode "85003" ; :addressCountry "US" . :monica :address _:b2 . _:b2 a "PostalAddress" ; :streetAddress "123 West Jefferson Street" ; :addressLocality "Phoenix" ; :addressRegion "AZ" ; :postalCode "85003" ; :addressCountry "US" . Do joe and monica have the *same* address? In other words, is the above logically equivalent to writing the following? :joe :address _:b1 . _:b1 a "PostalAddress" ; :streetAddress "123 West Jefferson Street" ; :addressLocality "Phoenix" ; :addressRegion "AZ" ; :postalCode "85003" ; :addressCountry "US" . :monica :address _:b1 . If we know that those attributes form a composite key, then the answer is yes. Otherwise, the answer is no, because for example the following two statements may show up elsewhere in the graph: _:b1 :addressPlanet "Earth" . _:b2 :addressPlanet "Alpha7" . In my own experience, objects composed of literal attributes like this generally *do* form a composite key, though perhaps other RDF developers have had different experience. But even if the attributes do not form a composite key, I am convinced that in general objects like this *should* have some kind of key -- i.e., it is beneficial to give them a key if they don't naturally have one. This corresponds directly to standard good practice for tables in relational databases: that every table should have a primary key (which could be composite). David Booth
Received on Thursday, 29 November 2018 05:02:44 UTC