- From: Jeremy Carroll <jjc@hpl.hp.com>
- Date: Mon, 26 May 2003 11:32:23 +0300
- To: www-webont-wg@w3.org
I have only partially been following this issue ...
Here's an idea that I think would help with the use of owl:imports in large
ontologies; if we wanted to include it in any response we would probably need
to sketch it in guide, and ideally make wine.owl or food.owl or both follow
it.
Problem statement:
If I divide a large ontology up into small modules then I do not gain
anything, because the imports closure of any file is always the whole
ontology.
Solution statement:
If you further divide each module into two files:
- vocabulary declarations
- axioms
Then when you import a module you need only import the vocabulary
declarations, and the choice of whether or not to import the axioms reflects
the purpose of the file. In particular, for the typical module:
- the vocabulary declarations does not import anything
- the axioms imports only the vocabulary declarations needed.
Thus the imports closure does not involve any second level documents and is an
entirely tractable operation.
Example:
The ontology
<owl:Ontology rdf:about=''/>
<owl:Class rdf:ID='Man'>
<rdfs:subClassOf rdf:resource='#Mortal'/>
</owl:Class>
<owl:Class rdf:ID='Mortal'/>
is divided into
vocabulary
<owl:Ontology rdf:about=''/>
<owl:Class rdf:ID='Man'/>
<owl:Class rdf:ID='Mortal'/>
and
<owl:Ontology rdf:about=''/>
<owl:Class rdf:ID='Man'>
<rdfs:subClassOf rdf:resource='#Mortal'/>
</owl:Class>
<owl:Class rdf:ID='Mortal'/>
=================
Overall I think the approach identified is one which would need significant
thought and experience to get it right for ontology engineering; but I do not
believe that that is the WG's job, but it does, at least to me, show that
owl:imports is not fundamentally broken.
(I realise that python hackers who have forgotten the C they learnt in college
may find it a step backward)
Jeremy
Received on Monday, 26 May 2003 05:32:21 UTC