previewing owl changes and refactorings using a flexible xml database

15
Introduction TNTBase Refactoring Lifecycle Conclusion Previewing OWL Changes and Refactorings Using a Flexible XML Database Ontology Repositories and Editors @ ESWC 2010 Christoph Lange and Vyacheslav Zholudev Jacobs University, Bremen, Germany KWARC – Knowledge Adaptation and Reasoning for Content May 31, 2010 Lange/Zholudev (Jacobs U.) Previewing OWL Changes and Refactorings Using a Flexible XML Database May 31, 2010 1/13

Upload: christoph-lange

Post on 16-Jan-2015

413 views

Category:

Technology


1 download

DESCRIPTION

ORES workshop at ESWC 2010

TRANSCRIPT

Page 1: Previewing OWL Changes and Refactorings Using a Flexible XML Database

Introduction TNTBase Refactoring Lifecycle Conclusion

Previewing OWL Changes and RefactoringsUsing a Flexible XML Database

Ontology Repositories and Editors @ ESWC 2010

Christoph Lange and Vyacheslav Zholudev

Jacobs University, Bremen, Germany

KWARC – Knowledge Adaptation and Reasoning for Content

May 31, 2010

Lange/Zholudev (Jacobs U.) Previewing OWL Changes and Refactorings Using a Flexible XML Database May 31, 2010 1/13

Page 2: Previewing OWL Changes and Refactorings Using a Flexible XML Database

Introduction TNTBase Refactoring Lifecycle Conclusion

Ontology Refactoring and Change Management

Definition (Change Management for Ontologies)‘‘the process of performing the changes as well as [. . . ] the processof coping with the consequences of changes’’ (Klein 2004)

Definition (Refactoring [in Software Engineering])‘‘a disciplined technique for restructuring an existing body of code,altering its internal structure without changing its externalbehavior’’ (Fowler)

Lange/Zholudev (Jacobs U.) Previewing OWL Changes and Refactorings Using a Flexible XML Database May 31, 2010 2/13

Page 3: Previewing OWL Changes and Refactorings Using a Flexible XML Database

Introduction TNTBase Refactoring Lifecycle Conclusion

Ontology Refactorings and Restructurings

Typical Refactorings: splitting ontologies into modules vs.merging, moving axioms, rewriting axiomsA ⊑ B,A ⊑ C↔ A ⊑ B ⊓ CRestructurings: e. g. changing URIs

changes external behavior (other ontologies in the repository,software, annotated documents)tools try to keep potential damage low

Our Assumptions:Any change may break things.Changes should be tested (e. g. by other collaborators).We offer a versioned repository that previews changes beforemaking them.

Lange/Zholudev (Jacobs U.) Previewing OWL Changes and Refactorings Using a Flexible XML Database May 31, 2010 3/13

Page 4: Previewing OWL Changes and Refactorings Using a Flexible XML Database

Introduction TNTBase Refactoring Lifecycle Conclusion

TNTBase – Our Hammer

TNTBase = Versioned Storage for XML= Subversion + Berkeley DB XML + TNT(?)

1 xSVN – Subversion on steroids2 Web app based on Berkeley DB XML

SVN interfaceAny SVN clientsworkswith TNTBase

RESTful interfaceXQuery/XQuery Update – Extended with versioningmodelVirtual Documents – XML database views (hammer)

Lange/Zholudev (Jacobs U.) Previewing OWL Changes and Refactorings Using a Flexible XML Database May 31, 2010 4/13

Page 5: Previewing OWL Changes and Refactorings Using a Flexible XML Database

Introduction TNTBase Refactoring Lifecycle Conclusion

Virtual Documents: Editable XML Views

VDoc Specification defines VDocs:Mixture of static XML elements and XQueriesXQueries can reside separately, can be overridenParameters for XQueries

QueryableEditableMaterializable

VDocs – means to refactor ontologies

Lange/Zholudev (Jacobs U.) Previewing OWL Changes and Refactorings Using a Flexible XML Database May 31, 2010 5/13

Page 6: Previewing OWL Changes and Refactorings Using a Flexible XML Database

Introduction TNTBase Refactoring Lifecycle Conclusion

Factoring out a Submodule

<Ontology xmlns="http://www.w3.org/2002/07/owl#"xml:base="http://example.org/onto"xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">

<Prefix name="cars" IRI="http://example.org/onto#"/>

<Declaration><Class IRI="http://example.org/onto#Car"/></Declaration><Declaration><Class IRI="http://example.org/onto#MiniVan"/></Declaration><Declaration><Class IRI="#SportsCar"/></Declaration><Declaration><Class abbreviatedIRI="cars:Roadster"/></Declaration><Declaration><Class IRI="http://example.org/onto#AirPlane"/></Declaration><Declaration><Class IRI="http://example.org/onto#FighterBomber"/></Declaration>

<DisjointClasses><Annotation><AnnotationProperty abbreviatedIRI="rdfs:comment"/>

<Literal>Cars are not airplanes.</Literal></Annotation><Class IRI="#Car"/><Class abbreviatedIRI="cars:AirPlane"/>

</DisjointClasses>

<SubClassOf><Class abbreviatedIRI="cars:MiniVan"/><Class abbreviatedIRI="cars:Car"/></SubClassOf>

<SubClassOf><Class IRI="http://example.org/onto#SportsCar"/><Class IRI="http://example.org/onto#Car"/></SubClassOf>

<SubClassOf><Class IRI="http://example.org/onto#Roadster"/><Class IRI="http://example.org/onto#SportsCar"/></SubClassOf>

<SubClassOf><Class IRI="http://example.org/onto#FighterBomber"/><Class IRI="http://example.org/onto#AirPlane"/></SubClassOf>

</Ontology>

Lange/Zholudev (Jacobs U.) Previewing OWL Changes and Refactorings Using a Flexible XML Database May 31, 2010 6/13

Page 7: Previewing OWL Changes and Refactorings Using a Flexible XML Database

Introduction TNTBase Refactoring Lifecycle Conclusion

Factoring out a Submodule

<Ontology xmlns="http://www.w3.org/2002/07/owl#"xml:base="http://example.org/onto"xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">

<Prefix name="cars" IRI="http://example.org/onto#"/>

<Declaration><Class IRI="http://example.org/onto#Car"/></Declaration><Declaration><Class IRI="http://example.org/onto#MiniVan"/></Declaration><Declaration><Class IRI="#SportsCar"/></Declaration><Declaration><Class abbreviatedIRI="cars:Roadster"/></Declaration><Declaration><Class IRI="http://example.org/onto#AirPlane"/></Declaration><Declaration><Class IRI="http://example.org/onto#FighterBomber"/></Declaration>

<DisjointClasses><Annotation><AnnotationProperty abbreviatedIRI="rdfs:comment"/><Literal>Cars are not airplanes.</Literal></Annotation>

<Class IRI="#Car"/><Class abbreviatedIRI="cars:AirPlane"/></DisjointClasses>

<SubClassOf><Class abbreviatedIRI="cars:MiniVan"/><Class abbreviatedIRI="cars:Car"/></SubClassOf>

<SubClassOf><Class IRI="http://example.org/onto#SportsCar"/><Class IRI="http://example.org/onto#Car"/></SubClassOf>

<SubClassOf><Class IRI="http://example.org/onto#Roadster"/><Class IRI="http://example.org/onto#SportsCar"/></SubClassOf>

<SubClassOf><Class IRI="http://example.org/onto#FighterBomber"/><Class IRI="http://example.org/onto#AirPlane"/></SubClassOf>

</Ontology>

Lange/Zholudev (Jacobs U.) Previewing OWL Changes and Refactorings Using a Flexible XML Database May 31, 2010 6/13

Page 8: Previewing OWL Changes and Refactorings Using a Flexible XML Database

Introduction TNTBase Refactoring Lifecycle Conclusion

Factoring out a Submodule

<Ontology xmlns="http://www.w3.org/2002/07/owl#"xml:base="http://example.org/onto"xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">

<Prefix name="cars" IRI="http://example.org/onto#"/>

<Import>cars.owx</Import>

<Declaration><Class IRI="http://example.org/onto#AirPlane"/></Declaration><Declaration><Class IRI="http://example.org/onto#FighterBomber"/></Declaration>

<SubClassOf><Class IRI="http://example.org/onto#FighterBomber"/><Class IRI="http://example.org/onto#AirPlane"/></SubClassOf>

</Ontology>

Lange/Zholudev (Jacobs U.) Previewing OWL Changes and Refactorings Using a Flexible XML Database May 31, 2010 6/13

Page 9: Previewing OWL Changes and Refactorings Using a Flexible XML Database

Introduction TNTBase Refactoring Lifecycle Conclusion

Virtual Document Specification for Factoring out

<tnt:virtualdocument xmlns:tnt="http://tntbase.mathweb.org/ns"><tnt:skeleton query="tntbase:/factor-out/subclasses.xq"/><tnt:params><tnt:param name="input">

<tnt:value>/factor-out/transport.owx</tnt:value></tnt:param><tnt:param name="class"><tnt:value>http://example.org/onto#Car</tnt:value>

</tnt:param><tnt:param name="target"><tnt:value>cars.owx</tnt:value>

</tnt:param></tnt:params>

</tnt:virtualdocument>

These are default values; can be instantiated with other values (forrefactoring a different ontology).

Lange/Zholudev (Jacobs U.) Previewing OWL Changes and Refactorings Using a Flexible XML Database May 31, 2010 7/13

Page 10: Previewing OWL Changes and Refactorings Using a Flexible XML Database

Introduction TNTBase Refactoring Lifecycle Conclusion

XQuery for Factoring out

import module namespace tntx = "http://tntbase.org/ns/ores"at ’tntbase:/lib/ores-module.xq’;

declare default element namespace "http://www.w3.org/2002/07/owl#";

declare variable $input external;declare variable $class external;declare variable $target external;

copy $doc := fn:doc($input) modify(

delete nodestntx:complete-with-subclasses($doc/Ontology, $class),

insert node <Import>{ $target }</Import>after $doc/Ontology/Prefixlast()

)return $doc

Source code is inside the repository!

Lange/Zholudev (Jacobs U.) Previewing OWL Changes and Refactorings Using a Flexible XML Database May 31, 2010 8/13

Page 11: Previewing OWL Changes and Refactorings Using a Flexible XML Database

Introduction TNTBase Refactoring Lifecycle Conclusion

The Underlying Librarydeclare function tntx:complete-with-subclasses($onto as element(),

$class as xs:string) as element()* {(: for all tntx:subclasses, return tntx:axioms-for-class :)

};

declare function tntx:axioms-for-class($onto as element(), $class as xs:anyURI) as element()* {(: Declaration, SubClassOf, EquivalentClasses, DisjointClasses, ... :)

};

declare function tntx:subclasses($onto as element(), $class as xs:anyURI) as xs:anyURI* {for $subclass in

$onto/SubClassOf[tntx:expandIRIOf(Class[2]) eq $class]/Class[1]/tntx:expandIRIOf(.)return ($subclass, tntx:subclasses($onto, $subclass))

};

declare function tntx:expandIRIOf($parent as element()) as xs:anyURI {if ($parent/@IRI)then tntx:resolveIRIAgainstBase($parent/@IRI)else if ($parent/@abbreviatedIRI)then tntx:expandAbbreviatedIRI($parent/@abbreviatedIRI)else (: throw error :)

};

Key functionality: IRI expansion, equality of OWL expressionsSource code is inside the repository!

Lange/Zholudev (Jacobs U.) Previewing OWL Changes and Refactorings Using a Flexible XML Database May 31, 2010 9/13

Page 12: Previewing OWL Changes and Refactorings Using a Flexible XML Database

Introduction TNTBase Refactoring Lifecycle Conclusion

Further Refactorings

Renaming Entities expand and replace IRIs (in all modules)Merging Modules opposite of factoring outRewriting Axioms example: DisjointUnion in OWL 2 (syntactic

sugar for EquivalentClasses/ObjectUnionOf+ DisjointClasses)

Lowering Expressivity example: extract OWL 2 QL subontology.easy solution: throw away everything elsesmarter solution: weaken axioms

Stripping Axiom Annotations just remove Annotation children

Try the sandbox:http://tntbase.org/wiki/usecase_ontologies

Lange/Zholudev (Jacobs U.) Previewing OWL Changes and Refactorings Using a Flexible XML Database May 31, 2010 10/13

Page 13: Previewing OWL Changes and Refactorings Using a Flexible XML Database

Introduction TNTBase Refactoring Lifecycle Conclusion

Ontology Lifecycle

1 Write VDoc specification (and XQuery if needed)2 Apply it to desired ontologies3 Check the output (improve refactoring if needed)4 Two possibilities to continue:

Edit the VDoc (changes propagated back to original ontology)Materialize VDoc into new revision of ontology

Lange/Zholudev (Jacobs U.) Previewing OWL Changes and Refactorings Using a Flexible XML Database May 31, 2010 11/13

Page 14: Previewing OWL Changes and Refactorings Using a Flexible XML Database

Introduction TNTBase Refactoring Lifecycle Conclusion

Towards Practical Applications

TNTBase scales wellso far tested with different documents→ AI Mashup Challenge,ESWC Demo Sessionstarting to use it as a BioPortal backend

TNTBase as a storage backend for Protégé or NeOn ToolkitUse OWL Diff to optimize storage of revision historyTNTBase as a frontend application: human-readable renderingof interactive semantic documents→ ESWC Demo Session

Lange/Zholudev (Jacobs U.) Previewing OWL Changes and Refactorings Using a Flexible XML Database May 31, 2010 12/13

Page 15: Previewing OWL Changes and Refactorings Using a Flexible XML Database

Introduction TNTBase Refactoring Lifecycle Conclusion

Conclusion

TNTBase safely implements ontology refactorings as views.Thanks to XQuery Update and our utility functions, TNTBaseprocesses ontologies ‘‘semantically’’TNTBase enables agile collaborative refactoring.

Try the sandbox:http://tntbase.org/wiki/usecase_ontologies

Lange/Zholudev (Jacobs U.) Previewing OWL Changes and Refactorings Using a Flexible XML Database May 31, 2010 13/13