Re: Blank Nodes Re: Toward easier RDF: a proposal

On 11/28/18 10:31 AM, Jiří Procházka wrote:
> Adding to these good points, consider this blank node usage (using Turtle):
> 
> :joe :address [ a :Address;
>       :streetAddress "123 West Jefferson Street";
>       :postalCode "85003";
>     ].
> 
> :kate :address [ a :Address;
>       :streetAddress "123 West Jefferson Street";
>       :postalCode "85003";
>     ].
> 
> Someone please confirm, but I think using RDF semantics you cannot
> conclude the bnodes refer to the same address 

That is correct, you cannot infer this in RDF.

(which would be quite
> intuitive).

Because you know quite a lot about postal addresses, including 
for example that a street name and a postcode uniquely specify a 
street and that a number plus an identified street is a unique 
address. To say this kind of stuff you need more expressivity 
than RDF provides. You should be able to do it in OWL.

Pat Hayes

  As RDF is based on graphs, not tree, the "address" predicate
> plays a role as much as "postalCode" does. The first bnode means there
> exists an address with that streetAddress and postalCode and is an
> address of Joe. The second bnode means there exists an address with that
> streetAddress and postalCode and is an address of Kate. The RDF graph
> could as well be written like this:
> 
> [ a :Address;
>       :addressOf :joe;
>       :streetAddress "123 West Jefferson Street";
>       :postalCode "85003";
>     ].
> 
> [ a :Address;
>       :addressOf :kate;
>       :streetAddress "123 West Jefferson Street";
>       :postalCode "85003";
>     ].
> 
> On 11/28/18 4:01 AM, David Booth wrote:
>> On 11/27/18 2:04 PM, Nathan Rixham wrote:
>> . . .
>>> Here's an extract:
>>> {
>>>      ...
>>>     "name": "County Assessor's Office",
>>>     "address": {
>>>       "@type": "PostalAddress",
>>>       "streetAddress": "123 West Jefferson Street",
>>>       "addressLocality": "Phoenix",
>>>       "addressRegion": "AZ",
>>>       "postalCode": "85003",
>>>       "addressCountry": "US"
>>>     },
>>>     "geo": {
>>>       "@type": "GeoCoordinates",
>>>       "latitude": 33.4466,
>>>       "longitude": -112.07837  },
>>> }
>>> . . .
>>> [To] have the same address or geo coordinates published on tens of
>>> thousands of different websites, all using a different ID (uri) would
>>> be a huge, horrible, mess.
>>
>> Not so fast.  Two points:
>>
>>   - Unless you make a unique name assumption with URIs, that huge,
>> horrible mess is pretty much the situation we already have using blank
>> nodes.  Except that in some ways the current situation is *worse*,
>> because the same data loaded twice cause duplicate triples (non-lean),
>> whereas that would be automatically avoided if URIs were usesd.
>>
>>   - Those same addresses don't have to use different URIs on different
>> web sites.  If we have a standard way to generate URIs for them, based
>> on a natural key (or composite key) that is typically formed from the
>> constituents of the n-ary relation -- the components of the address, for
>> example -- then all those websites could automatically use the *same*
>> URI for them.  Tools could do this automatically whenever the user
>> writes an n-ary relation, like the JSON-LD example above.  And that
>> would be a *big* improvement over the current situation.
>>
>> David Booth
>>
> 

-- 
-----------------------------------
call or text to 850 291 0667
www.ihmc.us/groups/phayes/
www.facebook.com/the.pat.hayes

Received on Thursday, 29 November 2018 20:45:34 UTC