- EvoPat - Pattern-Based Evolution and Refactoring of RDF Knowledge Bases Christoph Rieß, Norman Heino,  Sebastian Tramp  and Sören Auer AKSW, Universität Leipzig
Content Motivation
Example
The EvoPat approach Concepts
Pattern Classification & Survey
Implementation & Evaluation Conclusion
Motivation Agile Knowledge Engineering By birgerking@flickr
Motivation Agile Knowledge Engineering
Steady process of Evolution in Knowledge Bases By petercat.harris@flickr
Motivation Agile Knowledge Engineering
Steady process of Evolution in Knowledge Bases
Can we manage this process? By MyMeltingBrain@flickr
Example Steve collects spiders from the caucasus region
He uses tags to describe special qualities (not covered by his schema) By pamilne@flickr http://db.caucasus-spiders.info
Example Some of his tags follow a special semantic (location descriptors, time descriptors, ...)
Now Steve wants to extend his vocabulary for these tags
That's evolution! By pamilne@flickr http://db.caucasus-spiders.info
Concepts (Excursion) Software Engineering Refactoring
Code Smells By helder@flickr
Concepts Basic Evolution Pattern Atomic evolution and refactoring operation
Works on data and schema level
Concepts Basic Evolution Pattern Atomic evolution and refactoring operation
Works on data and schema level Compound Evolution Pattern Linear sequence of several basic patterns
Concepts Basic Evolution Pattern Atomic evolution and refactoring operation
Works on data and schema level Compound Evolution Pattern Linear sequence of several basic patterns Bad Smell detects a suspicious structure in a knowledge base
Conceptual Model
Conceptual Model
Example “ Please set the language to X for all literals which do not have a language tag yet.” lang type : LANG s type : TEMP p type : TEMP ltrl type : TEMP SELECT DISTINCT * WHERE { %s% %p% %literal%. FILTER ( isLiteral(%literal%) )  FILTER ( lang(%literal%) = '' ) } INSERT: %s% %p% setLanguage(%literal%,%lang%) DELETE: %s% %p% %literal% V S U
Example Setup non-temp vars Materialize query Execute pre-processor functions
Execute query lang = en type : LANG s type : TEMP p type : TEMP ltrl type : TEMP SELECT DISTINCT  ?s ?p ?ltrl  WHERE { ?s ?p ?ltrl . FILTER ( isLiteral( ?ltrl ) )  FILTER ( lang( ?ltrl ) = '' ) } INSERT: %s% %p% setLanguage(%literal%,%lang%) DELETE: %s% %p% %literal% V S U
Example 3) For each result row: Materialize update queries
Execute pre-processor functions
Execute queries lang = en type : LANG s type : TEMP p type : TEMP ltrl type : TEMP SELECT DISTINCT  ?s ?p ?ltrl  WHERE { ?s ?p ?ltrl . FILTER ( isLiteral( ?ltrl ) )  FILTER ( lang( ?ltrl ) = '' ) } INSERT: %s% %p% setLanguage(%literal%,%lang%) (e.g.:  foaf:Person rdfs:label 'person'@en ) DELETE: %s% %p% %literal% (e.g.:  foaf:Person rdfs:label 'person' ) V S U

EvoPat - Pattern-Based Evolution and Refactoring of RDF Knowledge Bases