semantic technologies in practice – introduction to part iievabl45/files/session1.pdf · den...
TRANSCRIPT
Semantic Technologies in Practice – Introduction to Part II
Eva Blomqvist 2012-09-17
September 13, 2012 1
Outline
n Course information n Introduction to the Semantic Web and the Web of Data n Re-engineering and publishing of linked data
September 13, 2012 2
Course information
September 13, 2012 3
Department of Computer and Information Science (IDA) Linköpings universitet, Sweden
Course information – Web page
n http://www.ida.liu.se/~evabl45/semtechpracticecourse.en.shtml n Part I – if you feel you need to freshen up your background n Part II – slides, other material n Part III – ideas on course projects
September 13, 2012 4
Department of Computer and Information Science (IDA) Linköpings universitet, Sweden
Course requirements – Part II (4hp)
n Attendance at the seminars q If you cannot attend, let me know and you will get some reading
material instead + write a summary q Exercises are completed on your own q Deadline 30/11 for all seminars
n Completing the exercises q Exercises can be done individually or in groups of 2 (max) q Hand in through e-mail q If you are not finished at the end of the session?
n Complete the tasks and send result by e-mail n DEADLINE for seminar exercises – 30/11 n Firm deadline – no second chance
q What does “complete” mean? n Hand in your result, it does not have to be completely correct but
you have to show that you have tried and done the whole exercise!
September 13, 2012 5
Department of Computer and Information Science (IDA) Linköpings universitet, Sweden
Course idea – Part II
n Meet international researchers in the field and get an idea of the spectrum of research on applications of semantic technologies
n Get a hands-on feeling for some of the technologies that exist and are used by practitioners today
n Get to know some tools n Get ideas for how to use semantic technologies
(practically) in your own projects n Get ideas for Part III
n What it’s not about: q Knowing all the details of tools and formats q Theory (at least not that much...)
September 13, 2012 6
Department of Computer and Information Science (IDA) Linköpings universitet, Sweden
Schedule
n 20/9, 10-16 (John von Neumann) - Fabio Ciravegna teaches how to use semantic technologies for analyzing social media data
n ?? – Collaborative ontology engineering using XD
n 29/10, 10-16 (John von Neumann) - Kurt Sandkuhl (topic is still under preparation)
n 31/10, 13-15 (Alan Turing) + 1/11, 9-12 (John von Neumann) - Valentina Presutti teaches how to use semantic technologies for handling and enhancing CMS content
September 13, 2012 7
Department of Computer and Information Science (IDA) Linköpings universitet, Sweden
Introduction to the Semantic Web and the Web of Data
September 13, 2012 8
Department of Computer and Information Science (IDA) Linköpings universitet, Sweden
Web vs. Semantic Web
What do you see?
Semantik gör webben smartare Publicerad av CIO Sweden
Morgondagens internet är inte bara anpassat för människor. Nya lösningar gör att maskiner kan göra smartare sökningar.
Den semantiska webben är tänkt som en förlängning av den befintliga webben snarare än som en helt ny webb. Internet är en underbar uppfinning. Inte minst den del som kallas World Wide Web, eller webben, och som gör det möjligt att söka sig fram i en grafisk miljö via hyperlänkar. Det funkar på många sätt utmärkt – för oss människor. Vi kan presentera dokument som visas på skärmar runt om hela jordklotet och andra människor kan, förutsatt att det språk som används är begripligt för båda parter, ta del av informationen. Men för maskinen är det värre. Webben av idag är läsbar för maskiner. Men den är inte förståbar. … Av: Robert Brännström [email protected]
What does a computer see?
Semantik gör webben smartare Publicerad av CIO Sweden Morgondagens internet är inte bara anpassat för människor. Nya lösningar gör att maskiner kan göra smartare sökningar.
Den semantiska webben är tänkt som en förlängning av den befintliga webben snarare än som en helt ny webb. Internet är en underbar uppfinning. Inte minst den del som kallas World Wide Web, eller webben, och som gör det möjligt att söka sig fram i en grafisk miljö via hyperlänkar. Det funkar på många sätt utmärkt – för oss människor.��Vi kan presentera dokument som visas på skärmar runt om hela jordklotet och andra människor kan, förutsatt att det språk som används är begripligt för båda parter, ta del av informationen. ��Men för maskinen är det värre. Webben av idag är läsbar för maskiner. Men den är inte förståbar. �…��Av: Robert Brännström�[email protected]
But what about XML tags?
<titel> Semantik gör webben smartare</titel> Publicerad av <utgivare> CIO Sweden </utgivare>
<ingress> Morgondagens internet är inte bara anpassat för människor. Nya lösningar gör att maskiner kan göra smartare sökningar. </ingress>
<brödtext> Den semantiska webben är tänkt som en förlängning av den befintliga webben snarare än som en helt ny webb. Internet är en underbar uppfinning. Inte minst den del som kallas World Wide Web, eller webben, och som gör det möjligt att söka sig fram i en grafisk miljö via hyperlänkar. Det funkar på många sätt utmärkt – för oss människor. Vi kan presentera dokument som visas på skärmar runt om hela jordklotet och andra människor kan, förutsatt att det språk som används är begripligt för båda parter, ta del av informationen. Men för maskinen är det värre. Webben av idag är läsbar för maskiner. Men den är inte förståbar. … </brödtext> Av: <författare> Robert Brännström </författare> <e-post> [email protected] </e-post>
However…
<titel> Semantik gör webben smartare</titel> Publicerad av <utgivare> CIO Sweden </utgivare>
<ingress> Morgondagens internet är inte bara anpassat för människor. Nya lösningar gör att maskiner kan göra smartare sökningar. </ingress>
<brödtext> Den semantiska webben är tänkt som en förlängning av den befintliga webben snarare än som en helt ny webb. Internet är en underbar uppfinning. Inte minst den del som kallas World Wide Web, eller webben, och som gör det möjligt att söka sig fram i en grafisk miljö via hyperlänkar. Det funkar på många sätt utmärkt – för oss människor.��Vi kan presentera dokument som visas på skärmar runt om hela jordklotet och andra människor kan, förutsatt att det språk som används är begripligt för båda parter, ta del av informationen. ��Men för maskinen är det värre. Webben av idag är läsbar för maskiner. Men den är inte förståbar. �… </brödtext> Av: <författare> Robert Brännström </författare> <e-post> [email protected] </e-post>
Semantic tags?
<dc:title> Semantik gör webben smartare</dc:title> Publicerad av <dc:publisher> CIO Sweden </dc:publisher>
<dc:abstract> Morgondagens internet är inte bara anpassat för människor. Nya lösningar gör att maskiner kan göra smartare sökningar. </dc:abstract>
<example:content> Den semantiska webben är tänkt som en förlängning av den befintliga webben snarare än som en helt ny webb. Internet är en underbar uppfinning. Inte minst den del som kallas World Wide Web, eller webben, och som gör det möjligt att söka sig fram i en grafisk miljö via hyperlänkar. Det funkar på många sätt utmärkt – för oss människor.��Vi kan presentera dokument som visas på skärmar runt om hela jordklotet och andra människor kan, förutsatt att det språk som används är begripligt för båda parter, ta del av informationen. ��Men för maskinen är det värre. Webben av idag är läsbar för maskiner. Men den är inte förståbar. �… </example:content> Av: <dc:creator> Robert Brännström </dc:creator> <foaf:mbox> [email protected] </foaf:mbox>
Resources for the Semantic Web
n Metadata q Resources are marked-up with descriptions of their content. q No good unless everyone speaks the same language
n Terminologies q Provide shared and common vocabularies of a domain, so
search engines, agents, authors and users can communicate.
q No good unless everyone means the same thing n Ontologies
q Provide a shared and common understanding of a domain that can be communicated across people and applications, and will play a major role in supporting information exchange and discovery
The Semantic Web Layers
RDF
n RDF stands for Resource Description Framework
n It is a W3C Recommendation q http://www.w3.org/RDF
n RDF is a graphical formalism (+XML syntax + semantics) q for representing (meta)data q for describing the semantics of information in a machine-
accessible way
n Provides a simple data model based on triples
RDF Data Model
n Statements are <subject, predicate, object> triples: q <Sean,hasColleague,Ian>
n Can be represented as a graph:
n Statements describe properties of resources
n A resource is any object that can be pointed to by a URI: q A document, a picture, a paragraph on the Web,
http://www.cs.man.ac.uk/index.html, a book in the library, a real person (?), isbn://0141184280
n Properties themselves are also resources (URIs)
Linking RDF Statements
n The subject of one statement can be the object of another
n Such collections of statements form a directed, labeled graph
n Note that the object of a triple can also be a “literal”
(e.g. a string)
What does RDF give us?
n A mechanism for annotating data and resources. q Supported by for instance RDFa as a link to “normal” web
pages
n Single (simple) data model.
n Syntactic consistency between names (URIs).
n Low-level integration of data. q E.g., through “same as”-statements
Querying RDF using SPARQL
<http://example.org/book/book1> <http://purl.org/dc/elements/1.1/title> "SPARQL Tutorial" .
SELECT ?title WHERE {
<http://example.org/book/book1> <http://purl.org/dc/elements/1.1/title> ?title . }
"SPARQL Tutorial"
Linked Data - http://linkeddata.org/
n RDF data published on the web according to a set of principles: 1. Use URIs as names for things 2. Use HTTP URIs so that people can look up those names 3. When someone looks up a URI, provide useful
information, using the standards (RDF, SPARQL) 4. Include links to other URIs, so that they can discover more
things n The 5-star model to grade the datasets n Linking Open Data Project – LOD
q An initiative to publish open linked data on the web
LOD data
A LOD Example: DBPedia
n Extracts structured information (RDF) from Wikipedia n Browsable through a number of tools
(see http://wiki.dbpedia.org/OnlineAccess) n Queryable through SPARQL endpoint(s) n Example query to DBPedia: “All soccer players,
who played as goalkeeper for a club that has a stadium with more than 40.000 seats and who are born in a country with more than 10 million inhabitants”
Microformats
n Embedding “semantic” information directly into the (X)HTML – “semantic” in the human sense
n Introduces new values for existing XHTML attributes
“license” is a reserved keyword, for expressing a licensing relation è there are no namespaces!
n Drawback – no formal definition of the “keywords”
distributed under a <a rel="license" href="http://creativecommons.org/licenses/by/3.0/">Creative Commons License</a>
The hCard Microformat
n hCard is a microformat representation of the common vCard format – embedding vCards into HTML
n http://microformats.org/wiki/hcard
<div class="vcard"> <a class="url fn" href="http://tantek.com/"> Tantek Çelik </a> </div>
BEGIN:VCARD VERSION:3.0 N:Çelik;Tantek FN:Tantek Çelik URL:http://tantek.com END:VCARD
Semantic Annotations - RDFa
n Embedding RDF data in HTML pages q RDF data is produced in a simple manner q Can be connected to some formal interpretation (ontology)
n Uses XML namespaces to refer to the definition of the concepts used, e.g., the Dublin Core ontology
n http://www.w3.org/TR/xhtml-rdfa-primer/
<div xmlns:dc="http://purl.org/dc/elements/1.1/"> <h2 property="dc:title">The Trouble with Bob</h2> <h3 property="dc:creator">Alice</h3> </div>
Querying RDFa
Querying RDFa
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <head profile="http://www.w3.org/1999/xhtml/vocab"> <title>Alice in Semantic Wonderland</title> <base href="http://example.com/alice"></base> <link rel="stylesheet" type="text/css" href="http://www.w3.org/2006/07/SWD/RDFa/primer/style.css" /> </head> <body> <h1>Alice in Semantic Wonderland</h1> <div id="meta"><a href="http://tinyurl.com/5v7jzc"> <img src="http://www.w3.org/Icons/SW/Buttons/sw-rdfa-gray.png" alt="get metadata in RDF Turtle"/></a> </div> <div about="/posts/trouble_with_bob"> <h2 property="dc:title">The trouble with Bob</h2> <h3 property="dc:creator">Alice</h3> <p>The trouble with Bob is that he takes much better photos than I do:</p> <div class="imgbox" about="http://www.w3.org/2006/07/SWD/RDFa/primer/sunset.jpg"> <img src="http://www.w3.org/2006/07/SWD/RDFa/primer/sunset.jpg" alt="sunset" /> <div><span property="dc:title">Beautiful Sunset</span> by <span property="dc:creator">Bob</span>. </div> </div> … </body> </html>
Querying RDFa
@prefix dc: <http://purl.org/dc/elements/1.1/>. @prefix foaf: <http://xmlns.com/foaf/0.1/>. @prefix cc: <http://creativecommons.org/ns#>. <http://example.com/alice> cc:license <http://creativecommons.org/licenses/by/3.0/>; <http://example.com/posts/trouble_with_bob> dc:creator "Alice";
dc:title "The trouble with Bob". <http://example.com/alice#me> a foaf:Person;
foaf:knows [ a foaf:Person; foaf:homepage <http://example.com/manu>; foaf:name "Manu" ], [ a foaf:Person; foaf:homepage <http://example.com/bob>; foaf:name "Bob" ], [ a foaf:Person; foaf:homepage <http://example.com/eve>; foaf:name "Eve" ]; foaf:mbox <mailto:[email protected]>; foaf:name "Alice Birpemswick"; foaf:phone <tel:+1-617-555-7332> .
</2006/07/SWD/RDFa/primer/sunset.jpg> dc:creator "Bob";
dc:title "Beautiful Sunset" . <http://example.com/posts/jos_barbecue> dc:creator "Eve";
dc:title "Jo's Barbecue" .
Querying RDFa
@prefix dc: <http://purl.org/dc/elements/1.1/>. @prefix foaf: <http://xmlns.com/foaf/0.1/>. @prefix cc: <http://creativecommons.org/ns#>. <http://example.com/alice> cc:license <http://creativecommons.org/licenses/by/3.0/>; <http://example.com/posts/trouble_with_bob> dc:creator "Alice";
dc:title "The trouble with Bob". <http://example.com/alice#me> a foaf:Person;
foaf:knows [ a foaf:Person; foaf:homepage <http://example.com/manu>; foaf:name "Manu" ], [ a foaf:Person; foaf:homepage <http://example.com/bob>; foaf:name "Bob" ], [ a foaf:Person; foaf:homepage <http://example.com/eve>; foaf:name "Eve" ]; foaf:mbox <mailto:[email protected]>; foaf:name "Alice Birpemswick"; foaf:phone <tel:+1-617-555-7332> .
</2006/07/SWD/RDFa/primer/sunset.jpg> dc:creator "Bob";
dc:title "Beautiful Sunset" . <http://example.com/posts/jos_barbecue> dc:creator "Eve";
dc:title "Jo's Barbecue" .
Who is the creator of the post with the title "The trouble with Bob"? PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?creator_of_post FROM <http://www.w3.org/2007/08/pyRdfa/extract?uri=
http://www.w3.org/2006/07/SWD/RDFa/primer/alice-example.html> WHERE { ?post dc:title ?post_title ;
dc:creator ?creator_of_post . FILTER regex(?post_title, "The trouble with Bob", "i") }
September 13, 2012 32
Reengineering and Refactoring
Slides partly by Aldo Gangemi, STLab, ISTC-CNR, Italy
Why do I need transformations?
n A scenario q my system fetches knowledge from different sources in
LOD q each of these sources uses its own ontology/vocabulary
n Another scenario q I have legacy data in a DB or in a custom XML format q This data should be integrated with RDF data
How to arrive at a homogeneous representation of knowledge expressed with
heterogeneous schemas/vocabularies?
the Web of Data is fed by “triplifiers”, tools able
to transform content to Linked Data
triplifiers implement various methods typically based on bulk recipes which allow for
no or limited customization of the process
lack of good practices for knowledge representation
and organization
the transformation relies on
predetermined implicit assumptions on the domain semantics of the
non-RDF data source
Motivations
An Example
dbpedia: Bob_Marley
dbpedia: Person
foaf:name
“Bob Marley”
nyt: 65169961111056171853
skos: Concept
rdf:type
“Marley, Bob”
rdf:type
skos:prefLabel
I want to aggregate the two graphs
A DB stores data and answers queries
laboratori data_di_fondazione
sede temi
STLab 2008 Italia Tecnologie Semantiche
LOA …. …. ….
‣ Aldo is 48 ‣ Aldo works in Rome ‣ Aldo does research on Semantic Web
‣ STLab was founded in 2008 ‣ STLab is in Italy ‣ STLab does research on semantic technologies
nome data di nascita
luogo_di_lavoro
temi
Aldo 08-16-962 Roma Semantic Web
Alfio …. …. ….
Persons Labs
Complex queries?
n Who is interested in “Semantic Web” and is working in the same country as STLab is located?
37
workplace Rome
seat
Italy
same concept?
same country?
No answer
laboratori data_di_fondazione
sede temi
STLab 2008 Italia Tecnologie Semantiche
LOA …. …. ….
nome data di nascita
luogo_di_lavoro
temi
Aldo 08-16-962
Roma Semantic Web
Alfio …. …. ….
Persons Labs
38
Is mapping enough?
mapped ...
And this one? laboratori data_di_fo
ndazione sede temi
STLab 2008 Italia Tecnologie Semantiche
LOA …. …. …. ...
...
nome data di nascita
luogo_di_lavoro
temi
Aldo 08-16-962
Roma Semantic Web
Alfio …. …. ….
workplace Rome
seat
Italy same country?
Persons Labs
Publishing DB data as RDF on the Web
dbpedia:Rome
perscnr:Aldo
foaf:based_near
dbpedia:Italy
foaf:based_near
nome data di nascita
luogo_di_lavoro
temi
Aldo 08-16-962
Roma Semantic Web
Alfio …. …. ….
laboratori data_di_fondazione
sede temi
STLab 2008 Italia Tecnologie Semantiche
LOA …. …. ….
Persons Labs
labs:STLab
triplification
Data linking and querying on the web of data
dbpedia:Rome
perscnr:Aldo
foaf:based_near
dbpedia:Italy
foaf:based_near
dbpedia:Semantic_Web
foaf:topic_interest
labs:STLab
dbpedia:subdivisionName
• Who is interested in “Semantic Web” and is working in the same country as STLab is located?
How to answer really tough queries?
eurostat:Italien
owl:sameAs
4.8
eurostat:unemployment_rate_total
dbpedia:Rome
perscnr:Aldo
foaf:based_near
dbpedia:Italy
foaf:based_near
dbpedia:Semantic_Web
foaf:topic_interest
labs:STLab
dbpediap:subdivisionName
‣ Who is interested in “Semantic Web” and is working in a country where the unemployment rate is lower than 5%?
42
Knowledge transformation issues
n Syntactic interoperability bottleneck (platform + data model) q e.g. rdb, eav, xml, text, prolog, N3 q e.g. rdb with adjacency list, path enumeration
n Semantic interoperability bottleneck (logical + conceptual level) q e.g. rdb with: lexical, statistical, formal data q e.g. two different databases on the same topic
n Social, pragmatic interoperability bottleneck (privacy, sustainability, policy)
q e.g. different requirements, organizational contexts, etc.
42
Dealing with web semantics: current state n Much enthusiasm, a lot of nice, different ideas n Much confusion and mutual misunderstanding
between “scruffies” and “neats” q Pushing formal semantics beyond its limits (e.g. the “owl:sameAs” dispute)
q Doing ad-hoc apps q Mixing up strings, classes, terms, concepts, topics,
tags, etc. q Trivializing transformation from social to
formal semantics (e.g. when translating a syntactic frame directly to an OWL construct)
43 43
Some techniques for semantic data reuse n Virtual linked data
q Automatic RDB schema conversion to RDFS q RDB data browsing and on-demand automatic conversion to RDF q Sample tools: Sparql endpoint+D2R q Dataset example: IMDB q +Time to usage –Flexibility
n Ontology-based access with ad-hoc queries q (DL-Lite) ontology to be designed separately q Ad-hoc SQL query on RDB, “embedded” in class spec q On demand ontology-based navigation q Sample tools: Mastro+Quonto q +Complexity –Flexibility –Time to usage
n Physical linked data with custom ontologies q Custom conversion of RDB/XML to one or more OWL ontologies q Custom conversion of data to RDF-OWL datasets that can be published and queried q Sample tools: Sparql endpoint+Semion q Sample datasets: DBpedia, data.cnr.it q +Flexibility ±Time to usage ±Complexity
n Key aspects q Mapping specification q Consumable RDF data semantics 44
44
Transformation patterns
n Types of transformation patterns 1. Direct structural morphism
:Broader rdf:type dbs:Table :Narrow_concept rdf:type dbs:Column :France rdf:type dbs:Datum
2. Semantic interpretation
:Broader rdf:type owl:ObjectProperty :Narrow_concept rdf:type owl:Class :Paris :broader :France
45 45
Broader Narrow concept Paris
Broad concept France
Broader Narrow concept Paris
Broad concept France
46
Transformation patterns (cont.)
3. Re-interpretation, e.g. through alignment patterns n :Narrow_concept skos:Concept
q also as mediated semantic interpretation q also as revised semantic interpretation
4. Production: new entities, vocabulary/string manipulation n :Narrow_concept :Concept n “plant flora plant_life” :Plant, :Flora, :PlantLife
46
Semion – Example method
47 47
A common recipe
• each table is a rdfs:Class • each table record is an owl:Individual • each table column is a rdf:Property
Example
Class: Person DatatypeProperty: firstName DatatypeProperty: lastName Individual: Person1
Type: Person Facts: firstName “Aldo” lastName “Gangemi”
Individual: Person2
Type: Person Facts: firstName “Valentina” lastName “Presutti”
…
Implications
q Limited customization of the transformation process
q Difficulty in adopting good practices of knowledge reengineering and ontology design
q Limited exploitation of OWL expressivity for describing the domain
just extract RDF triples!
express the domain semantics
The Semion Reengineer
n It does not add any semantics, but just the RDF format
n Semion needs the meta-model of the structure of the source (and some code)
n Currently supports RDB and XML
n Supported sources can be extended by providing new reengineering services as an OSGi bundle (not available yet)
Basic idea
A meta-model for RDBs
Example of transformation of a DB Class: Table ObjectProperty: hasRecord
Domain: Table Range: Record inverseOf: isRecordOf
ObjectProperty: isRecordOf
Domain: Table Range: Record inverseOf: hasRecord
Individual: Person
Type: Table Facts: hasRecord AldoGangemi
Individual: AldoGangemi
Types: Record Facts: hasDatum AldoGangemiFirstName hasDatum AldoGangemiLastName isRecordOf Person
Reengineering Rules
n Table -> individual of dbs:Table n Column -> individual of dbs:Column n Record -> individual of dbs:Record n Field -> individual of dbs:Datum
Primary Keys
n primary keys are used for URI generation
Individual: Person_stlab.istc-cnr1
Type: Record
Foreign Keys
n Foreign keys identifies relations between tables and are mapped to relations between individuals
Individual: Person_stlab.istc-cnr1 Type: Record Facts: hasDatum Person_stlab.istc-cnr1_affiliation
Individual: Person_stlab.istc-cnr1_affiliation Type: Datum Facts: hasContent Institute_istc-cnr
Individual: Institute_istc-cnr Type: Record Facts: hasDatum Institute_istc-cnr_name
…and for XML
The Semion Refactorer
n Allows to align a data set expressed with a specific vocabulary/ontology to another vocabulary/ontology
n Is expressed as a set of rules n Rules are expressed in a human readable syntax
called SemionRule Syntax and can be transformed into
q SWRL rules for reasoning
q SPARQL CONSTRUCT for pure refactoring
n Rules realize recipes that can be saved (refactoring patterns)
Basic idea
ABox
TBox
SemionRule Syntax
dbs = <http://ontologydesignpatterns.org/ont/iks/dbs_l1.owl#> . owl = <http://www.w3.org/2002/07/owl#> . myRule[
is(dbs:Table, ?x) . has(dbs:hasColumn, ?x, ?y) -> is(owl:Class, ?x)
]
as a SPARQL CONSTRUCT
PREFIX dbs: <http://ontologydesignpatterns.org/ont/iks/dbs_l1.owl#> . PREFIX owl: <http://www.w3.org/2002/07/owl#> . PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . CONSTRUCT{ ?x rdf:type owl:Class } WHERE{
?x rdf:type dbs:Table . ?x dbs:hasColumn ?y
}
…and as a SWRL rule
<swrl:Variable rdf:ID=”x"/> <swrl:Variable rdf:ID=”y"/> <swrl:Imp> <swrl:body rdf:parseType="Collection">
<swrl:ClassAtom> <swrl:classPredicate rdf:resource="&dbs;Table"/> <swrl:argument1 rdf:resource="#x" />
</swrl:ClassAtom> <swrl:IndividualPropertyAtom>
<swrl:propertyPredicate rdf:resource=”&dbs;hasColumn"/> <swrl:argument1 rdf:resource="#x" /> <swrl:argument2 rdf:resource=”#y" /> </swrl:IndividualPropertyAtom> </swrl:body> <swrl:head rdf:parseType="Collection"> <swrl:ClassAtom>
<swrl:classPredicate rdf:resource="&owl;Class"/> <swrl:argument1 rdf:resource="#x" />
</swrl:ClassAtom> </swrl:head>
</swrl:Imp>
Stanbol Rule Syntax
in Stanbol a rule is defined as
ruleName[body -> head] where:
q The ruleName identifies the rule q The body is a set of atoms that must be satisfied when
evaluating the rule q The head or consequent is a set of atoms that must be
true if the condition is evaluated to be true q Both body and head consist of a list of conjunctive atoms
n body = atom1 . atom2 . … . atomN n head = atom1 . atom2 . … . atomM
q The conjunction ∧ in Stanbol Rules is expressed with the symbol “ . ”
Sample rule
Considering Stanbol Rules, the FOL formula hasFather(x,y) ∧ hasBrother(y,z) ⇒ hasUncle(x,z)
becomes
myRule[ has(<http//myont.org/hasFather>, ?x, ?y) .
has(<http/myont.org/hasBrother>, ?y, ?z) ->
has(<http//myont.org/hasUncle>, ?x, ?z) ]
Namespace Prefixes
n URIs are useful, but sometime too long for humans n We can use namespace prefixes instead of full URIs in
rule atoms n e.g: myont = <http://myont.org/> . myRule[ has(myont:hasFather, ?x, ?y) . has(myont:hasBrother, ?y, ?z) ->
has(myont:hasUncle, ?x, ?z) ]
Define a refactoring recipe
we want to use the FOAF vocabulary instead of SKOS
nyt: 65169961111056171853
skos: Concept
rdf:type
“Marley, Bob” skos:prefLabel
Define a refactoring recipe
skos = <http://www.w3.org/2004/02/skos/core#> .
foaf = <http://xmlns.com/foaf/0.1/> . conceptToPerson[ is(skos:Concept, ?x) ->
is(foaf:Person, ?x) ] . labelRule[ values(skos:prefLabel, ?x, ?y) ->
values(foaf:name, ?x, ?y) ]
69
Exercise
n Download Semion and launch it as follows:
q (Mac) java -jar -Xmx512m -XstartOnFirstThread /LocalPathname/it.cnr.istc.semion.tool-0.6-SNAPSHOT.one-jar.jar
q (Win) java -jar -Xmx512m \LocalPathname\it.cnr.istc.semion.tool-0.6-SNAPSHOT.one-jar.jar
n Connect to the indicated database and perform reengineering first, and alignment (refactoring) second
What about consuming data?
September 16, 2012 70
Department of Computer and Information Science (IDA) Linköpings universitet, Sweden
Linked Data and Ontologies
n Tools listing: http://www.w3.org/2001/sw/wiki/Tools
n APIs for handling ontologies q Jena q The OWL API
n Communicating with an OWL reasoner: OWLlink protocol
n Triple stores q Usually provide SPARQL endpoints q Data storage could be RDB
n Linked data browsers and query interfaces
n ...but end-users should not see the technology behind!
September 16, 2012 71
Department of Computer and Information Science (IDA) Linköpings universitet, Sweden
September 13, 2012 72
Department of Computer and Information Science (IDA) Linköpings universitet, Sweden