logo

OMWG D7.2: Mapping and Merging Tool Design

DERI OMWG Working Draft 23 November 2004

This version:
http://www.omwg.org/TR/d7/d7.2/v0.1/20050503/
Latest version:
http://www.omwg.org/2004/d7/d7.2/v0.1/
Previous version:
none
Author:
Francois Scharffe
Editors:
Francois Scharffe
Atanas Kiryakov

Copyright © 2004 DERI®, All Rights Reserved. DERI liability, trademark, document use, and software licensing rules apply.

this document is available as a non normative PDF version


Table of contents

1 Introduction
2 Mapping Language
3 Mapping Patterns library
4 Graphical mapping tool
6 Conclusion
7 Acknowledgement
Appendix A. References

1 Introduction

This deliverable presents the design of the mapping tool as a part of the ontology management system. This tool is built on top of an ontology mapping specification language, and a mappings patterns library that helps the user to identify mappings. We then present the first steps made towards a graphical mapping tool.

2 Ontology mapping specification language

2.1 Language specification

We will here present the mapping language developped to express the mappings. This language is being developed as a joint effort in the WSMO and OMWG working groups, and the Sekt and Dip european projects.

We present this language in the form of the abstract syntax. The abstract syntax is written in the form of EBNF, similar to the OWL Abstract Syntax. Any element between square brackets ‘[’ and ‘]’ is optional. Any element between curly brackets ‘{’ and ‘}’ can have multiple occurrences.
Each element of an ontology on the Semantic Web, whether it is a class, attribute, instance, or relation, is identified using a URI. In the abstract syntax, a URI is denoted with the name URIReference. We define the following identifiers:

Listing 1. Ids
mappingDocumentId ::= URIReference
ontologyId::= URIReference
classId::= URIReference
propertyId::= URIReference
attributeId::= URIReference
relationId::= URIReference
individualId::= URIReference

We allow concrete data values. The abstract syntax for data values is taken from the
OWL abstract syntax:

Listing 2. Literals
dataLiteral ::= typedLiteral|plainLiteral
typedLiteral
::= lexicalForm’ˆˆ’URIReference
plainLiteral ::= lexicalFrom[’@’languageTag]

The lexical form is a sequence of unicode characters in normal form C, as in RDF.
The language tag is an XML language tag, as in RDF.

First of all, the mapping document itself is declared, along with the ontologies participating.

Listing 3. Mapping Set
mappingSet ::= ’MappingSet(’ [ mappingSetId ]
{ ’sourceOntology(’ ontologyId ’)’ }
’targetOntology(’ ontologyId’)’
’annotations(’ { annotation } ’)’
’rules(’ { mappingRule } ’))’

A mapping consists of a number of annotations, corresponding to non-functional properties in WSMO [30], and a number of mapping rules. The creator of the mapping is advised to include a version identifier in the non-functional properties.

Listing 4. Annotation
annotation ::= ’Annotation(’ propertyID URIReference ’)’
|’Annotation(’ propertyID dataLiteral ’)’

Expressions are either class mappings, relation mappings, instance mappings or arbitrary logical expressions. The syntax for the logical expressions is not specified; it depends on the actual logical language to which the language is grounded.
A special kind of relation mappings are attribute mappings. Attributes are binary relations with a defined domain and are thus associated with a particular class. In the mapping itself the attribute can be either associated with the domain defined in the (source or target) ontology or with a subclass of this domain.
A mapping can be either uni- or bidirectional. In the case of a class mapping, this corresponds with class equivalence and class subsumption, respectively. In order to distinguish these kinds of mappings, we introduce two different keywords for class, relation and attribute mappings, namely ‘unidirectional’ and ‘bidirectional’. Individual mappings are always bidirectional. Unidirectional and bidirectional mappings are differentiated with the use of a switch. The use of this switch is required.
It is possible, although not required, to nest attribute mappings inside class mappings. Furthermore, it is possible to write an axiom, in the form of a class condition, which defines general conditions over the mapping, possibly involving terms of both source and target ontologies. Notice that this class condition is a general precondition for the mapping and thus is applied in both directions if the class mapping is a bidirectional mapping. Notice that we allow arbitrary axioms in the form of a logical expression. The form of such a logical expression depends on the logical language being used for the mappings and is thus not further specified here.

Listing 5. Class mapping
expression ::= ’classMapping(’           
                    ’unidirectional’|’bidirectional’

                    { annotation } 
                    classExpr classExpr 
                    { classAttributeMapping } 
                    { classCondition } 
[ ’{’ logicalExpression ’}’ ] ’)’

There is a distinction between attributes mapping in the context of a class and attributes mapped outside the context of a particular class. Because attributes are defined locally for a specific class, we expect the attribute mappings to occur mostly inside class mappings. The keywords for the mappings are the same. However, attribute mappings outside of the context of a class mappings need to be preceded with the class identifier, followed by a dot ’.’.

Listing 7. Attribute mapping
expression ::= ’attributeMapping(’ 
                     ’unidirectional’|’bidirectional’ 
                     attributeExpr attributeExpr 
{ attributeCondition }
[ ’{’ logicalExpression ’}’ ] ’)’

 

Listing 8. Relation mapping
expression ::= ’relationMapping(’ 
                    ’unidirectional’|’bidirectional’
relationExpr relationExpr
{ relationCondition }
[ ’{’ logicalExpression ’}’ ] ’)’

 

Listing 9. Instance mapping
expression ::= ’instanceMapping(’ individualID individualID ’)’

 

Listing 10. Class attribute mapping
expression ::= ’classAttributeMapping(’ 
                     ’unidirectional’|’bidirectional’ 
                     classExpr attributeExpr
[ ’{’ logicalExpression ’}’ ] ’)’

 

Listing 11. Class relation mapping
expression ::= ’classRelationMapping(’

                     ’unidirectional’|’bidirectional’ 
                     classExpr relationExpr
[ ’{’ logicalExpression ’}’ ] ’)’

 

Listing 12. Class instance mapping
expression ::= ’classInstanceMapping(
                     ’unidirectional’|’bidirectional’            
                     classExpr  individualId

                     [ ’{’ logicalExpression ’}’ ] ’)’

 

Listing 13. Logical Expression
expression ::= ’{’ logicalExpression ’}’

For class expressions we allow basic boolean algebra. This corresponds loosely with
Wiederhold’s ontology algebra [37]. Wiederhold included the basic intersection and
union, which correspond with our and and or operators. Wiederhold’s difference operator corresponds with a conjunction of two class expressions, where one is negated, i.e. for two class expressions C and D, the different C¡D corresponds with and(C,not(D)).
The join expression is a specific kind of disjunction, namely a disjunction with an additional logical expression which contains the precondition for instances to be included in the join.

Listing 14. Class expression
classExpr ::= classId
|’and(’ classExpr classExpr { classExpr } ’)’
|’or(’ classExpr classExpr { classExpr } ’)’
|’not(’ classExpr ’)’
|’join(’ classExpr classExpr { classExpr }
[ ’{’ logicalExpression ’}’ ] ’)’

Attribute expressions are defined as such, allowing for inverse, transitive close, symmetric closure and reflexive closure, where inverse(A) stands for the inverse of A, symmetric(A) stands for the symmetric closure of A , reflexive(A) stands for the reflexive closure of A and trans(A) stands for the transitive closure of A:

Listing 15. Attribute expression
attributeExpr ::= attributeId
|’and(’ attributeExpr attributeExpr { attributeExpr } ’)’
|’or(’ attributeExpr attributeExpr { attributeExpr } ’)’
|’not(’ attributeExpr ’)’
|’inverse(’ attributeExpr ’)’
|’symmetric(’ attributeExpr ’)’
|’reflexive(’ attributeExpr ’)’
|’trans(’ attributeExpr ’)’

Relation expressions are defined similar to class expressions:

Listing 16. Relation expression
relationExpr ::= relationId
|’and(’ relationExpr relationExpr { relationExpr } ’)’
|’or(’ relationExpr relationExpr { relationExpr } ’)’
|’not(’ relationExpr ’)’

 

Listing 17. Class conditions
classCondition ::= ’attributeValueCondition(’            
                        attributeId
                        ( individualID | dataLiteral ) 
                   ’)’
classCondition ::= ’attributeTypeCondition(’ 
                        attributeID
                        classExpr
                   ’)’
classCondition ::= ’attributeOccurrenceCondition(’

                       attributeID
                   ’)’

 

Listing 18. Attributeconditions
attributeCondition ::= ’valueCondition(’ 
                          (individualID          
                         | dataLiteral) 
                       ’)’
attributeCondition ::= ’typeCondition(’ 
                            classExpression

                       ’)’

Especially when mapping several source ontologies into one target ontology, different
classes and relations need to be joined. Although apparently similar, a join mapping is
fundamentally different from an intersection mapping.

2.2 Language API

We developped an API to deal with the mapping language.

Here is the big picture of the language API's object model.

Object model

3 Mapping patterns library

See Sekt Del 4.5.1.

4 Graphical Mapping tool

We will develop a graphical tool to realize mappings on top of the language. This tool is part of the general ontology management system and will be tightly integrate with the ontology editing and browsing tool (see del. d8.2)

7 Acknowledgement

The work is funded by the European Commission under the projects DIP, Knowledge Web, Ontoweb, SEKT, SWWS, Esperonto and h-TechSight; by Science Foundation Ireland under the DERI-Lion project; and by the Vienna city government under the CoOperate programme.

The authors would like to thank to all the members of the OMWG working group for their advices and inputs to this document.

Appendix A. References

 


Valid XHTML 1.1!

$Date: 2004/10/22 16:12:55 $

webmaster