W3C home > Mailing lists > Public > public-semweb-lifesci@w3.org > March 2013

Re: owl:sameAs - Is it used in a right way?

From: David Booth <david@dbooth.org>
Date: Wed, 27 Mar 2013 09:37:15 -0400
Message-ID: <5152F60B.3030703@dbooth.org>
To: public-semweb-lifesci@w3.org, Oliver Ruebenacker <curoli@gmail.com>
Hi Oliver,

On 03/25/2013 04:02 PM, Oliver Ruebenacker wrote:
>       Hello David,
>    We agree that there are different interpretations. But you haven't
> shown that the boundaries between interpretations are graphs
> boundaries (others, including me, think that each interpretation is
> global).

I don't know what you mean by "boundaries between interpretations".
An interpretation may be applied to any graph or statement to determine 
its truth value (or to a URI to determine the resource to which it is 
bound in that interpretation).

The notion of a graph boundary is purely a matter of convenience and 
utility.  A graph can consist of *any* set of RDF triples.  If you 
wanted, you could apply an interpretation to a graph consisting of three 
randomly selected triples from each RDF document on the web, but it 
probably wouldn't be very useful to do so, because you probably would 
not care about the truth value of that graph.  We generally only apply 
an interpretation to a graph whose truth value we care about.

An interpretation corresponds to the *use* of a graph.  Suppose I have a 
graph that "ambiguously" uses the same URI to denote both a toucan and 
its web page, without asserting that toucans cannot be web pages:

    @prefix : <http://example/>
    :tweety a :Toucan .
    :tweety a :WebPage .

When a conforming RDF application takes that RDF graph as input, assumes 
it is true, and produces some output such as "Tweety is a toucan", in 
effect the application has chosen a particular interpretation to apply 
to that graph.  In effect, the choice of interpretation causes the app 
to produce that particular output.  For example, the app might 
categorize animals into species, choosing an interpretation that maps 
:tweety to a kind of bird.  But a different conforming RDF application 
that only cares about web page authorship might take that *same* RDF 
graph as input and choose a different interpretation that maps :tweety 
to a web page, instead outputting "Tweety is a web page".  In effect, 
the app has chosen an interpretation that is appropriate for its purpose.

If the graph had also asserted :Toucan owl:disjointWith :WebPage, then 
the graph cannot be true under OWL semantics, and the graph (as is) 
would be unusable to both apps.

>    That makes me wonder whether you consider it in conformance with the
> specs to choose different boundaries?
>    For example, would you consider it conforming to apply a different
> interpretation to each statement? Or how about a different
> interpretation for each node of a statement? Do you see anything in
> the specs against doing so?

Sure it is in conformance with the spec.  An interpretation can be 
applied to any graph or any RDF statement.  And certainly you could 
determine the truth value of N different statements according to N 
different interpretations.  But would it be useful to do so?  Probably 
not.  Furthermore, if two statements are true under two different 
interpretations, that would not tell you whether a graph consisting of 
those two statements would be true under a single interpretation.

OTOH, it *is* useful to apply different intepretations to different 
graphs, and one reason is that you may be using those graphs for 
different applications, each app in effect applying its own 
interpretation.  But the fact that those graphs may be true under 
different interpretations does *not* tell you whether the merge of those 
graphs will be true under a single interpretation.

The RDF Semantics spec only tells you how to compute the truth value of 
one <interpretation, graph> pair at a time, but you can certainly apply 
it to as many <interpretation, graph> pairs as you want -- in full 
conformance with the intent of the spec.  This is the same as if I 
define a function f of two arguments, such that f(x,y) = x+y, that 
function definition only tells you how to compute f(x,y) for one pair of 
numbers at a time, but you can certainly apply it to as many pairs as 
you want, without in any way violating the intent of f's definition.

Received on Wednesday, 27 March 2013 13:37:44 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 14:53:02 UTC