Re: firts and rdf:rest as functional property

Pat Hayes said the following on 03/20/2009 04:53 PM:
>
> On Mar 20, 2009, at 10:49 AM, Reto Bachmann-Gmür wrote:
>
>> Pat Hayes said the following on 03/20/2009 04:29 PM:
>>> ...
>>> Even if rdf: first (say) is owl:functionalProperty, this alone does
>>> not constrain any RDF graph to contain any particular triples: the
>>> molecular decomposition might still fail if information is missing
>>> from the graph (as it always can be, regardless of the functionality
>>> or otherwise of any relations.)
>> I agree with your first point, that there is no way to constrain a graph
>> to contain a particular triple (even a cardinality constraint wouldn't
>> do this), but I disagree with your notion of the possibility of failure
>> of decomposition into RDF molecules. The RDF molecules decomposition
>> algorithm (and its exetnsion in GVS) always yields to a result, this
>> result always satisfies the criterion of a lossless decomposition. The
>> goal of small and mostly canonically serialized components can be
>> compromised by the structure of the graph, but for real world graph the
>> algorithms are efficient to achieve it.
>
> Sorry, "fail" was the wrong word to use. I realize it will always
> succeed in the sense you give here. My point was that this might not
> produce the complete list structure that you expect it to, when the
> RDF graph uses the LIst vocabulary, regardless of the functionality or
> otherwise of the relations.
I'm not expecting it to produce complete list structure. Considering the
list properties as functional the versioning can be done in a more
efficient fashion. For lists that follow the convention that they should
follow in order not to create an interoperability bug [1] this
assumption of the versioning system has no effect at all (except the
improved performance). For lists that do not follow this convention and
look like your example:


a:a rdf:type rdf:List
a:a rdf:first a:B
a:a rdf:first a:C
a:a rdf:rest a:d
a:d rdf:rest a:e

GVS would give you back the following triples:

a:a rdf:type rdf:List
a:a rdf:first a:B
a:B owl:sameAs a:C
a:a rdf:rest a:d
a:d owl:sameAs a:e

It is not doing this because it wants to make the list to be nicer or
more like a real list, but because of the perfomance benefit of
threating properties that effectively are functional as functional. (The
example has the weakness of not containing the bnodes typical for lists,
so in this case the size of all decomposition components would be
minimal anyway and there's no efficiency gain)

Cheers,
Reto


1. http://lists.w3.org/Archives/Public/semantic-web/2009Feb/0141.html

Received on Friday, 20 March 2009 16:15:00 UTC