Re: TEST: Functional and InverseFunctional tests for approval

From: "Jeremy Carroll" <jjc@hpl.hp.com>
Subject: Re: TEST: Functional and InverseFunctional tests for approval
Date: Sun, 1 Sep 2002 08:01:44 +0200

> 
> Peter I am very sorry but I missed your earlier contentful message about
> these test cases:
> 
> http://lists.w3.org/Archives/Public/www-webont-wg/2002Aug/0226.html
> 
> In light of that, I overreacted to your continued opposition to these test
> cases at the telecon, sorry.
> 
> I reply to  that message here.
> 
> 
> >> DESCRIPTION
> >>
> >>  If prop is an owl:FunctionalProperty,
> >>  and a resource has prop arcs pointing to two
> >>  different URIrefs, then those two URIrefs denote the
> >>  same resource, and hence each have the same properties.
> 
> Peter:
> >This description mixes syntax and semantics, and thus need to be rewritten.
> 
> In defence of the comment, I don't think the mixing introduces difficulties
> of understanding; but I agree with you on stylistic grounds.

It took me longer that it should have to understand just what was supposed
to happen here, so, for me at least, the mixing introduced difficulties of
understanding.

> It would have been helpful if you had suggested alternative text.
> 
> How about:
> [[
> If prop is an owl:FunctionalProperty,
> then any resource has at most one prop value.
> Thus if a single URIref is described with
> two different prop arcs with objects which
> have two different URIrefs, then those two URIrefs
> denote the same resource; and hence each have the
> same properties.
> ]]
> 
> It's longer, is the extra length necessary?
> Is it clearer?

This is clearer, to me at least.  However I would prefer something like

If prop belongs to owl:FunctionalProperty
and thing is an OWL individual with two outgoing prop arcs,
then the objects of these arcs have the same denotation.

> >This test is actually a test of two things:
> >1/ Functional properties are partial functional.
> >2/ If two different URIrefs denote the same object, then statements that
> >   have the first as a subject can also be written using the other.
> 
> Yes. I did not want to use sameZZZAs in the conclusions, so that
> syntactically I was testing just one aspect of owl.  But you are right to
> point out that then semantically I am testing two aspects. (One aspect of
> owl, your point 1; one aspect of RDF, your point 2).
> 
> I think this is correct design, in that at least some of our readers and
> implementors understand RDF; hence this test is only testing point (1) and
> RDF.

This doesn't make any sense to me.  Avoiding including sameIndividualAs may
be a reasonable goal for a test of functional properties, but not at the
expense of destroying the goal of the test.

A much better test would be:

PREMISE

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:owl ="http://www.w3.org/2002/07/owl#">
    <owl:FunctionalProperty rdf:about="http://www.example.org/prop" />
    <owl:Thing rdf:about="http://www.example.org/subject">
      <http://www.example.org/prop>
	  <owl:Thing rdf:about="http://www.example.org/object1" />
      </http://www.example.org/prop>
      <http://www.example.org/prop>
	  <owl:Thing rdf:about="http://www.example.org/object2" />
      </http://www.example.org/prop>
    </owl:Thing>
</rdf:RDF>

CONCLUSION

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:owl ="http://www.w3.org/2002/07/owl#">
    <owl:Thing rdf:about="http://www.example.org/object1">
      <owl:sameIndividualAs>
        <owl:Thing rdf:about="http://www.example.org/object2" />
      </owl:sameIndividualAs>
    </owl:Thing>
</rdf:RDF>

> >RATIONALE
> >
> >  This is one of the basic tests of the entailments related to the various
> >  different kinds of OWL properties.
> 
> Thanks. I think this is the intended rationale for half the tests, and the
> other intended rationale is "This test illustrates the resolution for issue
> ZZZ".
> As such I think those two rationales are largely redundant. (Although we
> need to clearly present which tests relate to which features and which tests
> relate to which issues).
> 
> I think we should take these two rationales as read, and only include a
> rationale for some other sort of test.

So, OK, you could shorten the rationale if you wanted to save bits, but you
are saying that there are two ``stock'' rationales, so how are you going to
show which one is the one in force?

> >I would actually prefer that RDF/XML not be used at all in the
> >documents used to define tests, on the grounds that RDF/XML is too
> >difficult to read.
> 
> While I have sympathy I am not sure where to go with this.
> I think the most readable syntax is N-triple with QNames.
> (N-triple being too verbose).
> 
> We could choose to present our tests in such a syntax, but that then gives
> us issues about where the syntax is presented, define etc. N3 is, IMO,
> unusable for a spec because there is no well-defined standard stable
> definition.

I agree entirely that N3 is not suitable.

However, we could use the abstract syntax.


> Your final point, except for the repeats arising from the repeats in the
> test; is to do with xml:base.
> 
> 1. I made a typo error in applying an earlier comment from Dan to the first
> test.
> It says:
>   xml:base="http://www.w3.org/2002/03owlt/FunctionalProperty/test002"
> It should have said:
>   xml:base="http://www.w3.org/2002/03owlt/FunctionalProperty/conclusions002"
> 
> (Contrast with the third of the tests which mirrors the first)
> 
> My intent is that the xml:base declarations are redundant if you download
> the tests from their intended URL. The motivation is so that if the test is
> copied elsewhere, e.g. into an e-mail message; or is downloaded from a
> functional equivalent but syntactically identical URI such as one starting
> with HTTP, the test is unchanged.
> 
> Actually, for the resolution of the relative URI, the typo is not
> substantive.
> So I will describe that resolution with respect to the uncorrected test.
> 
>    rdf:about="premises002#object2"
> 
> This is a relative URI, to resolve against the absolute base URI
> 
> http://www.w3.org/2002/03owlt/FunctionalProperty/test002
> 
> you find the "directory" by looking for / on the right, this is:
> 
> http://www.w3.org/2002/03owlt/FunctionalProperty/
> 
> then you concatenate to get the full URIref
> 
> http://www.w3.org/2002/03owlt/FunctionalProperty/premises002#object2

My suggestion here is to never use relative URIs in the tests.  (As an
aside, it would have been exceedingly better if RDF Core changed RDF so
that QNames could occur in rdf:ID and rdf:about.)

> Jeremy

peter

PS:  Given that you have agreed that there are mistakes in the tests, are
you going to propose that they be unapproved?

Received on Monday, 2 September 2002 12:02:43 UTC