Re: OWL S&AS Comment - owl:imports

Dear Ms. Golbeck,

Thank you for you comment. As the original issue owner for imports, I
have been asked to respond to you. This issue was heavily debated by the
working group between Sept. and Nov. 2002 (see the public archive for
excruciating details) and it became clear that any resolution (including
not including imports at all) would have been closed over objection. The
current resolution is the result of a majority vote. That being said,
let me address your specific concerns.

You mention your desire to break the NCI ontology into smaller
ontologies. This certainly would be a good reason to use imports.
You claim that your particular ontology is so interconnected that
it cannot be modularized in a way that doesn't result in every file
importing every other file. However, this is still better than one big
file, because it will benefit many tools. Imports only really matters to
reasoners, and even then only those that are concerned with
completeness. We will add the following text to "OWL Web Ontology
Language 1.0 Reference" to make this clear:

"Note that whether or not an OWL tool must load an imported ontology
depends on the purpose of the tool. If the tool is a complete reasoner
(including complete consistency checkers) then it must load all of the
imported ontologies. Other tools, such as simple editors and incomplete
reasoners, may choose to load only some or even none of the imported
ontologies."

You also mentioned wanting to borrow a single term from a large
ontology, without having to import the whole thing. This was discussed
by the working group from the very beginning. I point to Objective 07
from the Use Cases and Requirements document [1]:

O7. Commitment to portions of ontologies
The language should support the ability to commit to portions of an
ontology, as well as committing to an entire ontology. However, it is
unclear what granularity should be used here. Possible choices are to
choose a subset of concepts with their entire definitions, or to
choose individual pieces of definitions. Note that borrowing partial
definitions of concepts must address the potential interoperability
problems that can arise since different applications will be using the
same identifier to mean different things.

Note, as an objective, the group decided that the feature was generally
desirable, but that it wasn't absolutely necessary for the the first
version of the language. It was discussed at the time imports was
considered, but no concrete proposal for how partial imports would work
was put forward at that time.

Finally, you mention the wording in the documents:

First you discuss the following passage from the OWL Reference document,
Section 7.3:

"Note that the importing a document is different than creating a
namespace reference. owl:imports do not set up a shorthand notation for
names as does a namespace reference. On the other hand, the namespace
reference does not imply that all (or even any) ontological terms from
that namespace are being imported. Therefore, it is common to have a
corresponding namespace declaration for any ontology that is
imported."

You are correct that there are a few problems here: First, we are
using the term "namespace reference" when we really mean "namespace
declaration." Second, the point of this paragraph was to comment on why
namespace declarations and imports are both needed, not to comment on
how systems might follow links. In particular, we were trying to say
that they are very different animals. I suggest the following rewording:

"Note that although owl:imports and namespace declarations may appear
redundant, they actually serve very different purposes. Namespace
declarations simply set up a shorthand for referring to identifiers.
They do not implicitly include the meaning of documents located at the
URI. On the other hand, owl:imports does not provide any shorthand
notation for referring to the identifiers from the imported document.
Therefore, it is common to have a corresponding namespace declaration
for any ontology that is imported."

You also mention the following from the OWL Guide, Section 2.2.:

"Importing another ontology brings the entire set of assertions provided
by that ontology into the current ontology. In order to make best use of
this imported ontology it would normally be coordinated with a namespace
declaration. Notice the distinction between these two mechanisms.
The namespace declarations provide a convenient means to reference names
defined in other OWL ontologies. Conceptually, owl:imports is provided
to indicate your intention to include the assertions of the target
ontology. Importing another ontology, O2, will also import all of the
ontologies that O2 imports."

Once again, you are correct that the wording could be improved. By "to
make best use of" we really meant "for convenience of the user." Of
course, you are also correct that there may be times when the namespace
declaration is irrelevant (such as the case when an ontology does not
create any new identifiers), which is why it is important that we say
"usually" and not always. We plan to replace that paragraph (and the
preceding one) with the following text:

"An owl:imports statement references another OWL ontology.  The URI
that is the value of the rdf:resource attribute identifies the
ontology to be imported. The current ontology is extended with the
contents of the referenced ontology. Importing an ontology, O2, will
also import all of the ontologies that O2 imports.

Thus, if ontology A imports ontology B, the meaning of terms in A
are exactly the same as they would be if all of the statements in B
(including further imports statements) were included in A.

It is often convenient to coordinate owl:imports with a namespace
declaration, so that qualified names can be used when referring to the
resources of the ontology. Notice the distinction between these two
mechanisms. The namespace declarations provide a convenient means to
reference names defined in other OWL ontologies, while owl:imports
indicates an intention to include the assertions of the target
ontology."

Thank you again for you comments. Please respond to this mailing list to
let me know if I have adequately addressed your concerns.

Jeff Heflin

[1] http://www.w3.org/TR/webont-req/#section-objectives


golbeck wrote:
> 
> We have some concerns with the semantics of owl:imports:
> 1) While clear, it doesn't have a desirable behavior in many, if not most
> cases
> 2) There is no alternative mechanism for sharing parts of ontologies, and no
> place holders for such
> 3) The explication in the Reference and Guide is confusing
> 
> Concerns 1) and 2) were inspired by our work on converting the NCI terminology
> from its proprietary XML format to OWL. The resulting file (viewable at
> http://www.mindswap.org/CancerOntology) is 46MB and, because of the size, has
> broken nearly every existing tool we have tried to use.
> 
> One  solution we considered was breaking the terminology into different files.
> However, since the concepts defined therein are interlinked, each subfile
> would have to import all others. Because the current behavior of imports joins
> all terms from the imported ontologies, the separate files actually offer no
> size solution.
> 
> When creating their own files, users may want to borrow a single term from a
> large ontology. With the current function of "imports", a small file that uses
> one term from cyc would become huge. As the semantic web becomes increasingly
> interlinked, a file with only a handful of concepts and a few imports could
> easily grow to be several gigabytes because of cascading includes.
> 
> To address this issue, we would like to see an alternative that allows users
> to import only specific elements of an ontology.
> 
> 3) With respect to specific documents:
> 
> >From OWL Reference, 7.2: """Note that the importing a document is different
> than creating a namespace reference. owl:imports do not set up a shorthand
> notation for names as does a namespace reference. On the other hand, the
> namespace reference does not imply that all (or even any) ontological terms
> from that namespace are being imported. Therefore, it is common to have a
> corresponding namespace declaration for any ontology that is imported."""
> 
> What is "creating a namespace reference"? It seems like you're confusing two
> different levels, the imports, which takes place at the *ontological* (or
> "graph") level, and the document level (i.e., where people write out the
> ontology). Furthermore, *namespace* declarations aren't the only way one can
> "suggest" important. Presumably *using* a term from some other ontology (via a
> uriref in an rdf:about or rdf:resource, or, higher level, as one side of an
> equivalence or subClass|PropertyOf relation. (There are folks who have written
> tools that try to import ontology documents that are "at" any URI mentioned in
> the current document.)
> 
> >From OWL Guide, 2.2.: """Importing another ontology brings the entire set of
> assertions provided by that ontology into the current ontology. In order to
> make best use of this imported ontology it would normally be coordinated with
> a namespace declaration. Notice the distinction between these two mechanisms.
> The namespace declarations provide a convenient means to reference names
> defined in other OWL ontologies. Conceptually, owl:imports is provided to
> indicate your intention to include the assertions of the target ontology.
> Importing another ontology, O2, will also import all of the ontologies that O2
> imports."""
> 
> "In order to make best use..."? All the namespace declaration *can* get you is
> some syntactic shortcuts. It's as if you'd written, "In order to make best use
> of an imported ontology it would normally be coordinated with an entity
> declaration." Furthermore, in some "breaking the file up into pieces"
> situations, the ontology uri might not be the "namespace" of some, many, or
> even most of the terms in that ontology (e.g,. you import ontology A which
> merely imports B, C, D, and E -- i.e., it's a convenience). In other words, an
> ontology's uri doesn't have any necessary (or necessarily likely) connection
> to a prefixing substring of its terms' uris. And that's what's needed for the
> namespace dec to be useful. There's no scenario in which it affects what you
> can do, or do well, from the semantic point of view.
> 
> -Jennifer Golbeck and Bijan Parsia

Received on Friday, 20 June 2003 10:14:22 UTC