introduction to the semantic web
DESCRIPTION
Very basic introductory talk about the Semantic Web, given to undergraduate and posgraduate students of Universidad del Valle (Cali, Colombia) in September 2010TRANSCRIPT
Introduction to theSemantic Web
Oscar Corcho ([email protected])
Universidad Politécnica de Madrid
Universidad del Valle, Cali, ColombiaSeptember 7th 2010
Acknowledgements: Asunción Gómez-Pérez, Jesús Barrasa, Angel López Cima, Oscar Muñoz, Jose Angel Ramos Gargantilla, María del Carmen Suárez de Figueroa, Boris Villazón, Mariano Fernández López, Luis Vilches, Carlos Ruíz Moreno
Work distributed under the license Creative Commons Attribution-Noncommercial-Share Alike 3.0
Overview
• Coming to terms: The Web (1.0 and 2.0), the Semantic Web, the Web of Linked Data and all its applications• The Web (1.0 and 2.0)
• Web applications• The Semantic Web (pre-SemanticWeb, SW1.0 and SW3.0)
• Semantic Web Applications Or [Semantic | Web]+ Applications • The Web of Linked Data
• Linked Data Applications
• Semantic-based Applications• preSemanticWeb Applications
• Annotation• Semantic Web 1.0 Applications
• Annotation, Data Integration and Decision Support Systems• Semantic Web 3.0 Applications
• (Collaborative) Annotation and Data Integration
• Conclusions and Trends
Health and Safety Notice
ClassificationDisclaimer: This is not the only way that applications can be classified or grouped. In fact, many other possibilities exist for the classification of Semantic Web application.
Overview
• Coming to terms: The Web (1.0 and 2.0), the Semantic Web, the Web of Linked Data and all its applications• The Web (1.0 and 2.0)
• Web applications• The Semantic Web (pre-SemanticWeb, SW1.0 and SW3.0)
• Semantic Web Applications Or [Semantic | Web]+ Applications • The Web of Linked Data
• Linked Data Applications
• Semantic-based Applications• preSemanticWeb Applications
• Annotation• Semantic Web 1.0 Applications
• Annotation, Data Integration and Decision Support Systems• Semantic Web 3.0 Applications
• (Collaborative) Annotation and Data Integration
• Conclusions and Trends
The beginning: Web 1.0
WWWHTTPURI
From Web1.0 to Web2.0
More than30M pages
More than1000M users
WWWHTTP, HTML, URI
New requirements start arising• Cooperation• Dynamicity• Decentralised change• Heterogeneity• Multimedia content
Web2.0 basic sites and services
Web1.0 vs Web2.0
• Cooperation• Dynamicity• Decentralised change• Heterogeneity• Multimedia content
Web Applications
• Who doesn’t know what is a Web application?• Let’s define it
• A web application is an application that is accessed over a network such as the Internet or an intranet.
• The term may also mean a computer software application that is…• … hosted in a browser-controlled environment (e.g. a Java
applet)• … or coded in a browser-supported language (such as
JavaScript, combined with a browser-rendered markup language like HTML)
• … and reliant on a common web browser to render the application executable.
• Some comments• Too many technology-related terms in the definition• No mentions to the evolution of user-generated content (Web1.0
Web2.0), although it is already well understood.
Overview
• Coming to terms: The Web (1.0 and 2.0), the Semantic Web, the Web of Linked Data and all its applications• The Web (1.0 and 2.0)
• Web applications• The Semantic Web (pre-SemanticWeb, SW1.0 and SW3.0)
• Semantic Web Applications Or [Semantic | Web]+ Applications • The Web of Linked Data
• Linked Data Applications
• Semantic-based Applications• preSemanticWeb Applications
• Annotation• Semantic Web 1.0 Applications
• Annotation, Data Integration and Decision Support Systems• Semantic Web 3.0 Applications
• (Collaborative) Annotation and Data Integration
• Conclusions and Trends
(Syntactic) Web Limitations
• A place where computers do the presentation (easy) and people do the linking and interpreting (hard).
• Why not get computers to do more of the hard work?
Resource
ResourceResource Resource Resource
ResourceResource Resource
Resource
Resource
hrefhrefhref
hrefhrefhref
hrefhrefhref
href href
href
Hard Work using the Syntactic Web…
Find images of Oscar Corcho
…Marta Millán (Universidad del Valle)…
What’s the Problem?
• Typical web page markup consists of:• Rendering information
(e.g., font size and colour)
• Hyper-links to related content
• Semantic content is accessible to humans but not (easily) to computers…
Information we can see…
Universidad del ValleOrganización UniversitariaAlumnosInvestigaciónDeporte
Eventos y actividades… (en la universidad/fuera…?)
Noticias
Tipos de personas a los que va dirigidoAlumnosProfesoresPersonal de Administración y Servicios
…
WWW2002The eleventh international world wide webconSheraton waikiki hotelHonolulu, hawaii, USA7-11 may 20021 location 5 days learn interactRegistered participants coming fromaustralia, canada, chile denmark, france, germany, ghana, hong kong, india, ireland, italy, japan, malta, new zealand, the netherlands, norway, singapore, switzerland, the united kingdom, the united states, vietnam, zaireRegister nowOn the 7th May Honolulu will provide the backdrop of the eleventh international world wide web conference. This prestigious event …Speakers confirmedTim berners-leeTim is the well known inventor of the Web,…
Information a machine can see…
Solution: XML markup with “meaningful” tags?
<name>WWW2002The eleventh international world wide webcon</name><date>7-11 may 2002</date> <location>Sheraton waikiki hotelHonolulu, hawaii, USA</location><introduction>Register nowOn the 7th May Honolulu will provide the backdrop of the eleventh international world wide web conference. This prestigious event …Speakers confirmed</introduction><speaker>Tim berners-lee <bio>Tim is the well known inventor of the Web,</bio></speaker><speaker>Tim berners-lee <bio>Tim is the well known inventor of the Web,</bio></speaker> <registration>Registered participants coming fromaustralia, canada, chile denmark, france, germany, ghana, hong kong, india, ireland, italy, japan, malta, new zealand, the netherlands, norway, singapore, switzerland, the united kingdom, the united states, vietnam, zaire<registration>
But What About…?
<conf>WWW2002The eleventh international world wide webcon</conf><date>7-11 may 2002</date> <place>Sheraton waikiki hotelHonolulu, hawaii, USA</place><introduction>Register nowOn the 7th May Honolulu will provide the backdrop of the eleventh international world wide web conference. This prestigious event …Speakers confirmed</introduction><speaker>Tim berners-lee <bio>Tim is the well known inventor of the Web,</bio></speaker><speaker>Tim berners-lee <bio>Tim is the well known inventor of the Web,</bio></speaker> <registration>Registered participants coming fromaustralia, canada, chile denmark, france, germany, ghana, hong kong, india, ireland, italy, japan, malta, new zealand, the netherlands, norway, singapore, switzerland, the united kingdom, the united states, vietnam, zaire<registration>
Still the Machine only sees…
<>WWW2002The eleventh international world wide webcon<><>7-11 may 2002</> <>Sheraton waikiki hotelHonolulu, hawaii, USA<><>Register nowOn the 7th May Honolulu will provide the backdrop of the eleventh international world wide web conference. This prestigious event …Speakers confirmed</><>Tim berners-lee <>Tim is the well known inventor of the Web,</></><>Tim berners-lee <>Tim is the well known inventor of the Web,</></> <>Registered participants coming fromaustralia, canada, chile denmark, france, germany, ghana, hong kong, india, ireland, italy, japan, malta, new zealand, the netherlands, norway, singapore, switzerland, the united kingdom, the united states, vietnam, zaire<>
What is the Semantic Web?• An extension of the current
Web…• … where information and services
are given well-defined and explicitly represented meaning, …
• … so that it can be shared and used by humans and machines, ...
• ... better enabling them to work in cooperation
• How? • Promoting information exchange
by tagging web content with machine processable descriptions of its meaning.
• And technologies and infrastructure to do this
Need to Add “Semantics”
• Agreement on the meaning of annotations• Shared understanding of a domain of interest• Formal and machine manipulable model of a domain of interest
• An ontology is an engineering artifact, which provides: • A vocabulary of terms• A set of explicit assumptions regarding the intended meaning of the
vocabulary. • Almost always including concepts and their classification• Almost always including properties between concepts
• Besides...• The meaning (semantics) of such terms is formally specified• New terms can be formed by combining existing ones• Can also specify relationships between terms in multiple ontologies
Types of ontologies
Catalog/ID
Thesauri “narrower
term” relationFormal
is-a
Frames (properties
)
General Logical
constraints
Terms/ glossary
Informal is-a
Formal instance
Value Restrs.
Disjointness, Inverse, part-
Of ...
Lassila O, McGuiness D (2001) The Role of Frame-Based Representation on the Semantic Web. Technical Report. Knowledge Systems Laboratory. Stanford University. KSL-01-02
A catalog
Consoles and Accessories (1150) Amiga (12) Amstrad (28) Atari (22) Commodore (13) Microsoft (31) Xbox (20) Xbox360 (11) Nintendo (338) GameBoy (47) GameBoy Advance (40) GameBoy Color (16) Gamecube (38) GameBoy Micro (2) Nintendo 64 (74) SuperNintendo (51) Nintendo DS (52) Nintendo wii (16)
Catalog: finite list of terms. It can provide an unambiguous
interpretation of terms. (E.g. 1150 unambiguously denotes “consoles
and accessories“.)
http://www.todocoleccion.net/catalogo.cfm
A glossary of terms
Action - Proceeding taken in a court of law. Synonymous with case, suit lawsuit.
Adjudication - A judgment or decree
Adversary system - Basic U.S. trial system in which each of the opposing parties has opportunity to state his viewpoints before the court. Plaintiff argues for defendant's guilt (criminal) or liability (civil). Defense argues for defendant's innocence (criminal) or against liability civil)
Affidavit - A written or printed declaration or statement under oath
Affirm - The assertion of an appellate court that the judgment of the lower court is correct and should stand.
Glossary: list of terms and meanings, which are expressed as
natural language statements.
http://www.headinjury.com/lawglossary.htm
Thesauri
Agricultural economics MT 6.35 Agriculture FR Agroéconomie SP Economía agraria NT1 Agricultural credit NT1 Agricultural development NT2 Subsistence agriculture NT1 Agricultural markets NT1 Agricultural planning NT1 Agricultural policy NT2 Agricultural prices NT2 Food security NT1 Agricultural production NT1 Agricultural statistics NT2 Food statistics NT1 Land economics NT2 Agrarian structure NT3 Land reform NT2 Farm size NT2 Land reclamation NT2 Land tenure NT2 Land value RT Agricultural enterprises RT Agroindustry RT Rural economy
Thesaurus: list of terms that specifies what terms are preferred,
the relation narrower term, etc. (e.g. “agricultural credit“ is a narrower
term [NT] than “agricultural economics“)
http://www2.ulcc.ac.uk/unesco/
Agricultural industry USE Agroindustry
A searching system uses ”agroindustry” when the query includes ”agrocultural industry”,
Informal is-a
Term hierarchies: they provide a general notion of
generalization and specialization.
http://dir.yahoo.com/
Formal is-a
Strict subclass hierarchies: if A is a subclass of B, then if an object is an instance
of A necessarily implies that the object is instance of B.
http://www.xml.com/pub/a/2005/01/26/formtax.html
…<owl:Class rdf:ID="Transportation"/><owl:Class rdf:ID="AirVehicle">
<rdfs:subClassOf rdf:resource="#Transportation"/></owl:Class><owl:Class rdf:about="#GroundVehicle">
<rdfs:subClassOf rdf:resource="#Transportation"/></owl:Class><owl:Class rdf:about="#Automobile">
<rdfs:subClassOf> <owl:Class rdf:ID="GroundVehicle"/> </rdfs:subClassOf></owl:Class><owl:Class rdf:ID="Truck">
<rdfs:subClassOf> <owl:Class rdf:about="#GroundVehicle"/> </rdfs:subClassOf></owl:Class>…
Logical constraints
Ontologies with general logical constraints: they include constraints, explicit
formal definitions, etc.
TRAVEL
PLACE
Has arrival placeHas departure place
travel (= 1 departurePlace.place) (= 1 arrivalPlace.place) ( hasTransportMean.string)
Gómez-Pérez A, Fernández-López M, Corcho O (2003) Ontological engineering. Springer-Verlag, London
<!-- http://www.owl-ontologies.com/unnamed.owl#hasDeparturePlace --><owl:ObjectProperty rdf:about="#hasDeparturePlace"><rdfs:domain rdf:resource="#travel"/><rdfs:range rdf:resource="#place"/></owl:ObjectProperty>
<!-- http://www.owl-ontologies.com/unnamed.owl#hasArrivalPlace --><owl:ObjectProperty rdf:about="#hasArrivalPlace"><rdfs:domain rdf:resource="#travel"/><rdfs:range rdf:resource="#place"/></owl:ObjectProperty>
Ontology Languages
• A large amount of work on Semantic Web has concentrated on the definition of a collection or “stack” of languages. • Used to support the representation and use of metadata• Basic machinery that we can use to represent the extra semantic
information needed for the Semantic Web
RDF(S)
OWL
RDFS
RDF
XML
SWRL
29
Index
• Resource Description Framework (RDF)• RDF primitives• Reasoning with RDF
• RDF Schema• RDF Schema primitives• Reasoning with RDFS
• RDF(S) Management APIs• SPARQL• OWL
RDF: Resource Description Framework
• W3C recommendation• RDF is graphical formalism ( + XML syntax + semantics)
• For representing metadata• For describing the semantics of information in a machine-
accessible way• Resources are described in terms of properties and property
values using RDF statements• Statements are represented as triples, consisting of a subject,
predicate and object. [S, P, O]
oeg:Oscar oeg:Asun
oeg:Raul “http://www.fi.upm.es/”
person:hasHomePage
“Oscar Corcho García”
person:hasName
person:hasColleague
person:hasColleague
30
URIs (Universal-Uniform Resource Identifer)
• Two types of identifiers can be used to identify Linked Data resources• Hash URIs or URIRefs (Unique Resource Identifiers
References)• A URI and an optional Fragment Identifier separated
from the URI by the hash symbol ‘#’• http://www.ontology.org/people#Person• people:Person
• Slash URIs or plain URIs can also be used, as in FOAF:• http://xmlns.com/foaf/0.1/Person
31
RDF Serialisations
• Normative• RDF/XML (www.w3.org/TR/rdf-syntax-grammar/)
• Alternative (for human consumption)• N3 (http://www.w3.org/DesignIssues/Notation3.html)• Turtle (http://www.dajobe.org/2004/01/turtle/)• TriX (http://www.w3.org/2004/03/trix/)• …
Important: the RDF serializations allow different syntactic variants. E.g., the order of RDF statements
has no meaning
32
RDF Serialisations. RDF/XML
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:person="http://www.ontologies.org/ontologies/people#"
xmlns="http://www.oeg-upm.net/ontologies/people#"
xml:base="http://www.oeg-upm.net/ontologies/people">
<rdf:Property rdf:about="http://www.ontologies.org/ontologies/people#hasHomePage"/>
<rdf:Property rdf:about="http://www.ontologies.org/ontologies/people#hasColleague"/>
<rdf:Property rdf:about="http://www.ontologies.org/ontologies/people#hasName"/>
<rdf:Description rdf:about="#Raul"/>
<rdf:Description rdf:about="#Asun">
<person:hasColleague rdf:resource="#Raul"/>
<person:hasHomePage>http://www.fi.upm.es</person:hasHomePage>
</rdf:Description>
<rdf:Description rdf:about="#Oscar">
<person:hasColleague rdf:resource="#Asun"/>
<person:hasName>Oscar Corcho García</person:hasName>
</rdf:Description>
</rdf:RDF>
33
RDF Serialisations. N3
@base <http://www.oeg-upm.net/ontologies/people >
@prefix person: <http://www.ontologies.org/ontologies/people#>
:Asun person:hasColleague :Raul ;
person:hasHomePage “http://www.fi.upm.es/”.
:Oscar person:hasColleague :Asun ;
person:hasName “Óscar Corcho García”.
34
Exercise
• Objective• Get used to the different syntaxes of RDF
• Tasks• Take the text of an RDF file and create its corresponding graph• Take an RDF graph and create its corresponding RDF/XML and N3 files
35
Exercise 1.a. Create a graph from a file
• Open the file StickyNote_PureRDF.rdf
• Create the corresponding graph from it
• Compare your graph with those of your colleagues
36
37
Exercise 1.a. StickyNote_PureRDF.rdf
38
Exercise 1.b. Create files from a graph
• Transform the following graph into N3 syntax
Sensor029
Class01
Measurement8401
2010-06-12T12:00:1229
Computer101
User10A
Pedro
includes
includes
hasOwner
hasName
hasMeasurement
hasTemperature atTime
Blank nodes: structured property values
• Most real-world data involves structures that are more complicated than sets of RDF triple statements
• In RDF/XML, it is an <rdf:Description> node with no rdf:about• In N3, it is a resource identifier that starts with ‘_’
• E.g., “_:nodeX”
oeg:Oscar
city:BoadillaDelMonte Campus de Montegancedo s/n
address:hasStreetName
“Oscar Corcho García”person:hasName
address:city
person:hasPostalAddress
This intermediate URI does not need to have a name
39
Typed literals
• So far, all values have been presented as strings• XML Schema datatypes can be used to specify
values (objects in some RDF triple statements)
• In RDF/XML, this is expressed as:• <rdf:Description rdf:about=”#Oscar”>
<person:hasBirthDate
rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1976-02-02 </person:hasBirthDate></rdf:Description>
• In N3, this is expressed as:• oeg:Oscar person:hasBirthDate ”1976-02-02”^^xsd:date .
oeg:Oscar 1976-02-02person:hasBirthDate
40
RDF Containers
• There is often the need to describe groups of things• A book was created by several authors• A lesson is taught by several persons• etc.
• RDF provides a container vocabulary• rdf:Bag A group of resources or literals, possibly including
duplicate members, where the order of members is not significant• rdf:Seq A group of resources or literals, possibly including
duplicate members, where the order of members is significant• rdf:Alt A group of resources or literals that are alternatives
(typically for a single value of a property)
oeg:Oscar
“[email protected]” “[email protected]”
rdf:_1
person:hasEmailAddress
rdf:_2
rdf:Seqrdf:type
41
RDF Reification
• RDF statements about other RDF statements• “Raúl believes that Oscar’s birthdate is on Feb 2nd, 1976 and that
his e-mail address is [email protected]”
• RDF Reification• Allows expressing beliefs (and other modalities)• Allows expressing trust models, digital signatures, etc.• Allows expressing metadata about metadata
oeg:Raúl oeg:Oscar
“[email protected]” 02/02/1976
person:hasEmailAddress
modal:believes
person:hasBirthDate
42
Main value of a structured value
• Sometimes one of the values of a structured value is the main one• The weight of an item is 2.4 kilograms • The most important value is 2.4, which is expressed with
rdf:value
• Scarcely used
product:Item1
2.4 units:kilogram
rdf:value
product:hasWeight
units:hasWeightUnit
43
44
Index
• Resource Description Framework (RDF)• RDF primitives• Reasoning with RDF
• RDF Schema• RDF Schema primitives• Reasoning with RDFS
• RDF(S) Management APIs• SPARQL• OWL
RDF inference. Graph matching techniques
• RDF inference is based on graph matching techniques
• Basically, the RDF inference process consists of the following steps:• Transform an RDF query into a template graph that has to
be matched against the RDF graph• It contains constant and variable nodes, and constant
and variable edges between nodes• Match against the RDF graph, taking into account constant
nodes and edges• Provide a solution for variable nodes and edges
45
RDF inference. Examples (I)
• Sample RDF graph
• Query: “Tell me who are the persons who have Asun as a colleague”
• Result: oeg:Oscar and oeg:Raúl
oeg:Oscar oeg:Asun
oeg:Raúl “http://www.fi.upm.es/”
person:hasHomePage
“Oscar Corcho García”
person:hasName
person:hasColleague
person:hasColleague
? oeg:Asunperson:hasColleague
46
RDF inference. Examples (II)
• Query: “Tell me which are the relationships between Oscar and Asun”
• Result: oeg:hasColleague
• Query: “Tell me the homepage of Oscar colleagues”
• Result: “http://www.fi.upm.es/”
oeg:Oscar oeg:Asun?
oeg:Oscar
?
person:hasHomePage
person:hasColleague
47
RDF inference. Entailment rules
48
49
Index
• Resource Description Framework (RDF)• RDF primitives• Reasoning with RDF
• RDF Schema• RDF Schema primitives• Reasoning with RDFS
• RDF(S) Management APIs• SPARQL• OWL
RDFS: RDF Schema
• W3C Recommendation• RDF Schema extends RDF to enable talking about classes of
resources, and the properties to be used with them• Class definition: rdfs:Class, rdfs:subClassOf• Property definition: rdfs:subPropertyOf, rdfs:range, rdfs:domain• Other primitives: rdfs:comment, rdfs:label, rdfs:seeAlso, rdfs:isDefinedBy
• RDFS vocabulary adds constraints on models, e.g.:• x,y,z type(x,y) and subClassOf(y,z) type(x,z)
ex:Personex:Oscar
rdfs:subClassOf
ex:Animal
rdf:type
50
RDF(S) Serialisations. RDF/XML syntax
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:person="http://www.ontologies.org/ontologies/people#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns="http://www.oeg-upm.net/ontologies/people#"
xml:base="http://www.oeg-upm.net/ontologies/people">
<rdfs:Class rdf:about="http://www.ontologies.org/ontologies/people#Professor">
<rdfs:subClassOf>
<rdfs:Class rdf:about="http://www.ontologies.org/ontologies/people#Person"/>
</rdfs:subClassOf>
</rdfs:Class>
<rdfs:Class rdf:about="http://www.ontologies.org/ontologies/people#Lecturer">
<rdfs:subClassOf rdf:resource="http://www.ontologies.org/ontologies/people#Person"/>
</rdfs:Class>
<rdfs:Class rdf:about="http://www.ontologies.org/ontologies/people#PhD">
<rdfs:subClassOf rdf:resource="http://www.ontologies.org/ontologies/people#Person"/>
</rdfs:Class>
…
51
RDF(S) Serialisations. RDF/XML syntax
…
<rdf:Property rdf:about="http://www.ontologies.org/ontologies/people#hasHomePage"/>
<rdf:Property rdf:about="http://www.ontologies.org/ontologies/people#hasColleague">
<rdfs:domain rdf:resource=" http://www.ontologies.org/ontologies/people#Person"/>
<rdfs:range rdf:resource=" http://www.ontologies.org/ontologies/people#Person"/>
</rdf:Property>
<rdf:Property rdf:about="http://www.ontologies.org/ontologies/people#hasName">
<rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
</rdf:Property>
<person:PhD rdf:ID="Raul"/>
<person:Professor rdf:ID=“Asun">
<person:hasColleague rdf:resource="#Raul"/>
<person:hasHomePage>http://www.fi.upm.es</person:hasHomePage>
</person:Professor>
<person:Lecturer rdf:ID="Oscar">
<person:hasColleague rdf:resource="#Asun"/>
<person:hasName>Óscar Corcho García</person:hasName>
</person:Lecturer>
</rdf:RDF>
52
RDF(S) Serialisations. N3
@base <http://www.oeg-upm.net/ontologies/people >
@prefix person: <http://www.ontologies.org/ontologies/people#>
person:hasColleague a rdf:Property;
rdfs:domain person:Person;
rdfs:range person:Person.
person:Professor rdfs:subClassOf person:Person.
person:Lecturer rdfs:subClassOf person:Person.
person:PhD rdfs:subClassOf person:Person.
:Asun a person:Professor;
person:hasColleague :Raul ;
person:hasHomePage “http://www.fi.upm.es/”.
:Oscar a person:Lecturer;
person:hasColleague :Asun ;
person:hasName “Óscar Corcho García”.
:Raul a person:PhD.
a is equivalent to rdf:type
53
Flight
rdfs:Literal rdfs:Class
company-name singleFare
units:currencyQuantity
rdfs:range
rdfs:range
rdfs:domainrdfs:domain
rdf:Type
departureDate
rdfs:domain
time:Date
rdfs:range
arrivalDate
rdfs:range
rdfs:domain
rdf:Propertyrdf:Type
rdf:Type rdf:Typerdf:Type
RDF
RDFS
IB-4321“Iberia”
500 euros10/11/2005
singleFare departureDate
arrivalDate
company-namerdf:Type
rdf:Type
rdf:Type
rdf:Type
RDF(S) Example
54
Exercise
• Objective• Get used to the different syntaxes of RDF(S)
• Tasks• Take the text of an RDF(S) file and create its corresponding graph• Take an RDF(S) graph and create its corresponding RDF/XML and N3 files
55
Exercise 2.a. Create a graph from a file
• Open the files StickyNote.rdf and StickyNote.rdfs
• Create the corresponding graph from them
• Compare your graph with those of your colleagues
56
Exercise 2.a. StickyNote.rdf
57
Exercise 2.a. StickyNote.rdfs
58
59
Exercise 2.b. Create files from a graph
• Transform the following graph into N3 syntax
Sensor029
Class01
2010-06-12T12:00:1229
Computer101
User10A
Pedro
ObjectRoom PersonMeasurement
includes
includes
hasOwner
hasName
hasMeasurement
hasTemperature atTime
60
Index
• Resource Description Framework (RDF)• RDF primitives• Reasoning with RDF
• RDF Schema• RDF Schema primitives• Reasoning with RDFS
• RDF(S) Management APIs• SPARQL• OWL
RDF(S) inference. Entailment rules
61
RDF(S) inference. Additional inferences
62
RDF(S) limitations
• RDFS too weak to describe resources in sufficient detail• No localised range and domain constraints
• Can’t say that the range of hasChild is person when applied to persons and elephant when applied to elephants
• No existence/cardinality constraints• Can’t say that all instances of person have a mother that is also a
person, or that persons have exactly 2 parents• No boolean operators
• Can’t say or, not, etc.• No transitive, inverse or symmetrical properties
• Can’t say that isPartOf is a transitive property, that hasPart is the inverse of isPartOf or that touches is symmetrical
• Difficult to provide reasoning support• No “native” reasoners for non-standard semantics• May be possible to reason via FOL axiomatisation
63
Exercise
• Objective• Understand the features of RDF(S) for implementing ontologies, including its
limitations• Tasks
• Given a scenario description, build a simple ontology in RDF Schema
64
Exercise 3. Domain description
• Un lugar puede ser un lugar de interés.• Los lugares de interés pueden ser lugares turísticos o establecimientos,
pero no las dos cosas a la vez.• Los lugares turísticos pueden ser palacios, iglesias, ermitas y
catedrales.• Los establecimientos pueden ser hoteles, hostales o albergues.• Un lugar está situado en una localidad, la cual a su vez puede ser una
villa, un pueblo o una ciudad.• Un lugar de interés tiene una dirección postal que incluye su calle y su
número.• Las localidades tienen un número de habitantes.• Las localidades se encuentran situadas en provincias.
• Covarrubias es un pueblo con 634 habitantes de la provincia de Burgos.• El restaurante “El Galo” está situado en Covarrubias, en la calle Mayor,
número 5.• Una de las iglesias de Covarrubias está en la calle de Santo Tomás.
65
Exercise 3. Sample resulting ontology
66
67
Index
• Resource Description Framework (RDF)• RDF primitives• Reasoning with RDF
• RDF Schema• RDF Schema primitives• Reasoning with RDFS
• RDF(S) Management APIs• SPARQL• OWL
Sample RDF APIs
• RDF libraries for different languages: • Java, Python, C, C++, C#, .Net, Javascript, Tcl/Tk, PHP, Lisp, Obj-C, Prolog,
Perl, Ruby, Haskell• List in http://esw.w3.org/topic/SemanticWebTools
• Usually related to a RDF repository
• Multilanguage:• Redland RDF Application Framework (C, Perl, PHP, Python and Ruby):
http://www.redland.opensource.ac.uk/
• Java:• Jena: http://jena.sourceforge.net/• Sesame: http://www.openrdf.org/
• PHP:• RAP - RDF API for PHP: http://www4.wiwiss.fu-berlin.de/bizer/rdfapi/
• Python:• RDFLib: http://rdflib.net/• Pyrple: http://infomesh.net/pyrple/
68
Jena
• Java framework for building Semantic Web applications
• Open source software from HP Labs• The Jena framework includes:
• A RDF API• An OWL API• Reading and writing RDF in RDF/XML, N3 and N-Triples• In-memory and persistent storage• A rule based inference engine• SPARQL query engine
69
Sesame
• A framework for storage, querying and inferencing of RDF and RDF Schema
• A Java Library for handling RDF• A Database Server for (remote) access to repositories of
RDF data• Highly expressive query and transformation languages
• SeRQL, SPARQL
• Various backends• Native Store• RDBMS (MySQL, Oracle 10, DB2, PostgreSQL)• main memory
• Reasoning support• RDF Schema reasoner• OWL DLP (OWLIM)• domain reasoning (custom rule engine)
70
Jena example. Graph creation
http://.../JohnSmith
John Smith
SmithJohn
vcard:Given vcard:Family
vcard:FN vcard:N
// some definitions String personURI = "http://somewhere/JohnSmith"; String givenName = "John"; String familyName = "Smith"; String fullName = givenName + " " + familyName; // create an empty Model Model model = ModelFactory.createDefaultModel(); // create the resource // and add the properties cascading style Resource johnSmith = model.createResource(personURI) .addProperty(VCARD.FN, fullName) .addProperty(VCARD.N, model.createResource() .addProperty(VCARD.Given, givenName) .addProperty(VCARD.Family, familyName));
71
Jena example. Read and write
// create an empty modelModel model = ModelFactory.createDefaultModel();
// use the FileManager to find the input fileInputStream in = FileManager.get().open( inputFileName );if (in == null) { throw new IllegalArgumentException("File not found");}
// read the RDF/XML filemodel.read(in, "");
// write it to standard outmodel.write(System.out);
<rdf:RDF
xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
xmlns:vcard='http://www.w3.org/2001/vcard-rdf/3.0#'
>
<rdf:Description rdf:nodeID="A0">
<vcard:Family>Smith</vcard:Family>
<vcard:Given>John</vcard:Given>
</rdf:Description>
<rdf:Description rdf:about='http://somewhere/JohnSmith/'>
<vcard:FN>John Smith</vcard:FN>
<vcard:N rdf:nodeID="A0"/>
</rdf:Description>
...
</rdf:RDF>
72
Some RDF editors
• IsaViz• http://www.w3.org/2001/11/IsaViz/
• Morla• http://www.morlardf.net/
• RDFAuthor• http://rdfweb.org/people/damian/RDFAuthor/
• RdfGravity• http://semweb.salzburgresearch.at/apps/rdf-gravity/
• Rhodonite• http://rhodonite.angelite.nl/
73
Main References
• Brickley D, Guha RV (2004) RDF Vocabulary Description Language 1.0: RDF Schema. W3C Recommendation
http://www.w3.org/TR/PR-rdf-schema/• Lassila O, Swick R (1999) Resource Description
Framework (RDF) Model and Syntax Specification. W3C Recommendation
http://www.w3.org/TR/REC-rdf-syntax/• RDF validator:
http://www.w3.org/RDF/Validator/• RDF resources:
http://planetrdf.com/guide/
74
75
Index
• Resource Description Framework (RDF)• RDF primitives• Reasoning with RDF
• RDF Schema• RDF Schema primitives• Reasoning with RDFS
• RDF(S) Management APIs• SPARQL• OWL
76
RDF(S) query languages
• Languages developed to allow accessing datasets expressed in RDF(S) (and in some cases OWL)
• Supported by the most important language APIs• Jena (HP labs)• Sesame (Aduna)• Boca (IBM)• ...
• There are some differences wrt. languages like SQL, such as• Combination of different sources• Trust management• Open World Assumption
RelationalDB
Application
SQL queries
RDF(S)OWL
Application
SPARQL, RQL, etc., queries
77
Query types
• Selection and extraction• “Select all the essays, together with their authors and their authors’ names”• “Select everything that is related to the book ‘Bellum Civille’”
• Reduction: we specify what it should not be returned• “Select everything except for the ontological information and the book
translators”
• Restructuring: the original structure is changed in the final result• “Invert the relationship ‘author’ by ‘is author of’”
• Aggregation• “Return all the essays together with the mean number of authors per essay”
• Combination and inferences• “Combine the information of a book called ‘La guerra civil’ and whose
author is Julius Caesar with the book whose identifier is ‘Bellum Civille’”• “Select all the essays, together with its authors and author names”,
including also the instances of the subclasses of Essay• “Obtain the relationship ‘coauthor’ among persons who have written the
same book”
RDF(S) query language families
• SquishQL Family
• SquishQL• rdfDB Query Language• RDQL• BRQL• TriQL
• XPath, XSLT, XQuery
• XQuery for RDF• XsRQL• TreeHugger and RDFTwig• RDFT, Nexus Query
Language• RDFPath, Rpath and RXPath• Versa
• RQL Family
• RQL• SeRQL• eRQL
• Controlled natural language
• Metalog• Other
• Algae• iTQL• N3QL• PerlRDF Query Language• RDEVICE Deductive Language• RDFQBE• RDFQL• TRIPLE• WQLSPARQL
W3C Recommendation
15 January 2008
Triple database
Query structure
Description graphs Query
semantics
XML repository
Query syntax
78
SPARQL
• SPARQL Protocol and RDF Query Language• Supported by: Jena, Sesame, IBM Boca, etc.• Features
• It supports most of the aforementioned queries • It supports datatype reasoning (datatypes can be requested instead
of actual values)• The domain vocabulary and the knowledge representation
vocabulary are treated differently by the query interpreters• It allows making queries over properties with multiple values, over
multiple properties of a resource and over reifications• Queries can contain optional statements• Some implementations support aggregation queries
• Limitations• Neither set operations nor existential or universal quantifiers can be
included in the queries• It does not support recursive queries
79
SPARQL is also a protocol
• SPARQL is a Query Language …Find names and websites of contributors to PlanetRDF: PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name ?website FROM <http://planetrdf.com/bloggers.rdf> WHERE {
?person foaf:weblog ?website .?person foaf:name ?name . ?website a foaf:Document }
• ... and a Protocolhttp://.../qps?query-lang=http://www.w3.org/TR/rdf-sparql-query/ &graph-id=http://planetrdf.com/bloggers.rdf&query=PREFIXfoaf: <http://xmlns.com/foaf/0.1/...
• Services running SPARQL queries over a set of graphs • A transport protocol for invoking the service • Based on ideas from earlier protocol work such as Joseki • Describing the service with Web Service technologies
80
SPARQL Endpoints
• SPARQL protocol services• Enables users (human or other) to query a knowledge base using SPARQL• Results are typically returned in one or more machine-processable formats
• List of SPARQL Endpoints• http://esw.w3.org/topic/SparqlEndpoints
• Programmatic access using libraries:• ARC, RAP, Jena, Sesame, Javascript SPARQL, PySPARQL, etc.
• Examples:
Project Endpoint
DBpedia http://dbpedia.org/sparql
BBC Programmes and Music http://bbc.openlinksw.com/sparql/
data.gov http://semantic.data.gov/sparql
data.gov.uk http://data.gov.uk/sparql
Musicbrainz http://dbtune.org/musicbrainz/sparql
81
A simple SPARQL query
@prefix dc: <http://purl.org/dc/elements/1.1/> . @prefix : <http://example.org/book/> . :book1 dc:title "SPARQL Tutorial" .
title
"SPARQL Tutorial"
SELECT ?titleWHERE{ <http://example.org/book/book1> <http://purl.org/dc/elements/1.1/title> ?title .}
Data:
Query:
Query result:
• A pattern is matched against the RDF data • Each way a pattern can be matched yields a solution • The sequence of solutions is filtered by: Project, distinct, order, limit/offset • One of the result forms is applied: SELECT, CONSTRUCT, DESCRIBE, ASK
82
Graph patterns
• Basic Graph Patterns, where a set of triple patterns must match
• Group Graph Pattern, where a set of graph patterns must all match
• Optional Graph patterns, where additional patterns may extend the solution
• Alternative Graph Pattern, where two or more possible patterns are tried
• Patterns on Named Graphs, where patterns are matched against named graphs
83
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
_:a foaf:name "Johnny Lee Outlaw" ._:a foaf:mbox <mailto:[email protected]> ._:b foaf:name "Peter Goodguy" ._:b foaf:mbox <mailto:[email protected]> ._:c foaf:mbox <mailto:[email protected]> .
PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT ?name ?mboxWHERE { ?x foaf:name ?name . ?x foaf:mbox ?mbox }
name mbox
"Johnny Lee Outlaw" <mailto:[email protected]>
"Peter Goodguy" <mailto:[email protected]>
Multiple matches
84
@prefix dt: <http://example.org/datatype#> .@prefix ns: <http://example.org/ns#> .@prefix : <http://example.org/ns#> .@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
:x ns:p "cat"@en .:y ns:p "42"^^xsd:integer .:z ns:p "abc"^^dt:specialDatatype .
SELECT ?v WHERE { ?v ?p "cat" } v
SELECT ?v WHERE { ?v ?p "cat"@en }v
<http://example.org/ns#x>
SELECT ?v WHERE { ?v ?p 42 }v
<http://example.org/ns#y>
SELECT ?v WHERE { ?v ?p "abc"^^<http://example.org/datatype#specialDatatype> }
v
<http://example.org/ns#z>
Matching RDF literals
85
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
_:a foaf:name "Alice" ._:b foaf:name "Bob" .
PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT ?x ?nameWHERE { ?x foaf:name ?name }
x name
_:c "Alice"
_:d "Bob"
x name
_:r "Alice"
_:s "Bob"=
Blank node labels in query results
86
Group graph pattern
PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT ?name ?mboxWHERE { { ?x foaf:name ?name . } { ?x foaf:mbox ?mbox . } }
SELECT ?xWHERE {}
PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT ?name ?mboxWHERE { { ?x foaf:name ?name . } { ?x foaf:mbox ?mbox . FILTER regex(?name, "Smith")} }
87
Optional graph patterns
@prefix foaf: <http://xmlns.com/foaf/0.1/> .@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
_:a rdf:type foaf:Person ._:a foaf:name "Alice" ._:a foaf:mbox <mailto:[email protected]> ._:a foaf:mbox <mailto:[email protected]> .
_:b rdf:type foaf:Person ._:b foaf:name "Bob" .
PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT ?name ?mboxWHERE { ?x foaf:name ?name . OPTIONAL { ?x foaf:mbox ?mbox } }
name mbox
"Alice" <mailto:[email protected]>
"Alice" <mailto:[email protected]>
“Bob"
88
Multiple optional graph patterns
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
_:a foaf:name "Alice" ._:a foaf:homepage <http://work.example.org/alice/> .
_:b foaf:name "Bob" ._:b foaf:mbox <mailto:[email protected]> .
PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT ?name ?mbox ?hpageWHERE { ?x foaf:name ?name . OPTIONAL { ?x foaf:mbox ?mbox } . OPTIONAL { ?x foaf:homepage ?hpage } }
name mbox hpage
"Alice" <http://work.example.org/alice/>
“Bob" <mailto:[email protected]>
89
Alternative graph patterns
@prefix dc10: <http://purl.org/dc/elements/1.0/> .@prefix dc11: <http://purl.org/dc/elements/1.1/> .
_:a dc10:title "SPARQL Query Language Tutorial" ._:a dc10:creator "Alice" ._:b dc11:title "SPARQL Protocol Tutorial" ._:b dc11:creator "Bob" ._:c dc10:title "SPARQL" ._:c dc11:title "SPARQL (updated)" .
PREFIX dc10: <http://purl.org/dc/elements/1.0/>PREFIX dc11: <http://purl.org/dc/elements/1.1/>SELECT ?titleWHERE { { ?book dc10:title ?title } UNION { ?book dc11:title ?title } }
title
"SPARQL Protocol Tutorial"
"SPARQL"
"SPARQL (updated)"
"SPARQL Query Language Tutorial"
SELECT ?x ?yWHERE { { ?book dc10:title ?x } UNION { ?book dc11:title ?y } }
SELECT ?title ?authorWHERE { { ?book dc10:title ?title . ?book dc10:creator ?author } UNION { ?book dc11:title ?title . ?book dc11:creator ?author }}
x y
"SPARQL (updated)"
"SPARQL Protocol Tutorial"
"SPARQL"
"SPARQL Query Language Tutorial"
author title
"Alice" "SPARQL Protocol Tutorial"
“Bob” "SPARQL Query Language Tutorial"
90
Patterns on named graphs
# Named graph: http://example.org/foaf/aliceFoaf@prefix foaf:<http://.../foaf/0.1/> .@prefix rdf:<http://.../1999/02/22-rdf-syntax-ns#> .@prefix rdfs:<http://.../2000/01/rdf-schema#> .
_:a foaf:name "Alice" ._:a foaf:mbox <mailto:[email protected]> ._:a foaf:knows _:b .
_:b foaf:name "Bob" ._:b foaf:mbox <mailto:[email protected]> ._:b foaf:nick "Bobby" ._:b rdfs:seeAlso <http://example.org/foaf/bobFoaf> .
<http://example.org/foaf/bobFoaf> rdf:type foaf:PersonalProfileDocument .
# Named graph: http://example.org/foaf/bobFoaf@prefix foaf:<http://.../foaf/0.1/> .@prefix rdf:<http://.../1999/02/22-rdf-syntax-ns#> .@prefix rdfs:<http://.../2000/01/rdf-schema#> .
_:z foaf:mbox <mailto:[email protected]> ._:z rdfs:seeAlso <http://example.org/foaf/bobFoaf> ._:z foaf:nick "Robert" .
<http://example.org/foaf/bobFoaf> rdf:type foaf:PersonalProfileDocument .
91
Patterns on named graphs II
PREFIX foaf: <http://xmlns.com/foaf/0.1/>PREFIX data: <http://example.org/foaf/>
SELECT ?nickFROM NAMED <http://example.org/foaf/aliceFoaf>FROM NAMED <http://example.org/foaf/bobFoaf>WHERE { GRAPH data:bobFoaf { ?x foaf:mbox <mailto:[email protected]> . ?x foaf:nick ?nick } }
nick
"Robert"
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?src ?bobNickFROM NAMED <http://example.org/foaf/aliceFoaf>FROM NAMED <http://example.org/foaf/bobFoaf>WHERE { GRAPH ?src { ?x foaf:mbox <mailto:[email protected]> . ?x foaf:nick ?bobNick } }
src bobNick
<http://example.org/foaf/aliceFoaf>
"Bobby"
<http://example.org/foaf/bobFoaf> "Robert"
92
Restricting values
@prefix dc: <http://purl.org/dc/elements/1.1/> .@prefix : <http://example.org/book/> .@prefix ns: <http://example.org/ns#> .
:book1 dc:title "SPARQL Tutorial" .:book1 ns:price 42 .:book2 dc:title "The Semantic Web" .:book2 ns:price 23 .
PREFIX dc: <http://purl.org/dc/elements/1.1/>SELECT ?titleWHERE { ?x dc:title ?title FILTER regex(?title, "^SPARQL") }
title
"SPARQL Tutorial"
PREFIX dc: <http://purl.org/dc/elements/1.1/>SELECT ?titleWHERE { ?x dc:title ?title FILTER regex(?title, "web", "i" ) }
title
"The Semantic Web"
PREFIX dc: <http://purl.org/dc/elements/1.1/>PREFIX ns: <http://example.org/ns#>SELECT ?title ?priceWHERE { ?x ns:price ?price . FILTER (?price < 30.5) ?x dc:title ?title . }
title price
"The Semantic Web" 23
93
94
Value tests
• Based on XQuery 1.0 and XPath 2.0 Function and Operators
• XSD boolean, string, integer, decimal, float, double, dateTime
• Notation <, >, =, <=, >= and != for value comparisonApply to any type
• BOUND, isURI, isBLANK, isLITERAL • REGEX, LANG, DATATYPE, STR (lexical form) • Function call for casting and extensions functions
Solution sequences and modifiers
• Order modifier: put the solutions in order
• Projection modifier: choose certain variables
• Distinct modifier: ensure solutions in the sequence are unique
• Reduced modifier: permit elimination of some non-unique solutions
• Limit modifier: restrict the number of solutions
• Offset modifier: control where the solutions start from in the overall sequence of solutions
SELECT ?nameWHERE { ?x foaf:name ?name ; :empId ?emp }ORDER BY ?name DESC(?emp)
SELECT ?nameWHERE { ?x foaf:name ?name }
SELECT DISTINCT ?name WHERE { ?x foaf:name ?name }
SELECT REDUCED ?name WHERE { ?x foaf:name ?name }
SELECT ?name WHERE { ?x foaf:name ?name }ORDER BY ?nameLIMIT 5OFFSET 10
SELECT ?nameWHERE { ?x foaf:name ?name }LIMIT 20
95
SPARQL query forms
• SELECT• Returns all, or a subset of, the variables bound in a query
pattern match• CONSTRUCT
• Returns an RDF graph constructed by substituting variables in a set of triple templates
• ASK• Returns a boolean indicating whether a query pattern
matches or not• DESCRIBE
• Returns an RDF graph that describes the resources found
96
SPARQL query forms: SELECT
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
_:a foaf:name "Alice" ._:a foaf:knows _:b ._:a foaf:knows _:c .
_:b foaf:name "Bob" .
_:c foaf:name "Clare" ._:c foaf:nick "CT" .
PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT ?nameX ?nameY ?nickYWHERE { ?x foaf:knows ?y ; foaf:name ?nameX . ?y foaf:name ?nameY . OPTIONAL { ?y foaf:nick ?nickY } }
nameX nameY nickY
"Alice" "Bob"
"Alice" "Clare" "CT"
97
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
_:a foaf:name "Alice" ._:a foaf:mbox <mailto:[email protected]> .
PREFIX foaf: <http://xmlns.com/foaf/0.1/>PREFIX vcard: <http://www.w3.org/2001/vcard-rdf/3.0#>
CONSTRUCT { <http://example.org/person#Alice> vcard:FN ?name }
WHERE { ?x foaf:name ?name }
@prefix vcard: <http://www.w3.org/2001/vcard-rdf/3.0#> .
<http://example.org/person#Alice> vcard:FN "Alice" .
Query result:
SPARQL query forms: CONSTRUCT
98
SPARQL query forms: ASK
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
_:a foaf:name "Alice" ._:a foaf:homepage <http://work.example.org/alice/> .
_:b foaf:name "Bob" ._:b foaf:mbox <mailto:[email protected]> .
PREFIX foaf: <http://xmlns.com/foaf/0.1/>ASK { ?x foaf:name "Alice" }
yes
Query result:
99
PREFIX ent: <http://org.example.com/employees#>DESCRIBE ?x WHERE { ?x ent:employeeId "1234" }
@prefix foaf: <http://xmlns.com/foaf/0.1/> .@prefix vcard: <http://www.w3.org/2001/vcard-rdf/3.0> .@prefix exOrg: <http://org.example.com/employees#> .@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .@prefix owl: <http://www.w3.org/2002/07/owl#>
_:a exOrg:employeeId "1234" ; foaf:mbox_sha1sum "ABCD1234" ; vcard:N [ vcard:Family "Smith" ; vcard:Given "John" ] .
foaf:mbox_sha1sum rdf:type owl:InverseFunctionalProperty .
Query result:
SPARQL query forms: DESCRIBE
100
Main References
• Prud’hommeaux E, Seaborne A (2008) SPARQL Query Language for RDF. W3C Recommendation
http://www.w3.org/TR/rdf-sparql-query/• SPARQL validator:
http://www.sparql.org/validator.html• SPARQL implementations:
http://esw.w3.org/topic/SparqlImplementations• SPARQL Endpoints
http://esw.w3.org/topic/SparqlEndpoints• SPARQL in Dbpedia
http://dbpedia.org/sparql
101
102
Index
• Resource Description Framework (RDF)• RDF primitives• Reasoning with RDF
• RDF Schema• RDF Schema primitives• Reasoning with RDFS
• RDF(S) Management APIs• SPARQL• OWL
OWL Basics (on top of RDF and RDFS)
• Set of constructors for concept expressions• Booleans: and/or/not
• A Session is a TheoreticalSession or a HandsonSession• Slides are not the same as Code
• Quantification: some/all• Sessions must have some EducationalMaterial• Sessions can only have Presenters that have developed Grid
applications or Grid middleware
• Axioms for expressing constraints• Necessary and Sufficient conditions on classes
• A Session that hasEducationalMaterial Code is a HandsonSession.
• Disjointness• TheoreticalSessions are disjoint with HandsonSessions
• Property characteristics: transitivity, inverse
OWL Ontology Example. BioPAX ontology
• http://www.biopax.org/release/biopax-level2.owl
Description Logics
• A family of logic based Knowledge Representation formalisms• Descendants of semantic networks and KL-ONE• Describe domain in terms of concepts (classes), roles (relationships) and
individuals• Specific languages characterised by the constructors and axioms
used to assert knowledge about classes, roles and individuals.• Example: ALC (the least expressive language in DL that is
propositionally closed)• Constructors: boolean (and, or, not)• Role restrictions
• Distinguished by:• Model theoretic semantics
• Decidable fragments of FOL• Closely related to Propositional Modal & Dynamic Logics
• Provision of inference services• Sound and complete decision procedures for key problems• Implemented systems (highly optimised)
Structure of DL Ontologies
• A DL ontology can be divided into two parts:• Tbox (Terminological KB): a set of axioms that describe the
structure of a domain :• Doctor Person• Person Man Woman• HappyFather Man hasDescendant.(Doctor
hasDescendant.Doctor)• Abox (Assertional KB): a set of axioms that describe a
specific situation :• John HappyFather • hasDescendant (John, Mary)
Most common constructors in class definitions
• Intersection: C1 ... Cn Human Male• Union: C1 ... Cn Doctor Lawyer• Negation: C Male• Nominals: {x1} ... {xn} {john} ... {mary}• Universal restriction: P.C hasChild.Doctor• Existential restriction: P.C hasChild.Lawyer• Maximum cardinality: nP.C 3hasChild.Doctor• Minimum cardinality: nP.C 1hasChild.Male• Specific Value: P.{x} hasColleague.{Matthew}
• Nesting of constructors can be arbitrarily complex• Person hasChild.(Doctor hasChild.Doctor)
• Lots of redundancy• AB is equivalent to ( A B)• P.C is equivalent to P. C
OWL (1.0 and 1.1)
February 2004
Web Ontology Language
Built on top of RDF(S)
Three layers:- OWL Lite
- A small subset of primitives- Easier for frame-based tools to transition to
- OWL DL- Description logic- Decidable reasoning
- OWL Full- RDF extension, allows metaclasses
Several syntaxes:- Abstract syntax- Manchester syntax- RDF/XML
OWL 2 (I). New features
• October 2009
• New features• Syntactic sugar
• Disjoint union of classes• New expressivity
• Keys• Property chains• Richer datatypes, data ranges• Qualified cardinality restrictions• Asymmetric, reflexive, and disjoint properties• Enhanced annotation capabilities
• New syntax• OWL2 Manchester syntax
OWL 2 (II). Three new profiles
• OWL2 EL• Ontologies that define very large numbers of classes and/or properties, • Ontology consistency, class expression subsumption, and instance checking can
be decided in polynomial time.
• OWL2 QL• Sound and complete query answering is in LOGSPACE (more precisely, in AC0)
with respect to the size of the data (assertions),• Provides many of the main features necessary to express conceptual models
(UML class diagrams and ER diagrams). • It contains the intersection of RDFS and OWL 2 DL.
• OWL2 RL• Inspired by Description Logic Programs and pD*. • Syntactic subset of OWL 2 which is amenable to implementation using rule-
based technologies, and presenting a partial axiomatization of the OWL 2 RDF-Based Semantics in the form of first-order implications that can be used as the basis for such an implementation.
• Scalable reasoning without sacrificing too much expressive power. • Designed for
• OWL applications trading the full expressivity of the language for efficiency, • RDF(S) applications that need some added expressivity from OWL 2.
OWL: Most common constructors
Intersection: C1 ... Cn intersectionOf Human Male
Union: C1 ... Cn unionOf Doctor LawyerNegation: C complementOf Male
Nominals: {x1} ... {xn} oneOf {john} ... {mary}Universal restriction: P.C allValuesFrom hasChild.DoctorExistential restriction: P.C someValuesFrom hasChild.LawyerMaximum cardinality: nP[.C] maxCardinality (qualified or not) 3hasChild[.Doctor]Minimum cardinality: nP[.C] minCardinality (qualified or not) 1hasChild[.Male]Exact cardinality: =nP[.C] exactCardinality (qualified or not) =1hasMother[.Female]Specific Value: P.{x} hasValue hasColleague.{Matthew}Local reflexivity: -- hasSelf Narcisist Person hasSelf(loves)
Keys -- hasKey hasKey(Person, passportNumber, country)
Subclass C1 C2 subClassOf Human Animal Biped
Equivalence C1 C2 equivalentClass Man Human Male
Disjointness C1 C2 disjointWith, AllDisjointClasses Male Female DisjointUnion C C1 ... Cn and
Ci Cj forall i≠j disjointUnionOf Person DisjointUnionOf (Man, Woman)
Metaclasses and annotations on axioms are also valid in OWL2, and declarations of classes have to provided.
Full list available in reference specs and in the Quick Reference Guide: http://www.w3.org/2007/OWL/refcard
OWL: Most common constructors
Subproperty P1 P2 subPropertyOf hasDaughter hasChild
Equivalence P1 P2 equivalentProperty cost price
DisjointProperties P1 ... Pn disjointObjectProperties hasDaughter hasSon Inverse P1 P2- inverseOf hasChild hasParent-
Transitive P+ P TransitiveProperty ancestor+ ancestor
Functional 1P FunctionalProperty T 1hasMother
InverseFunctional 1P- InverseFunctionalProperty T 1hasPassportID-
Reflexive ReflexiveProperty
Irreflexive IrreflexiveProperty
Asymmetric AsymmetricProperty
Property chains P P1 o ... o Pn propertyChainAxiom hasUncle hasFather o hasBrother
Equivalence {x1} {x2} sameIndividualAs {oeg:OscarCorcho}{img:Oscar}
Different {x1} {x2} differentFrom, AllDifferent {john} {peter}
NegativePropertyAssertion NegativeDataPropertyAssertion {hasAge john 35}
NegativeObjectPropertyAssertion {hasChild john peter}
Besides, top and bottom object and datatype properties exist
Basic Inference Tasks
• Subsumption – check knowledge is correct (captures intuitions)• Does C subsume D w.r.t. ontology O? (in every model I of O, CI DI )
• Equivalence – check knowledge is minimally redundant (no unintended synonyms)• Is C equivalent to D w.r.t. O? (in every model I of O, CI = DI )
• Consistency – check knowledge is meaningful (classes can have instances)• Is C satisfiable w.r.t. O? (there exists some model I of O s.t. CI )
• Instantiation and querying• Is x an instance of C w.r.t. O? (in every model I of O, xI CI )• Is (x,y) an instance of R w.r.t. O? (in every model I of O, (xI,yI) RI )
• All reducible to KB satisfiability or concept satisfiability w.r.t. a KB
• Can be decided using highly optimised tableaux reasoners
Reasoning Tasks. Classification
Main References
Gómez-Pérez, A.; Fernández-López, M.; Corcho, O. Ontological Engineering. Springer Verlag. 2003
Capítulo 4: Ontology languages
W3C OWL Working Group (2009) OWL2 Web Ontology Language Document Overview. http://www.w3.org/TR/2009/REC-owl2-overview-20091027/ Dean M, Schreiber G (2004) OWL Web Ontology Language Reference. W3C Recommendation. http://www.w3.org/TR/owl-ref/
Baader F, McGuinness D, Nardi D, Patel-Schneider P (2003) The Description Logic Handbook: Theory, implementation and applications. Cambridge University Press, Cambridge, United Kingdom
Jena web site: http://jena.sourceforge.net/ Jena API: http://jena.sourceforge.net/tutorial/RDF_API/ Jena tutorials: http://www.ibm.com/developerworks/xml/library/j-jena/index.html
http://www.xml.com/pub/a/2001/05/23/jena.html
Pellet: http://clarkparsia.com/pellet RACER: http://www.racer-systems.com/ FaCT++: http://owl.man.ac.uk/factplusplus/ HermIT: http://hermit-reasoner.com/
Ontology Languages
• A large amount of work on Semantic Web has concentrated on the definition of a collection or “stack” of languages. • Used to support the representation and use of metadata• Basic machinery that we can use to represent the extra semantic
information needed for the Semantic Web
RDF(S)
Integrating information sources
Associating metadata to resources (bindings)
OWL
Integration
RDFS
RDF
XMLA
nnotation
Integration
Inference
Reasoning over the information we haveCould be light-weight (taxonomy)Could be heavy-weight (logic-style)
SWRL
Non exhaustive or disjont
The evolution of the Semantic Web
• Cooperation Dynamicity• Decentralised change• Heterogeneity Multimedia
Semantic Web 1.0 Semantic Web 3.0pre-Semantic Web
2004 2008
No standardised formatse.g., (KA)2
RDFS, OWL
Semantic WebChallenge
[Semantic | Web]+ Applications (I)
• No definition in Wikipedia… ;-(
• Why [Semantic | Web]+ application?
[Semantic | Web]+ Applications (II)
• Why [Semantic | Web]+ application?• Most of them are focused on the use of semantics
• In fact, probably it would be better to useSemantic [Web]* application
• However, many of them are not so Web-oriented• E.g., very common in data integration approaches
• http://www.readwriteweb.com/archives/10_semantic_apps_to_watch.php• A key element [of a Semantic Web App] is that the apps all
try to determine the meaning of text and other data, and then create connections for users. Besides, data portability and connectibility are keys to these new semantic apps - i.e. using the Web as platform.
Overview
• Coming to terms: The Web (1.0 and 2.0), the Semantic Web, the Web of Linked Data and all its applications• The Web (1.0 and 2.0)
• Web applications• The Semantic Web (pre-SemanticWeb, SW1.0 and SW3.0)
• Semantic Web Applications Or [Semantic | Web]+ Applications • The Web of Linked Data
• Linked Data Applications
• Semantic-based Applications• preSemanticWeb Applications
• Annotation• Semantic Web 1.0 Applications
• Annotation, Data Integration and Decision Support Systems• Semantic Web 3.0 Applications
• (Collaborative) Annotation and Data Integration
• Conclusions and Trends
What is the Web of Linked Data?• An extension of the current
Web…• … where information and services
are given well-defined and explicitly represented meaning, …
• … so that it can be shared and used by humans and machines, ...
• ... better enabling them to work in cooperation
• How? • Promoting information exchange by
tagging web content with machine processable descriptions of its meaning.
• And technologies and infrastructure to do this
• And clear principles on how to publish data
data
What is a Linked Data application
• Again, no definition yet
• Linked Data is a term used to describe a recommended best practice for exposing, sharing, and connecting pieces of data, information, and knowledge on the Semantic Web using URIs and RDF.
• So every element from the definition of SW application applies
Overview
• Coming to terms: The Web (1.0 and 2.0), the Semantic Web, the Web of Linked Data and all its applications• The Web (1.0 and 2.0)
• Web applications• The Semantic Web (pre-SemanticWeb, SW1.0 and SW3.0)
• Semantic Web Applications Or [Semantic | Web]+ Applications • The Web of Linked Data
• Linked Data Applications
• Semantic-based Applications• preSemanticWeb Applications
• Annotation• Semantic Web 1.0 Applications
• Annotation, Data Integration and Decision Support Systems• Semantic Web 3.0 Applications
• (Collaborative) Annotation and Data Integration
• Conclusions and Trends
The Web
Semantic Webs
The web
Metadata <RDF triple><RDF triple><RDF triple><RDF triple><RDF triple><RDF triple><RDF triple>
<RDF triple><RDF triple><RDF triple><RDF triple><RDF triple><RDF triple><RDF triple>
<RDF triple><RDF triple><RDF triple><RDF triple><RDF triple><RDF triple><RDF triple>
Ontologies
The Web of Data
The Web of Data
Resources
Metadata
<RDF triple><RDF triple><RDF triple><RDF triple><RDF triple><RDF triple><RDF triple>
<RDF triple><RDF triple><RDF triple><RDF triple><RDF triple><RDF triple><RDF triple>
<RDF triple><RDF triple><RDF triple><RDF triple><RDF triple><RDF triple><RDF triple>
AlignmentsOnto. - SchemaData Sources
Ontologies
Overview
• Coming to terms: The Web (1.0 and 2.0), the Semantic Web, the Web of Linked Data and all its applications• The Web (1.0 and 2.0)
• Web applications• The Semantic Web (pre-SemanticWeb, SW1.0 and SW3.0)
• Semantic Web Applications Or [Semantic | Web]+ Applications • The Web of Linked Data
• Linked Data Applications
• Semantic-based Applications• preSemanticWeb Applications
• Annotation• Semantic Web 1.0 Applications
• Annotation, Data Integration and Decision Support Systems• Semantic Web 3.0 Applications
• (Collaborative) Annotation and Data Integration
• Conclusions and Trends
Annotation-focused applications: key characteristics
• Available at all stages (pre-Semantic Web, SW1.0 and SW3.0), although predominantly in the early ones
• Single (usually small) ontologies, many of them built manually
• Centralised ontologies• Instances stored in a centralised manner, together
with the ontologies, or in separate files/DBs• Low heterogeneity and relatively small scale• Homogeneous quality in data
Annotation in the pre-Semantic Web
• (KA)2
O1
O2
Oi
Oj
Portal AdministratorsOntologies and Software
Extranet Users
Agents
Permission-based
Semantic Driven
User Oriented
External resources
Semantic Web Portals
Extranet view
Content Edition
Workpackage
Deliverable
has associated
has Q.A. partneris generated by
Organization
Semantic-based Visualisation
Extranet View (RDF lives behind)
Fill in
Overview
• Coming to terms: The Web (1.0 and 2.0), the Semantic Web, the Web of Linked Data and all its applications• The Web (1.0 and 2.0)
• Web applications• The Semantic Web (pre-SemanticWeb, SW1.0 and SW3.0)
• Semantic Web Applications Or [Semantic | Web]+ Applications • The Web of Linked Data
• Linked Data Applications
• Semantic-based Applications• preSemanticWeb Applications
• Annotation• Semantic Web 1.0 Applications
• Annotation, Data Integration and Decision Support Systems• Semantic Web 3.0 Applications
• (Collaborative) Annotation and Data Integration
• Conclusions and Trends
Data integration applications: key characteristics
• Available at later stages (SW1.0 and SW3.0). • Still single (usually small) ontologies, many of them
built manually• Although sometimes mappings between local and global
ontologies
• Still centralised ontologies• Instances live in distributed DBs, with a focus on run-
time queries, although also data warehousing approach
• Medium heterogeneity and medium scale• Heterogeneous quality in data
140
Migrating IGN (Instituto Geográfico Nacional) sources
NC NGN
BCN200 BCN25
Query:¿Edif. Religioso
de Soria?
Response:Catedral SoriaIg. Sto. TomásCatedral Soria
Ermita N.S. NievesCatedral SoriaSoria
Cated.Ig. Sto.
Cated.
Soria
Soria
Cated.
NS NievesEdif. Religioso
Construcción Rel.
Catedral
Ermita
IGN Catalogue Integration: Exploitation of Mappings
Slide 142
UN FAO Example
Alignments between ontologies and the DB
Land areas
Fishingareas
Biologicalentities
Fisheriescommodities
Vessel typesand size
Geartypes
R2ODocument
R2ODocument
R2ODocument
R2ODocument
R2ODocument
R2ODocument
FAOFIGIS DB
http://www.fao.org/aims/aos/fi/
Overview
• Coming to terms: The Web (1.0 and 2.0), the Semantic Web, the Web of Linked Data and all its applications• The Web (1.0 and 2.0)
• Web applications• The Semantic Web (pre-SemanticWeb, SW1.0 and SW3.0)
• Semantic Web Applications Or [Semantic | Web]+ Applications • The Web of Linked Data
• Linked Data Applications
• Semantic-based Applications• preSemanticWeb Applications
• Annotation• Semantic Web 1.0 Applications
• Annotation, Data Integration and Decision Support Systems• Semantic Web 3.0 Applications
• (Collaborative) Annotation and Data Integration
• Conclusions and Trends
Decision support applications: key characteristics
• Again, available at later stages (SW1.0 and SW3.0). • Still predominantly single (usually small) ontologies,
many of them built manually• But mostly heavyweight (they are the ones taking decisions)• Heavy use of logic
• Still centralised ontologies• Instances may live together with the ontologies, in
distributed DBs, or in separate RDF files/triplestores. • Annotation phases are common
• Medium heterogeneity and low/medium scale• Heterogeneous quality in data
Satellite Image Processing
SpaceSegment
Ground Segment
DMOP files
Product files
SATELLITE FILES:
Comparison between planning and product generation
...Instr#n(RA_2)planning
DMOP_File#n(StartTime) DMOP_File#n(StopTime)
DMOP_File#(n+1)StartTime
DMOP#(n+1)_File(StopTime)
DMOP_er (ORBIT_NUMBER,ELAPSED_TIME)
Instr#1planning
DURATION
PRODUCT_FILEStart_time(SENSING_START)
PRODUCT_FILEStop_time(SENSING_STOP)
...
Instr#n(RA_2)ProductGeneration
RA2_CAL_1PStop_time(SENSING_STOP)
RA2_CAL_1PStart_time(SENSING_START)
PRODUCT_data_gap... ...
Generating files in RDFFILE ; DMOP (generated by FOS Mission Planning System) RECORD fhr FILENAME="DMOP_SOF__VFOS20060124_103709_00000000_00001215_20060131_014048_20060202_035846.N1" DESTINATION="PDCC" PHASE_START=2 CYCLE_START=44 REL_START_ORBIT=404 ABS_START_ORBIT=20498
ENDRECORD fhr................................ RECORD dmop_er RECORD dmop_er_gen_part RECORD gen_event_params
EVENT_TYPE=RA2_MEA EVENT_ID="RA2_MEA_00000000002063" NB_EVENT_PR1=1 NB_EVENT_PR3=0 ORBIT_NUMBER=20521 ELAPSED_TIME=623635 DURATION=41627862 ENDRECORD gen_event_params ENDRECORD dmop_erENDLIST all_dmop_erENDFILE
RECORD ID
RECORD parameters
RECORD parameters corresponding to other
RECORD structure.
<?xml version='1.0' encoding='ISO-8859-1'?><rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#' xmlns:NS0='http://protege.stanford.edu/kb#' > <rdf:Description rdf:about='http://protege.stanford.edu/kb#10822'> <rdf:type rdf:resource='http://protege.stanford.edu/kb#Instrument_mode'/> <NS0:instrument_mode_id>MS</NS0:instrument_mode_id> </rdf:Description> <rdf:Description rdf:about='http://protege.stanford.edu/kb#11224'> <rdf:type rdf:resource='http://protege.stanford.edu/kb#DMOP_ER'/> <NS0:event_id>"GOM_OCC_00000000541299"</NS0:event_id> <NS0:duration rdf:datatype='http://www.w3.org/2001/XMLSchema#int'>53000</NS0:duration> <NS0:orbit_number rdf:datatype='http://www.w3.org/2001/XMLSchema#int'>20552</NS0:orbit_number> <NS0:elapsed_time rdf:datatype='http://www.w3.org/2001/XMLSchema#int'>2452293</NS0:elapsed_time> <NS0:event_type rdf:resource='http://protege.stanford.edu/kb#10713'/> </rdf:Description>
The planningfiles
<RDF triple><RDF triple><RDF triple><RDF triple><RDF triple><RDF triple><RDF triple>
<RDF triple><RDF triple><RDF triple><RDF triple><RDF triple><RDF triple><RDF triple>
The productfiles
1 reference ontology for annotating all filesRDF files are distributed
DistributedMetadata for Planning files
DistributedMetadata for Product files
1 Ontology
Satellite Use Case (System Infrastructure): S-OGSA Scenario
150
WS-DAIOnt
SatelliteDomain Ontology
Grid-KP
XML SummaryFile
Annotationfront-end
Atlas
MetadataQueryService
QUARC-SG client JSP
3
4
6
1
1
3
Annotate file
Obtain ontology
Create
Query
Input criteria
Select files to be annotated
Metadata generation processMetadata querying process
RDF
RDF
RDF
RDF
Planning fileserverGermany
Product fileserver
ItalyGT4GT4
File directorySpain
1a Get file names
Get file summaries2
ONTO-DSI ONTO-DSI
WebDAV
5RDF File Upload
SemanticBinding Service
7Store
2’ Upload XML Summary file
OverlapCheckingService
8Store (start-time, stop-time, gen-time, EPR)
8
Notify (start-time, stop-
time)
9
Destroy (if needed)
Fraud detection in car insurance
Fraud Diagnosis
Overview
• Coming to terms: The Web (1.0 and 2.0), the Semantic Web, the Web of Linked Data and all its applications• The Web (1.0 and 2.0)
• Web applications• The Semantic Web (pre-SemanticWeb, SW1.0 and SW3.0)
• Semantic Web Applications Or [Semantic | Web]+ Applications • The Web of Linked Data
• Linked Data Applications
• Semantic-based Applications• preSemanticWeb Applications
• Annotation• Semantic Web 1.0 Applications
• Annotation, Data Integration and Decision Support Systems• Semantic Web 3.0 Applications
• (Collaborative) Annotation and Data Integration
• Conclusions and Trends
Collaborative SW applications: key characteristics
• Fully-fledged in the last stage (SW3.0). • Networks of heterogeneous ontologies
• Some of them built manual, some automatically• Some of the lightweight and some others heavyweight
(although normally not used in a heavyweight form)• Dynamic finding of ontologies and terms
• Decentralised ontologies (available in URLs or search engines)
• Distributed instances living anywhere• Annotation and integration phases are common
• Instances are created by users• Large heterogeneity (in domains, quality, provenance, forms
– RDF, tags, etc. -, etc.)• Large scale
GeoBuddies: A pilgrim in St. James’ Way
• Diverse routes for pilgrims
• Self-emergent community of pilgrims• People that talk about their experiences during the
way• People that join together in the joy of walking• Mobile users
• People want to• Find interesting locations• Find community services• Provide information
GeoBuddies: architecture and main themes
• Agile methods for Web2.0 data integration• Facebook• Flickr• …
• Mobile applications exploiting user generated content
• Evolution of folksonomies and ontologies
Servidor de anotaciones
El usuario ve un punto de interés y envía una foto
con sus correspondientes anotaciones
walk sun tired
cathedralhuge
peaceful
Las anotacionesse guardan y los
objetos se consolidancon bases de datos geográficas
y anotaciones existentes
BBDD geográficas
Motor de recomendaciones(geográfico + tags + ontologías)
Servidor de anotaciones
(todos los usuarios)
Servidor de ontologías
mezcla
El usuario quiere saberqué puntos de interés le
pueden interesar en la zonaen la que se encuentra
Motor de recomendaciones(sólo geográfico)
Camino Personalizado
Catalogue Integration in the Geographical domain
• Monolingual Knowledge bases of IGN (spanish):
• NC (Nomenclátor Conciso), • NGN (Nomenclátor Geográfico Nacional), • BCN200 (Base Cartográfica Nacional
escala 1:200.000),• BCN25 (Base Cartográfica Nacional
escala 1:25.000)
• Monolingual Knowledge bases of CC.AA. (spanish, basque, galician): Castilla y León, Cataluña, Euskadi, Extremadura, Galicia, La Rioja, Madrid, Murcia, Navarra.
• Creation of an ontology from IGN resources and creation of mappings with IGN knowledge bases
Geobuddies Networks of Ontologies
• Generation of the Phenomen ontology from IGN catalogues using linguistic analysis
• Art ontologies, Building ontologies and artistic styles built from standardized resources
• Community building ontologies built from Web resources
• Instances are distributed and kept in their original sources
• Alignments between ontologies and resources are first class citizens
OrganizationOntology
Art
PersonalizationOntology
BuildingsOntology
Artistic Styles
Community Services
GeographicalOnt.
Core
NC NGN
BCN200 BCN25
Query:¿Edif. Religioso
de Soria?
Response:Catedral SoriaIg. Sto. TomásCatedral Soria
Ermita N.S. NievesCatedral SoriaSoria
Cated.Ig. Sto.
Cated.
Soria
Soria
Cated.
NS NievesEdif. Religioso
Construcción Rel.
Catedral
Ermita
IGN Catalogue Integration: Exploitation of Mappings
Users annotate with their own tags - The system provides hints about commonly used tags on a
predictive style (like SMSs)- Tag clouds can be generated out of this, based on geographical information,
services or in general
Tags are indexed according to ontologiesPredictive tags are enriched with ontologies
Users request information using their own tags- The system provides hints about commonly used tags on a
predictive style (like SMSs)- Collaborative filtering techniques can be used to recommend the
most closely-related tags- Requests can be extended with ontology-based annotations
When folksonomies meet ontologies
Overview
• Coming to terms: The Web (1.0 and 2.0), the Semantic Web, the Web of Linked Data and all its applications• The Web (1.0 and 2.0)
• Web applications• The Semantic Web (pre-SemanticWeb, SW1.0 and SW3.0)
• Semantic Web Applications Or [Semantic | Web]+ Applications • The Web of Linked Data
• Linked Data Applications
• Semantic-based Applications• preSemanticWeb Applications
• Annotation• Semantic Web 1.0 Applications
• Annotation, Data Integration and Decision Support Systems• Semantic Web 3.0 Applications
• (Collaborative) Annotation and Data Integration
• Conclusions and Trends
Reflections: which are the characteristics of these applications in terms of…?
• Ontologies• Single versus network of ontologies?• Are ontologies built from scratch or reusing knowledge-
aware resources?• Are mappings used for solving conceptual mistmaches?
• Instances• Where are the data/instances?
• Instances are in the ontology• Instances are in independent RDF files or databases• Data are kept in the original sources
• Are instances distributed or centralized?• Have instances a very high rate of changes?• Heterogeneous provenance of instances• Degrees of data quality• Permissions
Where are the instances?
or
Reflections: which are the characteristics of these applications in terms of…?
• Amount of semantic markup• Conceptual Heterogeneity (semantic markup based
on different ontologies)• Interoperability with other semantic resources• Open to Web resources• Open to Web services• Web 2.0 like• Mobile devices• Geo-spatial information
ConclusionsWe are moving into a new generation of semantic
applications • Open to web resources• Open to semantic resources and Linked Data• Open to the physical world and having an impact on it.
• (I have not talked too much about this: check at http://www.semsorgrid4env.eu/)
where …data integration at large scale and user-generated annotations are some of the main challenges that are being faced
and... everything combined with 1. Social communities2. Mobile devices3. Ubiquitous computing
Introduction to theSemantic Web
Oscar Corcho ([email protected])
Universidad Politécnica de Madrid
Universidad del Valle, Cali, ColombiaSeptember 7th 2010
Acknowledgements: Asunción Gómez-Pérez, Jesús Barrasa, Angel López Cima, Oscar Muñoz, Jose Angel Ramos Gargantilla, María del Carmen Suárez de Figueroa, Boris Villazón, Mariano Fernández López, Luis Vilches, Carlos Ruíz Moreno
Work distributed under the license Creative Commons Attribution-Noncommercial-Share Alike 3.0