introduction to the semantic web

167
Introduction to the Semantic Web Oscar Corcho ([email protected]) Universidad Politécnica de Madrid Universidad del Valle, Cali, Colombia September 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

Upload: oscar-corcho

Post on 08-May-2015

3.834 views

Category:

Technology


3 download

DESCRIPTION

Very basic introductory talk about the Semantic Web, given to undergraduate and posgraduate students of Universidad del Valle (Cali, Colombia) in September 2010

TRANSCRIPT

Page 1: Introduction to the Semantic Web

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

Page 2: Introduction to the Semantic Web

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

Page 3: Introduction to the Semantic Web

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.

Page 4: Introduction to the Semantic Web

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

Page 5: Introduction to the Semantic Web

The beginning: Web 1.0

WWWHTTPURI

Page 6: Introduction to the Semantic Web

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

Page 7: Introduction to the Semantic Web

Web2.0 basic sites and services

Page 8: Introduction to the Semantic Web

Web1.0 vs Web2.0

• Cooperation• Dynamicity• Decentralised change• Heterogeneity• Multimedia content

Page 9: Introduction to the Semantic Web

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.

Page 10: Introduction to the Semantic Web

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

Page 11: Introduction to the Semantic Web

(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

Page 12: Introduction to the Semantic Web

Hard Work using the Syntactic Web…

Find images of Oscar Corcho

…Marta Millán (Universidad del Valle)…

Page 13: Introduction to the Semantic Web

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…

Page 14: Introduction to the Semantic Web

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

Page 15: Introduction to the Semantic Web

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…

Page 16: Introduction to the Semantic Web

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>

Page 17: Introduction to the Semantic Web

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>

Page 18: Introduction to the Semantic Web

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<>

Page 19: Introduction to the Semantic Web

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

Page 20: Introduction to the Semantic Web

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

Page 21: Introduction to the Semantic Web

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

Page 22: Introduction to the Semantic Web

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

Page 23: Introduction to the Semantic Web

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

Page 24: Introduction to the Semantic Web

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”,

Page 25: Introduction to the Semantic Web

Informal is-a

Term hierarchies: they provide a general notion of

generalization and specialization.

http://dir.yahoo.com/

Page 26: Introduction to the Semantic Web

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>…

Page 27: Introduction to the Semantic Web

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>

Page 28: Introduction to the Semantic Web

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

Page 29: Introduction to the Semantic Web

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

Page 30: Introduction to the Semantic Web

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

Page 31: Introduction to the Semantic Web

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

Page 32: Introduction to the Semantic Web

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

Page 33: Introduction to the Semantic Web

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

Page 34: Introduction to the Semantic Web

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

Page 35: Introduction to the Semantic Web

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

Page 36: Introduction to the Semantic Web

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

Page 37: Introduction to the Semantic Web

37

Exercise 1.a. StickyNote_PureRDF.rdf

Page 38: Introduction to the Semantic Web

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

Page 39: Introduction to the Semantic Web

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

Page 40: Introduction to the Semantic Web

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

Page 41: Introduction to the Semantic Web

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

Page 42: Introduction to the Semantic Web

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

Page 43: Introduction to the Semantic Web

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

Page 44: Introduction to the Semantic Web

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

Page 45: Introduction to the Semantic Web

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

Page 46: Introduction to the Semantic Web

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

Page 47: Introduction to the Semantic Web

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

Page 48: Introduction to the Semantic Web

RDF inference. Entailment rules

48

Page 49: Introduction to the Semantic Web

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

Page 50: Introduction to the Semantic Web

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

Page 51: Introduction to the Semantic Web

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

Page 52: Introduction to the Semantic Web

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

Page 53: Introduction to the Semantic Web

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

Page 54: Introduction to the Semantic Web

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

Page 55: Introduction to the Semantic Web

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

Page 56: Introduction to the Semantic Web

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

Page 57: Introduction to the Semantic Web

Exercise 2.a. StickyNote.rdf

57

Page 58: Introduction to the Semantic Web

Exercise 2.a. StickyNote.rdfs

58

Page 59: Introduction to the Semantic Web

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

Page 60: Introduction to the Semantic Web

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

Page 61: Introduction to the Semantic Web

RDF(S) inference. Entailment rules

61

Page 62: Introduction to the Semantic Web

RDF(S) inference. Additional inferences

62

Page 63: Introduction to the Semantic Web

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

Page 64: Introduction to the Semantic Web

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

Page 65: Introduction to the Semantic Web

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

Page 66: Introduction to the Semantic Web

Exercise 3. Sample resulting ontology

66

Page 67: Introduction to the Semantic Web

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

Page 68: Introduction to the Semantic Web

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

Page 69: Introduction to the Semantic Web

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

Page 70: Introduction to the Semantic Web

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

Page 71: Introduction to the Semantic Web

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

Page 72: Introduction to the Semantic Web

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

Page 73: Introduction to the Semantic Web

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

Page 74: Introduction to the Semantic Web

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

Page 75: Introduction to the Semantic Web

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

Page 76: Introduction to the Semantic Web

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

Page 77: Introduction to the Semantic Web

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”

Page 78: Introduction to the Semantic Web

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

Page 79: Introduction to the Semantic Web

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

Page 80: Introduction to the Semantic Web

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

Page 81: Introduction to the Semantic Web

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

Page 82: Introduction to the Semantic Web

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

Page 83: Introduction to the Semantic Web

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

Page 84: Introduction to the Semantic Web

@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

Page 85: Introduction to the Semantic Web

@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

Page 86: Introduction to the Semantic Web

@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

Page 87: Introduction to the Semantic Web

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

Page 88: Introduction to the Semantic Web

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

Page 89: Introduction to the Semantic Web

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

Page 90: Introduction to the Semantic Web

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

Page 91: Introduction to the Semantic Web

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

Page 92: Introduction to the Semantic Web

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

Page 93: Introduction to the Semantic Web

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

Page 94: Introduction to the Semantic Web

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

Page 95: Introduction to the Semantic Web

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

Page 96: Introduction to the Semantic Web

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

Page 97: Introduction to the Semantic Web

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

Page 98: Introduction to the Semantic Web

@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

Page 99: Introduction to the Semantic Web

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

Page 100: Introduction to the Semantic Web

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

Page 101: Introduction to the Semantic Web

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

Page 102: Introduction to the Semantic Web

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

Page 103: Introduction to the Semantic Web

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

Page 104: Introduction to the Semantic Web

OWL Ontology Example. BioPAX ontology

• http://www.biopax.org/release/biopax-level2.owl

Page 105: Introduction to the Semantic Web

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)

Page 106: Introduction to the Semantic Web

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)

Page 107: Introduction to the Semantic Web

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

Page 108: Introduction to the Semantic Web

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

Page 109: Introduction to the Semantic Web

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

Page 110: Introduction to the Semantic Web

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.

Page 111: Introduction to the Semantic Web

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

Page 112: Introduction to the Semantic Web

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

Page 113: Introduction to the Semantic Web

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

Page 114: Introduction to the Semantic Web

Reasoning Tasks. Classification

Page 115: Introduction to the Semantic Web

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/

Page 116: Introduction to the Semantic Web

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

Page 117: Introduction to the Semantic Web

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

Page 118: Introduction to the Semantic Web

[Semantic | Web]+ Applications (I)

• No definition in Wikipedia… ;-(

• Why [Semantic | Web]+ application?

Page 119: Introduction to the Semantic Web

[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.

Page 120: Introduction to the Semantic Web

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

Page 121: Introduction to the Semantic Web

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

Page 122: Introduction to the Semantic Web

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

Page 123: Introduction to the Semantic Web

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

Page 124: Introduction to the Semantic Web

The Web

Page 125: Introduction to the Semantic Web

Semantic Webs

Page 126: Introduction to the Semantic Web

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

Page 127: Introduction to the Semantic Web

The Web of Data

Page 128: Introduction to the Semantic Web

The Web of Data

Page 129: Introduction to the Semantic Web

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

Page 130: Introduction to the Semantic Web

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

Page 131: Introduction to the Semantic Web

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

Page 132: Introduction to the Semantic Web

Annotation in the pre-Semantic Web

• (KA)2

Page 133: Introduction to the Semantic Web

O1

O2

Oi

Oj

Portal AdministratorsOntologies and Software

Extranet Users

Agents

Permission-based

Semantic Driven

User Oriented

External resources

Semantic Web Portals

Page 134: Introduction to the Semantic Web

Extranet view

Page 135: Introduction to the Semantic Web

Content Edition

Page 136: Introduction to the Semantic Web

Workpackage

Deliverable

has associated

has Q.A. partneris generated by

Organization

Semantic-based Visualisation

Page 137: Introduction to the Semantic Web

Extranet View (RDF lives behind)

Fill in

Page 138: Introduction to the Semantic Web

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

Page 139: Introduction to the Semantic Web

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

Page 140: Introduction to the Semantic Web

140

Migrating IGN (Instituto Geográfico Nacional) sources

Page 141: Introduction to the Semantic Web

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

Page 142: Introduction to the Semantic Web

Slide 142

UN FAO Example

Page 143: Introduction to the Semantic Web

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/

Page 144: Introduction to the Semantic Web

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

Page 145: Introduction to the Semantic Web

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

Page 146: Introduction to the Semantic Web

Satellite Image Processing

SpaceSegment

Ground Segment

DMOP files

Product files

SATELLITE FILES:

Page 147: Introduction to the Semantic Web

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... ...

Page 148: Introduction to the Semantic Web

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>&quot;GOM_OCC_00000000541299&quot;</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>

Page 149: Introduction to the Semantic Web

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

Page 150: Introduction to the Semantic Web

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)

Page 151: Introduction to the Semantic Web

Fraud detection in car insurance

Page 152: Introduction to the Semantic Web

Fraud Diagnosis

Page 153: Introduction to the Semantic Web

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

Page 154: Introduction to the Semantic Web

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

Page 155: Introduction to the Semantic Web

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

Page 156: Introduction to the Semantic Web

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

Page 157: Introduction to the Semantic Web

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

Page 158: Introduction to the Semantic Web

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

Page 159: Introduction to the Semantic Web

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

Page 160: Introduction to the Semantic Web

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

Page 161: Introduction to the Semantic Web

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

Page 162: Introduction to the Semantic Web

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

Page 163: Introduction to the Semantic Web

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

Page 164: Introduction to the Semantic Web

Where are the instances?

or

Page 165: Introduction to the Semantic Web

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

Page 166: Introduction to the Semantic Web

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

Page 167: Introduction to the Semantic Web

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