- From: Jeff Heflin <heflin@cse.lehigh.edu>
- Date: Fri, 20 Sep 2002 17:27:02 -0400
- To: WebOnt <www-webont-wg@w3.org>
Hello everyone, At yesterday's telecon I took an action to provide a use case for ontology versioning, and in particular backward-compatibility. Here it is: Let's assume that we have an an ontology V0 that has 50 classes. On each of 10 different days, we add a new class to this ontology. The proper way to do this in OWL (and in RDF, see RDFSS 4.1.2) is to create a new namespace for each version. Thus, we now have 11 versions, V0 through V10, of our ontology. I posit that the following two things are desirable: D1: that we only want to refer to a single namespace in any documents that use this ontology. Why? Because, it will be difficult to remember which concepts were in which version, and because the alternative doesn't scale up well (our documents would keep needing more and more namespaces as the Web grows older). D2: that we would like to be able to integrate resources that committed to different versions of this ontology. Since the change is only additive, we should be able to merge the graphs of various documents that commit to these ontologies and know that a "#Foo" in one version is also a "#Foo" in another version. We need to do this because the owners of documents that commit to ontologies may be different from the owners of the ontologies themselves, and cannot be made to instantly upgrade their data. If we don't establish correspondences, then we reduce interoperability. Assuming you agree with these desirable properties, let's examine possible solutions to the problem. Attempt #1: Don't have versions at all. Instead simply have each new version import the previous version and describe its one new class. However, in this alternative, any document that wishes to talk about classes in different versions of the ontology must specify the different namespaces for each class it mentions. This goes against the first desirable property, D1, above. You may ask why should this be any different than when you import multiple distinct ontologies. The answer is that in versions, the objects are conceptually closely related, and users benefit from keeping them organized as such. Attempt #2: Create the new version as a duplicate of the old and add the new class. Now, this version has local identifiers for every concept from the old ontology, meaning documents can use a single namespace to refer to concepts from the ontology (satisfying D1). In order to satisfy D2, we have to create links between the concepts in the new version and their companions in the prior version. In RDFS, this would be done using subClassOf and subPropertyOf (see RDFSS 4.1.3). In OWL, we have the more accurate sameClassAs and samePropertyAs. Therefore, the ontology must include 50+ sameClassAs statements to specify the correspondence with identifiers in the previous version. This is certainly doable, but a little unwieldy. It would be very easy to forget one, and becomes particularly burdensome if the ontologies are very large. Attempt #3: Provide a simple syntactic sugar for the last part of attempt #2. Call this backCompatWith. If an ontology is backCompatWith another ontology, then the 50+ sameClassAs statements are implicitly created. Nothing more is implied by the semantics, although various advanced application may experiment with using this statement in interesting ways. This is essentially what I proposed in [1]. Jeff [1] http://lists.w3.org/Archives/Public/www-webont-wg/2002Sep/0090.html
Received on Friday, 20 September 2002 17:27:05 UTC