Re: LANG: need to CLOSE Issue 5.6 Imports as magic syntax

On Sun, 2002-11-10 at 04:37, Frank van Harmelen wrote:
> 
> I've been catching up on the "imports" debate.
> I understand that one option is to have only "implicit imports"
> (ie anytime you refer to some SomeURI#Foo, all contents from someURI is
> merged with the current graph).
> 
> But I cannot understand how this will allow me to do the following
> elementary scenario:

I have taken the liberty of making it a bit more concreate;
URIs below are relative to
	http://www.w3.org/2000/10/swap/test/owl/

> - at location someURI1, someone defines (say) the domain of SomeURI1#Prop1

in prodDesc, I have

  p:obsoletes s:domain p:Product.

> - at location someURI2, someone defines (say) the range of SomeURI1#Prop1
>   (this may be an extension of the original ontology, or an update, etc)

in prodDescMore, I have

  p:obsoletes s:range s:Product.

>   (We agree that a great feature of DAML+OIL was the possibility to
>    take identifiers from other ontologies,
>    and make further statements about them,
>    which is exactly what's going on here).

Well, just because you *can* do this doesn't mean it's always
the best thing to do. To the extent that you can collect
your "definitions" so that they're available by dereferencing
the terms, everybody wins.

> - Now I want to use someURI1#Prop1 in my own ontology,

in storeTerms, I have

  st:widget a p:Product;
    p:obsoletes st:gadget.

>   and I want to exploit both its domain and range definitions
>   (in other words, I like the extension made at someURI2)
> 
> So I simply use someURI1#Prop1, which gets me the all info from that location.
> This gets me the domain definition of someURI1#Prop1.
> 
> QUESTION: without an explicit imports construct,
>           how can I ever use the contents of someURI2,
>           which contains the range definition of someURI1#Prop1 ?

First, I don't claim there's no need for an explicit imports
construct; I just claim that now is not the time to choose
daml:imports, which will have the practical effect of
excluding other approaches.

> I find this question so obvious that I fear it will have been answered
> before by the proponents of the "no import in OWL-v1", and I have
> probably just missed the answer to this. If so, please can someone point me
> to it?
> 
> This answer is so important to me because I could not live with OWL if the
> above scenario were not possible. Note: there is nothing fuzzy here 
> concerning
> trust, commitment, asserting-or-not, etc.

On the contrary; in your own words, "I like the extension
made at someURI2". That's a clear expression of trust, no?

The only question is how to express that opinion to the machine.

At my disposal, I have a variety of options.

(a) indicate it at invocation time, saying "I like
the extension made at prodDescMore right now, for this
run, but I might not like it for my next run".

e.g. on a command-line

A command line like this:

% python cwm.py storeTerms.n3 prodDesc.n3 prodDescMore.n3
../../util/rdfs-rules.n3 --think

yields the intended result:

    st:gadget     a p:Product,
                :Resource .
    
    st:widget     a p:Product,
                :Resource;
         p:obsoletes st:gadget .

(b) indicate it in storeTerms.n3, saying "I like
prodDescMore, and I'm going to suggest to anybody
who uses storeTerms that they should take a look at it."
I can use rdfs:seeAlso for this:

  <> s:seeAlso <prodDescMore.n3>.

and I tell my tool to trust/believe pretty much anything
it can find by following its nose:

% python cwm.py storeTerms.n3
http://www.w3.org/2000/10/swap/util/autoimport.n3
../../util/rdfs-rules.n3 --think

hmm... can't confirm that this one works just now;
autoimport.n3 is alpha code, and purl.org's DNS records seem
flakey.

This (b) approach is pretty similar to daml:imports.
But it raises the question: do we really need daml:imports?
or is rdfs:seeAlso sufficient?

(c) indicate it in storeTerms.n3 using something more
narrow like
  p:obsoletes s:isDefinedBy <prodDesc>, <prodDescMore>.

(d) indicate it in prodDesc using
   <> s:seeAlso <prodDescMore.n3>
as if to say "prodDesc has been extended; go look
there fore the extensions".

> I just want to understand how I can
> specify to my reaoner from which premises it should draw its conclusions.

Take your pick of the above. None of them requires that
daml:imports be standardized at this time.

I see a lot more projects meeting this need using rdfs:seeAlso
than anything else, daml:imports included.

-- 
Dan Connolly, W3C http://www.w3.org/People/Connolly/

Received on Wednesday, 13 November 2002 12:40:07 UTC