SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
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
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 process
 of 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 external
 behavior’’ (Fowler)




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



Ontology Refactorings and Restructurings
          Typical Refactorings: splitting ontologies into modules vs.
          merging, moving axioms, rewriting axioms
          A B, A C ↔ A B C
          Restructurings: 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 before
 making them.

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



TNTBase – Our Hammer

 TNTBase = Versioned Storage for XML
 = Subversion + Berkeley DB XML + TNT(?)
   1 xSVN – Subversion on steroids
   2 Web app based on Berkeley DB XML
          SVN interface
                 Any SVN clients works with TNTBase
          RESTful interface
                 XQuery/XQuery Update – Extended with versioning model
                 Virtual Documents – XML database views (hammer)



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



Virtual Documents: Editable XML Views


          VDoc Specification defines VDocs:
                 Mixture of static XML elements and XQueries
                 XQueries can reside separately, can be overriden
                 Parameters for XQueries
          Queryable
          Editable
          Materializable

               VDocs – means to refactor ontologies


Lange/Zholudev (Jacobs U.)      Previewing OWL Changes and Refactorings Using a Flexible XML Database   May 31, 2010   5/13
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
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
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
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 (for
 refactoring a different ontology).


Lange/Zholudev (Jacobs U.)      Previewing OWL Changes and Refactorings Using a Flexible XML Database   May 31, 2010   7/13
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 nodes
       tntx: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
Introduction                 TNTBase                    Refactoring                    Lifecycle                 Conclusion



The Underlying Library
 declare 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 expressions
          Source code is inside the repository!
Lange/Zholudev (Jacobs U.)      Previewing OWL Changes and Refactorings Using a Flexible XML Database   May 31, 2010   9/13
Introduction                 TNTBase                    Refactoring                    Lifecycle                 Conclusion



Further Refactorings

 Renaming Entities expand and replace IRIs (in all modules)
 Merging Modules opposite of factoring out
 Rewriting 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 else
             smarter 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
Introduction                 TNTBase                    Refactoring                    Lifecycle                 Conclusion



Ontology Lifecycle



     1    Write VDoc specification (and XQuery if needed)
     2    Apply it to desired ontologies
     3    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
Introduction                 TNTBase                    Refactoring                    Lifecycle                 Conclusion



Towards Practical Applications


          TNTBase scales well
                 so far tested with different documents → AI Mashup Challenge,
                 ESWC Demo Session
                 starting to use it as a BioPortal backend
          TNTBase as a storage backend for Protégé or NeOn Toolkit
          Use OWL Diff to optimize storage of revision history
          TNTBase as a frontend application: human-readable rendering
          of 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
Introduction                 TNTBase                    Refactoring                    Lifecycle                 Conclusion



Conclusion



          TNTBase safely implements ontology refactorings as views.
          Thanks to XQuery Update and our utility functions, TNTBase
          processes 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

Más contenido relacionado

Similar a Previewing OWL Changes and Refactorings Using a Flexible XML Database

Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...Marco Gralike
 
Stream Reasoning: Where we got so far. Oxford 2010.1.18
Stream Reasoning: Where we got so far. Oxford 2010.1.18Stream Reasoning: Where we got so far. Oxford 2010.1.18
Stream Reasoning: Where we got so far. Oxford 2010.1.18Emanuele Della Valle
 
Future Programming Language
Future Programming LanguageFuture Programming Language
Future Programming LanguageYLTO
 
Extending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective LanguagesExtending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective Languagesfranciscoortin
 
XML London 2013 - Architecture of xproc.xq an XProc processor
XML London 2013 - Architecture of xproc.xq an XProc processorXML London 2013 - Architecture of xproc.xq an XProc processor
XML London 2013 - Architecture of xproc.xq an XProc processorjimfuller2009
 
A Recommender System for Refining Ekeko/X Transformation
A Recommender System for Refining Ekeko/X TransformationA Recommender System for Refining Ekeko/X Transformation
A Recommender System for Refining Ekeko/X TransformationCoen De Roover
 
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1Marco Gralike
 
247th ACS Meeting: Experiment Markup Language (ExptML)
247th ACS Meeting: Experiment Markup Language (ExptML)247th ACS Meeting: Experiment Markup Language (ExptML)
247th ACS Meeting: Experiment Markup Language (ExptML)Stuart Chalk
 
Re-engineering Eclipse MDT/OCL for Xtext
Re-engineering Eclipse MDT/OCL for XtextRe-engineering Eclipse MDT/OCL for Xtext
Re-engineering Eclipse MDT/OCL for XtextEdward Willink
 
HT2010 Paper Presentation
HT2010 Paper PresentationHT2010 Paper Presentation
HT2010 Paper Presentationinakipaz
 
Integrating a Domain Ontology Development Environment and an Ontology Search ...
Integrating a Domain Ontology Development Environment and an Ontology Search ...Integrating a Domain Ontology Development Environment and an Ontology Search ...
Integrating a Domain Ontology Development Environment and an Ontology Search ...Takeshi Morita
 
Presenting and Preserving the Change in Taxonomic Knowledge for Linked Data
Presenting and Preserving the Change in Taxonomic Knowledge for Linked DataPresenting and Preserving the Change in Taxonomic Knowledge for Linked Data
Presenting and Preserving the Change in Taxonomic Knowledge for Linked DataNational Institute of Informatics (NII)
 
[Nuxeo World 2013] Nuxeo Studio
[Nuxeo World 2013] Nuxeo Studio[Nuxeo World 2013] Nuxeo Studio
[Nuxeo World 2013] Nuxeo StudioNuxeo
 
Functional reactive programming
Functional reactive programmingFunctional reactive programming
Functional reactive programmingAraf Karsh Hamid
 

Similar a Previewing OWL Changes and Refactorings Using a Flexible XML Database (20)

Microservices in Clojure
Microservices in ClojureMicroservices in Clojure
Microservices in Clojure
 
Transformer Design
Transformer DesignTransformer Design
Transformer Design
 
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
 
treeview
treeviewtreeview
treeview
 
treeview
treeviewtreeview
treeview
 
Stream Reasoning: Where we got so far. Oxford 2010.1.18
Stream Reasoning: Where we got so far. Oxford 2010.1.18Stream Reasoning: Where we got so far. Oxford 2010.1.18
Stream Reasoning: Where we got so far. Oxford 2010.1.18
 
Future Programming Language
Future Programming LanguageFuture Programming Language
Future Programming Language
 
Extending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective LanguagesExtending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective Languages
 
Data shapes-test-suite
Data shapes-test-suiteData shapes-test-suite
Data shapes-test-suite
 
LOD2: State of Play WP6 - LOD2 Stack Architecture
LOD2: State of Play WP6 - LOD2 Stack ArchitectureLOD2: State of Play WP6 - LOD2 Stack Architecture
LOD2: State of Play WP6 - LOD2 Stack Architecture
 
XML London 2013 - Architecture of xproc.xq an XProc processor
XML London 2013 - Architecture of xproc.xq an XProc processorXML London 2013 - Architecture of xproc.xq an XProc processor
XML London 2013 - Architecture of xproc.xq an XProc processor
 
A Recommender System for Refining Ekeko/X Transformation
A Recommender System for Refining Ekeko/X TransformationA Recommender System for Refining Ekeko/X Transformation
A Recommender System for Refining Ekeko/X Transformation
 
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
 
247th ACS Meeting: Experiment Markup Language (ExptML)
247th ACS Meeting: Experiment Markup Language (ExptML)247th ACS Meeting: Experiment Markup Language (ExptML)
247th ACS Meeting: Experiment Markup Language (ExptML)
 
Re-engineering Eclipse MDT/OCL for Xtext
Re-engineering Eclipse MDT/OCL for XtextRe-engineering Eclipse MDT/OCL for Xtext
Re-engineering Eclipse MDT/OCL for Xtext
 
HT2010 Paper Presentation
HT2010 Paper PresentationHT2010 Paper Presentation
HT2010 Paper Presentation
 
Integrating a Domain Ontology Development Environment and an Ontology Search ...
Integrating a Domain Ontology Development Environment and an Ontology Search ...Integrating a Domain Ontology Development Environment and an Ontology Search ...
Integrating a Domain Ontology Development Environment and an Ontology Search ...
 
Presenting and Preserving the Change in Taxonomic Knowledge for Linked Data
Presenting and Preserving the Change in Taxonomic Knowledge for Linked DataPresenting and Preserving the Change in Taxonomic Knowledge for Linked Data
Presenting and Preserving the Change in Taxonomic Knowledge for Linked Data
 
[Nuxeo World 2013] Nuxeo Studio
[Nuxeo World 2013] Nuxeo Studio[Nuxeo World 2013] Nuxeo Studio
[Nuxeo World 2013] Nuxeo Studio
 
Functional reactive programming
Functional reactive programmingFunctional reactive programming
Functional reactive programming
 

Más de Christoph Lange

Faire Datenökonomie für Wirtschaft, Wissenschaft und Gesellschaft: Was brauch...
Faire Datenökonomie für Wirtschaft, Wissenschaft und Gesellschaft: Was brauch...Faire Datenökonomie für Wirtschaft, Wissenschaft und Gesellschaft: Was brauch...
Faire Datenökonomie für Wirtschaft, Wissenschaft und Gesellschaft: Was brauch...Christoph Lange
 
Research Careers in Applied Computer Science
Research Careers in Applied Computer ScienceResearch Careers in Applied Computer Science
Research Careers in Applied Computer ScienceChristoph Lange
 
OSCOSS: Opening Scholarly Communication in Social Sciences
OSCOSS: Opening Scholarly Communication in Social SciencesOSCOSS: Opening Scholarly Communication in Social Sciences
OSCOSS: Opening Scholarly Communication in Social SciencesChristoph Lange
 
WDAqua ITN – Answering Questions using Web Data
WDAqua ITN – Answering Questions using Web DataWDAqua ITN – Answering Questions using Web Data
WDAqua ITN – Answering Questions using Web DataChristoph Lange
 
Machine Support for Interacting with Scientific Publications Improving Inform...
Machine Support for Interacting with Scientific Publications Improving Inform...Machine Support for Interacting with Scientific Publications Improving Inform...
Machine Support for Interacting with Scientific Publications Improving Inform...Christoph Lange
 
Interlinking Data and Knowledge in Enterprises, Research and Society with Lin...
Interlinking Data and Knowledge in Enterprises, Research and Society with Lin...Interlinking Data and Knowledge in Enterprises, Research and Society with Lin...
Interlinking Data and Knowledge in Enterprises, Research and Society with Lin...Christoph Lange
 
Linked Open (Geo)Data and the Distributed Ontology Language – a perfect match
Linked Open (Geo)Data and the Distributed Ontology Language – a perfect matchLinked Open (Geo)Data and the Distributed Ontology Language – a perfect match
Linked Open (Geo)Data and the Distributed Ontology Language – a perfect matchChristoph Lange
 
Linking Big Data to Rich Process Descriptions
Linking Big Data to Rich Process DescriptionsLinking Big Data to Rich Process Descriptions
Linking Big Data to Rich Process DescriptionsChristoph Lange
 
The Distributed Ontology Language (DOL): Use Cases, Syntax, and Extensibility
The Distributed Ontology Language (DOL): Use Cases, Syntax, and ExtensibilityThe Distributed Ontology Language (DOL): Use Cases, Syntax, and Extensibility
The Distributed Ontology Language (DOL): Use Cases, Syntax, and ExtensibilityChristoph Lange
 
Bringing Mathematics To the Web of Data: the Case of the Mathematics Subject ...
Bringing Mathematics To the Web of Data: the Case of the Mathematics Subject ...Bringing Mathematics To the Web of Data: the Case of the Mathematics Subject ...
Bringing Mathematics To the Web of Data: the Case of the Mathematics Subject ...Christoph Lange
 
Semantic Web Technology: The Key to Making Scientific Information Systems Social
Semantic Web Technology: The Key to Making Scientific Information Systems SocialSemantic Web Technology: The Key to Making Scientific Information Systems Social
Semantic Web Technology: The Key to Making Scientific Information Systems SocialChristoph Lange
 
TCP – zuverlässiger Ende-zu-Ende-Datenstrom
TCP – zuverlässiger Ende-zu-Ende-DatenstromTCP – zuverlässiger Ende-zu-Ende-Datenstrom
TCP – zuverlässiger Ende-zu-Ende-DatenstromChristoph Lange
 
Making Heterogeneous Ontologies Interoperable Through Standardisation
Making Heterogeneous Ontologies Interoperable Through StandardisationMaking Heterogeneous Ontologies Interoperable Through Standardisation
Making Heterogeneous Ontologies Interoperable Through StandardisationChristoph Lange
 
JOBAD – Interactive Mathematical Documents
JOBAD – Interactive Mathematical DocumentsJOBAD – Interactive Mathematical Documents
JOBAD – Interactive Mathematical DocumentsChristoph Lange
 
Publishing Math Lecture Notes as Linked Data
Publishing Math Lecture Notes as Linked DataPublishing Math Lecture Notes as Linked Data
Publishing Math Lecture Notes as Linked DataChristoph Lange
 
sTeX+ – a System for Flexible Formalization of Linked Data
sTeX+ – a System for Flexible Formalization of Linked DatasTeX+ – a System for Flexible Formalization of Linked Data
sTeX+ – a System for Flexible Formalization of Linked DataChristoph Lange
 
Krextor – An Extensible Framework for Contributing Content Math to the Web of...
Krextor – An Extensible Framework for Contributing Content Math to the Web of...Krextor – An Extensible Framework for Contributing Content Math to the Web of...
Krextor – An Extensible Framework for Contributing Content Math to the Web of...Christoph Lange
 
Mathematical Semantics of Statistical Data
Mathematical Semantics of Statistical DataMathematical Semantics of Statistical Data
Mathematical Semantics of Statistical DataChristoph Lange
 
Enabling Collaboration on Semiformal Mathematical Knowledge by Semantic Web I...
Enabling Collaboration on Semiformal Mathematical Knowledge by Semantic Web I...Enabling Collaboration on Semiformal Mathematical Knowledge by Semantic Web I...
Enabling Collaboration on Semiformal Mathematical Knowledge by Semantic Web I...Christoph Lange
 
Ontology Integration and Interoperability (OntoIOp) – Part 1: The Distributed...
Ontology Integration and Interoperability (OntoIOp) – Part 1: The Distributed...Ontology Integration and Interoperability (OntoIOp) – Part 1: The Distributed...
Ontology Integration and Interoperability (OntoIOp) – Part 1: The Distributed...Christoph Lange
 

Más de Christoph Lange (20)

Faire Datenökonomie für Wirtschaft, Wissenschaft und Gesellschaft: Was brauch...
Faire Datenökonomie für Wirtschaft, Wissenschaft und Gesellschaft: Was brauch...Faire Datenökonomie für Wirtschaft, Wissenschaft und Gesellschaft: Was brauch...
Faire Datenökonomie für Wirtschaft, Wissenschaft und Gesellschaft: Was brauch...
 
Research Careers in Applied Computer Science
Research Careers in Applied Computer ScienceResearch Careers in Applied Computer Science
Research Careers in Applied Computer Science
 
OSCOSS: Opening Scholarly Communication in Social Sciences
OSCOSS: Opening Scholarly Communication in Social SciencesOSCOSS: Opening Scholarly Communication in Social Sciences
OSCOSS: Opening Scholarly Communication in Social Sciences
 
WDAqua ITN – Answering Questions using Web Data
WDAqua ITN – Answering Questions using Web DataWDAqua ITN – Answering Questions using Web Data
WDAqua ITN – Answering Questions using Web Data
 
Machine Support for Interacting with Scientific Publications Improving Inform...
Machine Support for Interacting with Scientific Publications Improving Inform...Machine Support for Interacting with Scientific Publications Improving Inform...
Machine Support for Interacting with Scientific Publications Improving Inform...
 
Interlinking Data and Knowledge in Enterprises, Research and Society with Lin...
Interlinking Data and Knowledge in Enterprises, Research and Society with Lin...Interlinking Data and Knowledge in Enterprises, Research and Society with Lin...
Interlinking Data and Knowledge in Enterprises, Research and Society with Lin...
 
Linked Open (Geo)Data and the Distributed Ontology Language – a perfect match
Linked Open (Geo)Data and the Distributed Ontology Language – a perfect matchLinked Open (Geo)Data and the Distributed Ontology Language – a perfect match
Linked Open (Geo)Data and the Distributed Ontology Language – a perfect match
 
Linking Big Data to Rich Process Descriptions
Linking Big Data to Rich Process DescriptionsLinking Big Data to Rich Process Descriptions
Linking Big Data to Rich Process Descriptions
 
The Distributed Ontology Language (DOL): Use Cases, Syntax, and Extensibility
The Distributed Ontology Language (DOL): Use Cases, Syntax, and ExtensibilityThe Distributed Ontology Language (DOL): Use Cases, Syntax, and Extensibility
The Distributed Ontology Language (DOL): Use Cases, Syntax, and Extensibility
 
Bringing Mathematics To the Web of Data: the Case of the Mathematics Subject ...
Bringing Mathematics To the Web of Data: the Case of the Mathematics Subject ...Bringing Mathematics To the Web of Data: the Case of the Mathematics Subject ...
Bringing Mathematics To the Web of Data: the Case of the Mathematics Subject ...
 
Semantic Web Technology: The Key to Making Scientific Information Systems Social
Semantic Web Technology: The Key to Making Scientific Information Systems SocialSemantic Web Technology: The Key to Making Scientific Information Systems Social
Semantic Web Technology: The Key to Making Scientific Information Systems Social
 
TCP – zuverlässiger Ende-zu-Ende-Datenstrom
TCP – zuverlässiger Ende-zu-Ende-DatenstromTCP – zuverlässiger Ende-zu-Ende-Datenstrom
TCP – zuverlässiger Ende-zu-Ende-Datenstrom
 
Making Heterogeneous Ontologies Interoperable Through Standardisation
Making Heterogeneous Ontologies Interoperable Through StandardisationMaking Heterogeneous Ontologies Interoperable Through Standardisation
Making Heterogeneous Ontologies Interoperable Through Standardisation
 
JOBAD – Interactive Mathematical Documents
JOBAD – Interactive Mathematical DocumentsJOBAD – Interactive Mathematical Documents
JOBAD – Interactive Mathematical Documents
 
Publishing Math Lecture Notes as Linked Data
Publishing Math Lecture Notes as Linked DataPublishing Math Lecture Notes as Linked Data
Publishing Math Lecture Notes as Linked Data
 
sTeX+ – a System for Flexible Formalization of Linked Data
sTeX+ – a System for Flexible Formalization of Linked DatasTeX+ – a System for Flexible Formalization of Linked Data
sTeX+ – a System for Flexible Formalization of Linked Data
 
Krextor – An Extensible Framework for Contributing Content Math to the Web of...
Krextor – An Extensible Framework for Contributing Content Math to the Web of...Krextor – An Extensible Framework for Contributing Content Math to the Web of...
Krextor – An Extensible Framework for Contributing Content Math to the Web of...
 
Mathematical Semantics of Statistical Data
Mathematical Semantics of Statistical DataMathematical Semantics of Statistical Data
Mathematical Semantics of Statistical Data
 
Enabling Collaboration on Semiformal Mathematical Knowledge by Semantic Web I...
Enabling Collaboration on Semiformal Mathematical Knowledge by Semantic Web I...Enabling Collaboration on Semiformal Mathematical Knowledge by Semantic Web I...
Enabling Collaboration on Semiformal Mathematical Knowledge by Semantic Web I...
 
Ontology Integration and Interoperability (OntoIOp) – Part 1: The Distributed...
Ontology Integration and Interoperability (OntoIOp) – Part 1: The Distributed...Ontology Integration and Interoperability (OntoIOp) – Part 1: The Distributed...
Ontology Integration and Interoperability (OntoIOp) – Part 1: The Distributed...
 

Último

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 

Último (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 

Previewing OWL Changes and Refactorings Using a Flexible XML Database

  • 1. 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
  • 2. 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 process of 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 external behavior’’ (Fowler) Lange/Zholudev (Jacobs U.) Previewing OWL Changes and Refactorings Using a Flexible XML Database May 31, 2010 2/13
  • 3. Introduction TNTBase Refactoring Lifecycle Conclusion Ontology Refactorings and Restructurings Typical Refactorings: splitting ontologies into modules vs. merging, moving axioms, rewriting axioms A B, A C ↔ A B C Restructurings: 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 before making them. Lange/Zholudev (Jacobs U.) Previewing OWL Changes and Refactorings Using a Flexible XML Database May 31, 2010 3/13
  • 4. Introduction TNTBase Refactoring Lifecycle Conclusion TNTBase – Our Hammer TNTBase = Versioned Storage for XML = Subversion + Berkeley DB XML + TNT(?) 1 xSVN – Subversion on steroids 2 Web app based on Berkeley DB XML SVN interface Any SVN clients works with TNTBase RESTful interface XQuery/XQuery Update – Extended with versioning model Virtual Documents – XML database views (hammer) Lange/Zholudev (Jacobs U.) Previewing OWL Changes and Refactorings Using a Flexible XML Database May 31, 2010 4/13
  • 5. Introduction TNTBase Refactoring Lifecycle Conclusion Virtual Documents: Editable XML Views VDoc Specification defines VDocs: Mixture of static XML elements and XQueries XQueries can reside separately, can be overriden Parameters for XQueries Queryable Editable Materializable VDocs – means to refactor ontologies Lange/Zholudev (Jacobs U.) Previewing OWL Changes and Refactorings Using a Flexible XML Database May 31, 2010 5/13
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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 (for refactoring a different ontology). Lange/Zholudev (Jacobs U.) Previewing OWL Changes and Refactorings Using a Flexible XML Database May 31, 2010 7/13
  • 10. 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 nodes tntx: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
  • 11. Introduction TNTBase Refactoring Lifecycle Conclusion The Underlying Library declare 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 expressions Source code is inside the repository! Lange/Zholudev (Jacobs U.) Previewing OWL Changes and Refactorings Using a Flexible XML Database May 31, 2010 9/13
  • 12. Introduction TNTBase Refactoring Lifecycle Conclusion Further Refactorings Renaming Entities expand and replace IRIs (in all modules) Merging Modules opposite of factoring out Rewriting 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 else smarter 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
  • 13. Introduction TNTBase Refactoring Lifecycle Conclusion Ontology Lifecycle 1 Write VDoc specification (and XQuery if needed) 2 Apply it to desired ontologies 3 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
  • 14. Introduction TNTBase Refactoring Lifecycle Conclusion Towards Practical Applications TNTBase scales well so far tested with different documents → AI Mashup Challenge, ESWC Demo Session starting to use it as a BioPortal backend TNTBase as a storage backend for Protégé or NeOn Toolkit Use OWL Diff to optimize storage of revision history TNTBase as a frontend application: human-readable rendering of 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
  • 15. Introduction TNTBase Refactoring Lifecycle Conclusion Conclusion TNTBase safely implements ontology refactorings as views. Thanks to XQuery Update and our utility functions, TNTBase processes 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