- Ontology versioning
-
Ontology versioning
Introduction
cause of ontology change [1]
- change in the domain
- change in the shared conceptualization (that is our case) a way to model domain knowledge is not a static process, but is changed over time. Specially ontology is used for new tasks, then the modification of model is required
- changes in the specification:what languages does ontology represent such as RDF, OR OWL? --> It actually doesn't matter.
consequences of the change [1]
- incompatibility with the data that confirms to the ontology (i.e. some contents of web pages annotated with concepts from the ontology)
- incompatibility with other ontologies (i.e. ontologies built from the source ontology or ontologies importing the source ontology)
- incompatibility with applications
Current researches on the ontology versioning
- there are no overall methodological theoretical framework that wold support the implementations [2]. Currently, there are four approach for ontology versioning.
approach pros cons Purely syntactic versioning easy to implement, automatic process only at the symtax level by comparing text, no semantic level --> It is not enough for us! Transaction-based Versioning (NeOn) semi-automatic process, inspired by the database theory, namely solutions supporting schema evolution, handle changes without loss of existing data, using mechanism of transactions too granular, too complicate, we doesn't care much about transaction mechanism Merge-based versioning (Protege) semi-automatic process, finding difference between two ontology by comparing two images of graph using heuristics to find structural difference semi-automatically --> basic idea is ok. But, for now, it is ok to describe manually change of ontology inside the ontology. Semantic Extensions of the Syntactic Versioning (SemVersion in Protege?) not only syntactic diff, but also a semantic one is taken into account implementation depends on the semantics representation used (pure RDF, RDF/S, OWL, F-logic, etc.) Requirements for ontology versioning mechanism in FAO geopolitical ontology
- Both the new version and the previous version are accessible.
- There is explicit specification of the relation between concepts of the new version and the previous version.
- Only change of conceptualization(structural difference) is in the scope of ontology versioning. We assume that knowledge of each version is same in the geopolitical domain.
- The update on values of properties in each instances such as (GDP values or country names) is not considered as "change on the ontology"
- Every concept and relations should have unambiguous identification by URI
- Every change should be specified
- The explicit specification should be inside the ontology and is implemented in the same formal language (i.e. OWL/RDF)
- Each version needs to describe valid time (validSince and validUntil)
- Each version has last update--> dcterms:modified
- We need to reuse of existing OWL terms regarding versioning, instead of creating new terms
Design for ontology versioning
Reuse of existing OWL terms for versioning
term description comments owl:versionInfo An owl:versionInfo statement generally has as its object a string giving information about this version, for example RCS/CVS keywords. This statement does not contribute to the logical meaning of the ontology other than that given by the RDF(S) model theory. Although this property is typically used to make statements about ontologies, it may be applied to any OWL construct. For example, one could attach a owl:versionInfo statement to an OWL class.
owl:priorVersion An owl:priorVersion statement contains a reference to another ontology. This identifies the specified ontology as a prior version of the containing ontology. This has no meaning in the model-theoretic semantics other than that given by the RDF(S) model theory. However, it may be used by software to organize ontologies by versions. owl:priorVersion is a built-in OWL property with the class owl:Ontology as its domain and range.
owl:backwardCompatibleWith An owl:backwardCompatibleWith statement contains a reference to another ontology. This identifies the specified ontology as a prior version of the containing ontology, and further indicates that it is backward compatible with it. In particular, this indicates that all identifiers from the previous version have the same intended interpretations in the new version. Thus, it is a hint to document authors that they can safely change their documents to commit to the new version (by simply updating namespace declarations and owl:imports statements to refer to the URL of the new version). If owl:backwardCompatibleWith is not declared for two versions, then compatibility should not be assumed. owl:incompatibleWith An owl:incompatibleWith statement contains a reference to another ontology. This indicates that the containing ontology is a later version of the referenced ontology, but is not backward compatible with it. Essentially, this is for use by ontology authors who want to be explicit that documents cannot upgrade to use the new version without checking whether changes are required. owl:DeprecatedClass and owl:DeprecatedProperty Deprecation is a feature commonly used in versioning software (for example, see the Java programming language) to indicate that a particular feature is preserved for backward-compatibility purposes, but may be phased out in the future. Here, a specific identifier is said to be of type owl:DeprecatedClass or owl:DeprecatedProperty, where owl:DeprecatedClass is a subclass of rdfs:Class and owl:DeprecatedProperty is a subclass of rdf:Property. By deprecating a term, it means that the term should not be used in new documents that commit to the ontology. This allows an ontology to maintain backward-compatibility while phasing out an old vocabulary (thus, it only makes sense to use deprecation in combination with backward compatibility). As a result, it is easier for old data and applications to migrate to a new version, and thus can increase the level of adoption of the new version. This has no meaning in the model theoretic semantics other than that given by the RDF(S) model theory. However, authoring tools may use it to warn users when checking OWL markup. Life cycle of ontology evolution (change)
- The following change processes of ontology need to be performed (manually for now): [3]
- change representation: "the necessary changes have to be identified and represented." [3]
- semantics of change: "changes to an ontology can induce inconsistencies in other parts of the ontology or to other depending artifacts. The task of this phase is to solve these inconsistencies by requesting new deduced changes.[3]
- Change propagation: "the task of this phase is to bring all dependent artifacts in a consistent state by propagating changes to these depending artifacts".[3]
- Change implementation: "this phase is used to inform an ontology engineer about all the consequences of a change request, to apply all requested and deduced changes and to keep track of all these applied changes in an evolution log"[3]
- change announcement: this phase is to announce that ontology would be updated to users
- change release": this phase is to release the updated ontology in public.
- update on related applications: this phase is to update applications related to the ontology.
List of operation on change at ontology/class/property/individual level
- Note that it is just a draft. The list would be a subject under change.
1. operations at ontology level
subject predicate object comments ontology owl:versionInfo string ontology owl:priorVersion ontology ontology validSince Date ontology validUntil Date ontology dcterms: modified Date ontology addClass class ontology owl:DeprecatedClass class ontology addPorperty class ontology owl:DeprecatedProperty class ontology addIndividual class ontology DeprecatedIndividual class 2. operations at class level
subject predicate object comments class addSuperclass class class removeSuperclass class class modifySuperClass class class addRestriction Restriction class removeRestriction Restriction class modifyRestriction Restriction class addDomain class class removeDomain class class modifyDomain class 3. operations at property level
subject predicate object comments property addSuperproperty class property removeproperty class property modifySproperty class property addRestriction Restriction property removeRestriction Restriction property modifyRestriction Restriction property addDomain class property removeDomain class property modifyDomain class property addRange class property removeRange class property modifyRange class 3. operations at Individual level
subject predicate object comments individual addParent class individual removePreant class individual modifyParent class Implementation on geopolitical ontology
- All verisoning-related change would be implemented annotation properties, which is located inside "owl:Ontology>header.
example - adding source descriptions (version 1.1) <owl:Ontology rdf:about="http://aims.fao.org/aos/geopolitical.owl"> <owl:versionInfo> xml:lang="en">version 1.1</owl:versionInfo> <owl:priorVersion> http://aims.fao.org/aos/geopolitical_v1.owl </owl:priorVersion > <owl:backwardCompatibleWith> http://aims.fao.org/aos/geopolitical_v1.owl <owl:backwardCompatibleWith> <dcterms:modified>2010-07-10</dcterms:modified> <versionAddAnnotationProperty>sourceCreator</versionAddAnnotationProperty> <versionAddAnnotationProperty>sourceIdentifier</versionAddAnnotationProperty> <versionAddAnnotationProperty>sourceModified</versionAddAnnotationProperty> <versionAddAnnotationProperty>http://purl.org/dc/elements/1.1/description</versionAddAnnotationProperty> <versionAddAnnotationProperty>http://purl.org/dc/elements/1.1/source</versionAddAnnotationProperty> <versionAddAnnotationProperty>http://purl.org/dc/terms/modified</versionAddAnnotationProperty> <versionValidSince>2010-07-01</versionValidSince> <versionValidUntil>9999-12-31</versionValidUntil>
</owl:Ontology>
<owl:AnnotationProperty rdf:about="http://aims.fao.org/aos/geopolitical.owl#versionValidSince"> <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"> This "versionValidSince" annoatation property is implemented for ontology versioning. The value of the datatype property *versionValidSince* indicates the particular version's first date of validity. <rdfs:comment> </owl:AnnotationProperty> <owl:AnnotationProperty rdf:about="http://aims.fao.org/aos/geopolitical.owl#versionValidUntil"> <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string">This "versionValidUntil" annoatation property is implemented for ontology versioning. The value of the property *versionValidUntil* indicates the particular version's last date of validity. <rdfs:comment> </owl:AnnotationProperty> <owl:AnnotationProperty rdf:about="http://aims.fao.org/aos/geopolitical.owl#versionAddAnnotationProperty"> <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string">This "versionAddAnnotationProperty" annoatation property is implemented for ontology versioning. The value of the property *versionAddAnnotationProperty* indicates the particular annotation property added in this version<rdfs:comment> </owl:AnnotationProperty> ................
discussion
References
- [1] Michel Klein, Dieter Fensel. Ontology versioning on the Semantic Web. In Proceedings of the International Semantic Web Working Symposium (SWWS). Stanford University, 2001. [CiteSeer]
- [2] KWTR: ontology versioning http://semanticweb.org/wiki/KWTR:_ontology_versioning
- [3]: Peter Plessers, Olga De Troyer Ontology Change Detection using a Version Log,http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.84.2835
Categories:
Wikimedia Foundation. 2010.