SlideShare a Scribd company logo
1 of 157
Download to read offline
Semantic Web Languages
and Standards (Primer)
Aidan Hogan — DERI Galway
Session 1; Day 1; 10:30
2

24.05.2012
WHAT IS THE SEMANTIC WEB?

3

24.05.2012
The Semantic Web is Tim (et al.)’s Vision ?

4

24.05.2012
The Semantic Web is intelligent machines
helping us make sense of the Web ?

5

24.05.2012
The Semantic Web is naming everything ?

6

24.05.2012
The Semantic Web is linking Web data ?

Image by Cyganiak & Jentzsch ; http://lod-cloud.net
7

24.05.2012
The Semantic Web is breaking down the
data silos / walls ?

Image from http://www.digitaltimes.ie
8

24.05.2012
The Semantic Web is Web 3.0 ?

Image by Radar Networks; Nova Spivak; http://memebox.com/futureblogger/show/824
9

24.05.2012
The Semantic Web is a stack of
technologies for interoperability?

Images by Hendler, Brickley Novack; http://www.bnode.org/blog/tag/layer%20cake
10

24.05.2012
The Semantic Web is a bunch of standards
for interoperability?

11

24.05.2012
The Semantic Web is something very very
bad and it must die (apparently) ?

12

24.05.2012
The Semantic Web is a buzzword ?

…
13

24.05.2012
The Semantic Web is…

…

…cf. “What is the Web?”
14

24.05.2012
…WHAT IS THE SEMANTIC
WEB FOR?
15

24.05.2012
Web = Flood of information

= 5.9 TB of data
(Jan. 2010 Dump)

16

24.05.2012
Web = Flood of information

= 235 TB of data indexed
= 40 Wikipedias
(incl. Web archive)

17

24.05.2012
Web = Flood of information

= 12 TB/day added
= 2 Wikipedias / day
(as of Mar. 2010)

18

24.05.2012
Web = Flood of information

= 20 PB/day processed
= 3,389 Wikipedias/day
(Jan. 2010)

19

24.05.2012
Web = Flood of information

= 160 TB/s transferred
= 27 Wikipedias/second
(2008; Cisco)

20

24.05.2012
From signals …

21

24.05.2012
To binary …

…10010110…

22

24.05.2012
To characters (ASCII/Unicode) …

…Hello World…

23

24.05.2012
To document markup (HTML) …
<title>
Hello World
</title>

She’ll know what
to do with
<title>

24

24.05.2012

Ah yes, I
display this
at the top.
To data markup …

<time=“10:36”/>

She’ll know what
<time> means

25

24.05.2012

This is what my
user asked for.
Thanks!
To arbitrary information exchange ???
<aidan presents=
“session1” />

This is the data
I have.

26

24.05.2012

What’s an
“aidan”?
Arbitrary data/information exchange …
We need …
Common data model for encoding data (triples)
Common ways of serialising data (syntaxes)
Well-defined languages for saying what terms mean (semantics)
Common ways to query data (query languages)
Web standards!
Make data machine-readable!

<aidan presents=
“session1” />

27

24.05.2012
Syntax to semantics / terms to entities

<aidan presents=“session1”/>

28

24.05.2012
…WHEN DID THE SEMANTIC
WEB BEGIN?
29

24.05.2012
Started with the Web?

1990
30

24.05.2012
Pre-dating Web …
Tim Berners Lee ENQUIRE (1980)
Pre-dates Web by 10 years / Closer to Semantic Web than Web
Link cards (each card reflected an “entity”)
Different types of relations
Never made it out of CERN … Disk containing software “re-used”

Other works in Artificial Intelligence:
FOL / Logic Programming / Description Logics / Expert Systems

… Knowledge Representation
Frame languages / Semantic networks / Ontology

… Databases
Entity-Attribute-Value (EAV) model / Deductive databases / Conceptual +
Logical Schema

… Information Retrieval, Natural Language Processing, …
31

24.05.2012
Modern Semantic Web …

Image by Titti Cimmino; http://www.titticimmino.com/2009/12/31/the-future-internet-semantics-and-service-web-3-0-survey/
32

24.05.2012
…SO WHERE IS THIS
SEMANTIC WEB NOW?
Image by Titti Cimmino; http://www.titticimmino.com/2009/12/31/the-future-internet-semantics-and-service-web-3-0-survey/
33

24.05.2012
Hidden within the Web?

34

24.05.2012
Linked Open Data cloud

…
35

24.05.2012
Open Government Data (US)

http://data.gov/
36

24.05.2012
Open Government Data (UK)

http://data.gov.uk/
37

24.05.2012
Semantics in HCLS/Biomedical Domain

38

24.05.2012
Drupal 7 Core

39

24.05.2012
GoodRelations for Products

Image from http://www.heppnetz.de/projects/goodrelations/primer/;; Hepp
40
FaceBook’s Open Graph Protocol

http://developers.facebook.com/tools/debug/
41

24.05.2012
schema.org

http://schema.org
42

24.05.2012
BBC World Cup 2010 site

43

24.05.2012
qwiki.com

http://qwiki.com/
44

24.05.2012
Metaweb / Freebase

http://freebase.com/
45

24.05.2012
Google’s Knowledge Graph

http://google.com/ncr/
46

24.05.2012
Not there yet (but getting there…)

47

24.05.2012
IT ALL BEGINS WITH RDF …

48

24.05.2012
A brief history of RDF
Meta Content Framework (MCF) by Ramanathan V. Guha

[1995]

Data-model consisting of Objects, Categories, and Properties
Directed, labelled graph
type / domain / range / superType / superPropertyType
XML syntax (based on XML names)

Resource Description Framework (RDF) by W3C

[1999]

Spec. edited by Ora Lassila and Ralph R. Swick
Data-model consisting of Resources, Class, and Properties
Directed, labelled graph
Later extended to RDFS, including type / domain / range /
subClassOf / subPropertyOf
XML syntax (based on URIs)

RDF Revised by W3C
49

24.05.2012

[2004]
What is RDF (not)?

50

24.05.2012
What is RDF?

51

24.05.2012
What are triples?

aidan presents session1

52

24.05.2012
RDF Triples: statements in slots of three
SUBJECT

PREDICATE

OBJECT

aidan

attending

eswc2012

aidan

worksAt

deri

deri

location

galway

eswc2012
24.05.2012

session1

aidan

53

presents

location

crete
Triples form a directed, labelled graph
aidan

presents

session1

attending

eswc2012

worksAt
livesIn

location

deri

Crete

location

Galway
54

24.05.2012
Why triples? Simplest fixed-arity model …
(PAIRS)

FROM

TO

deri

location

location

galway

eswc2012
location
deri
55

24.05.2012

location
crete
galway
Naming in triples … avoid ambiguity

aidan … …

56

24.05.2012
Avoid ambiguities: use URIs (/IRIs)!

http://ex.org/#aidan … …

57

24.05.2012
Abbreviating URIs

Use “CURIEs” / namespaces
PREFIX ex: <http://ex.org/#>

ex:aidan = <http://ex.org/#aidan>

58

24.05.2012
RDF Triples: literals in object position
SUBJECT
URI | BNode

PREDICATE
URI

OBJECT
URI | Literal | BNode

ex:aidan

ex:aidan

“male”

ex:title

“Semantic Web
Languages and
Standards”@en

ex:session1

24.05.2012

ex:gender

ex:session1

59

ex:presents

ex:startTime

“10:30:00+02:00”
^^xsd:time

ex:session1
Simple Literals

Simple strings:
“male”, “Hello World”, “aju901odksad”

60

24.05.2012
Language-tagged Literals

Simple strings with specified language:
“Hello World”@en
“Bonjour tout le monde.”@fr
“Whilst I dreamt colourful dreams.”@en-GB

(Defined by RFC 3066, ISO 639-2)

61

24.05.2012
Datatype Literals
Typed literals with mappings from strings to values
String (lexical value) / URI (type) pair
Many from XML Schema (namespace often given xsd: or xs: prefix)
“true”^^xsd:boolean • “false”^^xsd:boolean
“1.0”^^xsd:decimal • “1”^^xsd:int • “1”^^xsd:byte
“2012-05-21”^^xsd:date • “2012-05-21T10:30:00Z”^^xsd:dateTime
“---15”^^xsd:gDay “--05-15”^^xsd:gMonthDay “2010”^^xsd:gYear
“Hello World”^^xsd:string
(…and more besides)

Other datatypes defined elsewhere (rdf:XMLLiteral,
Can define custom datatypes (e.g., dbt:usDollars)
“literal”^^xsd:string

owl:real)

≡ “literal”

Can’t mix datatypes and language tags (“Hello World”^^xsd:string@en)

62

24.05.2012
RDF Literals: summary
Plain Literals

Simple Literals
“string”
Datatype Literals
“string”^^xsd:string

Lang-tag Literals
“string”@en

63

24.05.2012
RDF Triples: blank-nodes
SUBJECT
URI | BNode

PREDICATE
URI

ex:aidan

ex:presents

ex:aidan

ex:gender

ex:session1

_:somewhere

64

24.05.2012

ex:venue

ex:location

OBJECT
URI | Literal | BNode

ex:session1

“male”

_:somewhere

ex:kalamaki
Blank Nodes
Often denoted with the prefix “_:”, and a label suffix
_:bnode4 • _:genid2 • _:venue

Can only be referenced in a local document!
Values of labels are inconsequential
Can consistently re-label blank nodes; makes no difference

Used:
to avoid creating a URI for something
for syntax shortcuts
if a value is unknown or not concretely identifiable
once-off resource (e.g., for time-of-access)
only allow local reference
etc.
65

24.05.2012
Blank Nodes are existential (in theory)
Denote the existence of something
ex:JohnFKennedy ex:assassin _:unknown .

Blank nodes can introduce redundancy (non-lean RDF)
ex:aidan

ex:coauthoredPaper

_:bnode1

ex:title
ex:coauthoredPaper
“On Blank
Nodes”@en
_:bnode2

66

24.05.2012
Summary of RDF Triples
Slots of three: Subject, Predicate, Object
Used to make statements about the world
Subject: URIs or Blank Nodes
Predicate: URIs only
Object: URIs, Blank Nodes, Literals (plain [w/lang] or typed)
An RDF graph is a set of triples
ex:aidan

ex:coauthoredPaper

ex:coauthoredPaper

_:bnode2

(1) ex:aidan
(2) _:bnode1
(3) ex:aidan
67

24.05.2012

ex:coauthoredPaper
ex:title
ex:coauthoredPaper

_:bnode1
ex:title

“On Blank
Nodes”@en

_:bnode1
“On Blank Nodes”@en
_:bnode2
Triples are everywhere!

SUBJECT

PREDICATE
OBJECT

PREDICATE

…
OBJECT

OBJECT

68

24.05.2012
Triples are everywhere!
SUBJECT

PREDICATE
OBJECT

PREDICATE
OBJECT
PREDICATE

…
OBJECT

69

24.05.2012
Triples are everywhere!

SUBJECT

PREDICATE
PREDICATE

OBJECT

OBJECT
PREDICATE
OBJECT

SUBJECT
PREDICATE
PREDICATE

…
OBJECT

70

24.05.2012

…
OBJECT
What is RDF?

71

24.05.2012
Features of RDF: typing / classes

ex:barry

ex:denny

ex:matthew

rdf:type

rdf:type

rdf:type

ex:Tutor

rdf:type

ex:aidan

72

24.05.2012

rdf:type

ex:dan

rdf:type

ex:elena
Features of RDF: containers (aka. lists)
ex:summerSchool
_:dayOne
_:dayOne
_:dayOneB
_:dayOneB
_:dayOneC
_:dayOneC
_:dayOneD
_:dayOneD
listNode-1

ex:1stDaySchedule
rdf:first
rdf:rest
rdf:first
rdf:rest
rdf:first
rdf:rest
rdf:first
rdf:rest

rdf:rest

listNode-2

rdf:first

listEl-1

73

rdf:first

listEl-1

24.05.2012

…

_:dayOne
“Enrico’s Keynote”
_:dayOneB
“Session 1”
_:dayOneC
“Session 2”
_:dayOneD
“Hands On 1”
rdf:nil
rdf:rest

rdf:nil
Other features of RDF (not covered)

RDF containers
RDF reification
RDF n-ary predicates

Hint: if you’re using these features, you’re probably
doing it wrong
(unless you specifically know what you’re doing)
74

24.05.2012
Writing RDF triples down?

75

24.05.2012
RDF syntaxes / serialisation

<http://ex.org/#aidan> … …

The bit between angle
brackets is a URI

76

24.05.2012
RDF syntaxes
N-Triples
Simple syntax for line-delimited triples

Turtle
Superset of N-Triples, with lots of nice shortcuts

Notation3 (N3)
Superset of Turtle and RDF (goes beyond RDF!)

RDF/XML
RDF syntax based on XML

RDFa
Syntax for embedding RDF directly into XHTML documents

77

24.05.2012
N-Triples
Full URIs
in ‘<>’angle
brackets

Terms delimited
by space or tab

Triples ended by ‘.’,
delimited by new line

<http:/ex.org/#aidan> <http:/ns.com/worksAt> <http:/ex.org/#DERI> .
<http:/ex.org/#aidan> <http:/ns.com/author> _:bnode1 .
<http:/ex.org/#aidan> <http:/ns.com/author> _:bnode2 .
_:bnode2 <http://ns.com/title> “On Blank Nodes”@en .
_:bnode2 <http://ns.com/pages> “16”^^<http://w3.org/…#integer> .

Blank nodes
with ‘_:’
prefix
78

24.05.2012

Literals
enclosed
with quotes

Optional
datatype
with ‘^^’

Optional
lang-tag with
‘@’
Turtle (Terse RDF Triple Language)
<http:/ex.org/#aidan> <http:/ns.com/worksAt> <http:/ex.org/#DERI> .
<http:/ex.org/#aidan> <http:/ns.com/author> _:bnode1 .
<http:/ex.org/#aidan> <http:/ns.com/author> _:bnode2 .
_:bnode2 <http://ns.com/title> “On Blank Nodes”@en .
_:bnode2 <http://ns.com/pages> “16”^^<http://w3.org/…#integer> .

Re-usable
URI prefixes

‘;’ for
common
subject

‘,’ for common
subject & predicate

@base <http://ex.org/#> .
@prefix ns: <http://ns.com/> .
<aidan> ns:worksAt <DERI> ; ns:author _:bnode1 , _:bnode2 .
_:bnode2 ns:title “On Blank Nodes”@en ; ns:pages 16 .

Rel. URIs
resolved
against base
79

24.05.2012

Expands to “16”^^xsd:integer
(Similar shortcuts for decimals, floating
points and booleans)
Turtle (Blank node abbreviation)
<http:/ex.org/#aidan> <http:/ns.com/worksAt> <http:/ex.org/#DERI> .
<http:/ex.org/#aidan> <http:/ns.com/author> _:bnode1 .
<http:/ex.org/#aidan> <http:/ns.com/author> _:bnode2 .
_:bnode2 <http://ns.com/title> “On Blank Nodes”@en .
_:bnode2 <http://ns.com/pages> “16”^^<http://w3.org/…#integer> .

Don’t have to label blank nodes.
(Labels are arbitrary anyways)
@base <http://ex.org/#> .
@prefix ns: <http://ns.com/> .
<aidan> ns:worksAt <DERI> ; ns:author [] ,
[ ns:title “On Blank Nodes”@en ; ns:pages 16 ] .

Can assign predicate–object information
to implicit blank node

80

24.05.2012
Turtle (RDF collection / list abbreviation)
<http://ex.org/#summerSchool> <http://ex.org/#1stDaySchedule> _:dayOne .
_:dayOne <http://w3.org/…/22-rdf-syntax#first> “Enrico’s Keynote” .
_:dayOne <http://w3.org/…/22-rdf-syntax#rest> _:dayOneB .
_:dayOneB <http://w3.org/…/22-rdf-syntax#first> “Session 1” .
_:dayOneB <http://w3.org/…/22-rdf-syntax#rest> _:dayOneC .
_:dayOneC <http://w3.org/…/22-rdf-syntax#first> “Session 2” .
_:dayOneC <http://w3.org/…/22-rdf-syntax#rest> _:dayOneD .
_:dayOneD <http://w3.org/…/22-rdf-syntax#first> “Hands-on 1”
_:dayOneD <http://w3.org/…/22-rdf-syntax#first> <http://…/22-rdf-syntax#nil> .

@base <http://ex.org/#> .
<summerSchool> <1stDaySchedule>
( “Enrico’s Keynote” “Session 1” “Session 2” “Hands-on 1” ) .

Enclose list elements in
parentheses, and you’re done!

81

24.05.2012
Turtle (my favourite abbreviation)

<http://ex.org/#aidan> <http://w3.org/…#type> <http://ex.org/#Tutor> .

@base <http://ex.org/#> .

<aidan> a <Tutor> .

‘a’ instead of rdf:type
(No need to declare rdf: prefix)

82

24.05.2012
Notation3 (N3) … a quick note
A superset of RDF
Contains non-RDF features like rules, scoping graphs, etc.

Intersection of N3 and RDF ≈ Turtle

N-Triples
Turtle

N3

83

24.05.2012
RDF/XML overview
RDF syntax based on XML
RDF/XML and RDF often conflated:
RDF is a data-model based on triples
RDF/XML is a syntax to serialise triples

A very prominent syntax (dates back to 1999); used widely
Unfortunately, not a very nice syntax:
Difficult to see triple structure
Shortcuts are confusing
Relative name schemes are confusing
Not all RDF can be written as RDF/XML (due to limitations of XML names
for writing down predicates)
Not canonical: XML tools are useless
Just plain difficult to read/write/parse/learn, etc.
84

24.05.2012
RDF/XML (…will not go into detail)
<rdf:Description rdf:about="http://…/TR/rdf-syntax-grammar">
<ex:editor>
<rdf:Description>
<ex:homePage rdf:resource="http://purl.org/net/dajobe/“ />
<ex:fullName>Dave Beckett</ex:fullName>
</rdf:Description>
</ex:editor>
<dc:title>RDF/XML Syntax Specification (Revised)</dc:title>
</rdf:Description>

Image from http://www.w3.org/TR/REC-rdf-syntax/;; Beckett
85

24.05.2012
RDFa overview
RDFa allows for embedding RDF into XHTML
Mix human readable and machine readable
No need for separate docs!
Less server costs simpler hosting

Becoming more and more prominent (rec. since 2008)

86

24.05.2012
RDFa (…will not go into detail)
<div typeof="foaf:Person" xmlns:foaf="http://xmlns.com/foaf/0.1/">
<p property="foaf:name">Alice Birpemswick</p>
<p> Email: <a rel="foaf:mbox"
href="mailto:alice@example.com">alice@example.com</a> </p>
<p> Phone: <a rel="foaf:phone" href="tel:+1-617-555-7332">+1
617.555.7332</a> </p>
</div>

Image from http://www.w3.org/TR/xhtml-rdfa-primer/;; Adida & Birbeck
87

24.05.2012
THAT’S RDF …
… NEXT UP…
88

24.05.2012
RDFS and OWL!
RDF Schema
Web Ontology Language
W3C Recommendations, 2004
OWL 2 since 2009

Standardised schema/ontology languages
Can be serialised in RDF
OWL (partly) extends RDFS

89
Features walkthrough…

…modelling family relationships in RDFS and OWL…

90
A Family-Relations OWL Ontology

ex:Vito

ex:Sonny

ex:Vincent
91

ex:Connie

ex:Carmela

ex:Fredo

ex:Michael

ex:Mary
RDFS
1. rdfs:subPropertyOf
2. rdfs:subClassOf
3. rdfs:domain
4. rdfs:range

92
rdfs:subPropertyOf
:husbandOf
:spouse

:wifeOf
:spouse

ex:Vito

ex:Carmela

ex:Vito :husbandOf ex:Carmela .
:husbandOf rdfs:subPropertyOf :spouse .
⇒ ex:Vito :spouse ex:Carmela .
ex:Carmela :wifeOf ex:Vito .
:wifeOf rdfs:subPropertyOf :spouse .
⇒ ex:Carmela :spouse ex:Vito .
93
rdfs:subClassOf

rdf:type

:Woman
rdf:type

ex:Mary
:Person
ex:Mary rdf:type :Woman .
:Woman rdfs:subClassOf :Person .
⇒ ex:Mary rdf:type :Person .
94
rdfs:domain

:motherOf

ex:Carmela

ex:Fredo

rdf:type

:Woman
95

ex:Carmela :motherOf ex:Fredo .
:motherOf rdfs:domain :Woman .
⇒ ex:Carmela rdf:type :Woman .
rdfs:range

:hasSon

ex:Carmela

ex:Fredo
rdf:type

ex:Carmela :hasSon ex:Fredo .
:hasSon rdfs:range :Man .
⇒ ex:Fredo rdf:type :Man .
96

:Man
Recap RDFS

What would be the rdfs:domain of the property :fatherOf?
What would be the rdfs:range of the property :wifeOf?

97
RDFS
1.
2.
3.
4.

rdfs:subPropertyOf
rdfs:subClassOf
rdfs:domain
rdfs:range

OWL
1. Property Axioms
a.
b.
c.
d.
e.

98

owl:equivalentProperty
owl:inverseOf
owl:SymmetricProperty
owl:TransitiveProperty
owl:propertyChainAxiom
owl:equivalentProperty

:parentOf
:hasChild

ex:Vito

:hasChild
:parentOf

ex:Michael

ex:Mary

ex:Vito :parentOf ex:Michael .
ex:Michael :hasChild ex:Mary .
:parentOf owl:equivalentProperty :hasChild .
⇒ ex:Vito :hasChild ex:Vincent .
⇒ ex:Michael :parentOf ex:Mary .
99
owl:inverseOf

:parentOf
:childOf

ex:Carmela

:childOf
:parentOf

ex:Sonny

ex:Carmela :parentOf ex:Sonny .
ex:Vincent :childOf ex:Sonny .
:parentOf owl:inverseOf :childOf .
⇒ ex:Sonny :parentOf ex:Vincent .
⇒ ex:Sonny :childOf ex:Carmela .

100

ex:Vincent
owl:SymmetricProperty

:sibling

:sibling

ex:Connie

ex:Fredo

ex:Connie :sibling ex:Fredo .
:sibling rdf:type owl:SymmetricProperty .
⇒ ex:Fredo :sibling ex:Connie .

101
owl:TransitiveProperty

:ancestorOf

ex:Carmela

:ancestorOf

ex:Michael

ex:Mary

:ancestorOf

ex:Carmela :ancestorOf ex:Michael .
ex:Michael :ancestorOf ex:Mary .
:ancestorOf rdf:type owl:TransitiveProperty .
⇒ ex:Carmela :ancestorOf ex:Mary .

102
owl:propertyChainAxiom

:brotherOf

ex:Sonny

2

:fatherOf

ex:Michael

ex:Mary

uncleOf

ex:Sonny :brotherOf ex:Michael .
ex:Michael :fatherOf ex:Mary .
:uncleOf owl:propertyChainAxiom (:brotherOf :fatherOf) .
⇒ ex:Sonny :uncleOf ex:Mary .

103
Recap OWL property axioms

What would be the owl:inverseOf of the property :fatherOf?
Name an owl:SymmetricProperty to do with family relations?
Name an owl:TransitiveProperty to do with family relations?

Give a owl:propertyChainAxiom for hasNiece?

104
RDFS
1.
2.
3.
4.

rdfs:subPropertyOf
rdfs:subClassOf
rdfs:domain
rdfs:range

OWL
1.

Property Axioms

2. Equality
a. owl:sameAs
b. owl:FunctionalProperty
c. owl:InverseFunctionalProperty

105
owl:sameAs
owl:sameAs

owl:sameAs
ex:Vito_old

:hasGrandson
:hasGrandson

Vito

ex:Vito_young

:granddaugtherOf
:granddaugtherOf

ex:Mary

ex:Vincent
ex:Vito_old owl:sameAs ex:Vito_young .
106
owl:FunctionalProperty

:hasFather

ex:Fredo

ex:Fredo :hasFather ex:Vito_old .
ex:Fredo :hasFather ex:Vito_young .
:hasFather rdf:type owl:FunctionalProperty .
⇒ ex:Vito_old owl:sameAs ex:Vito_young .
107

ex:Vito_young
ex:Vito

ex:Vito_old
owl:InverseFunctionalProperty

:fatherOf

ex:Connie

ex:Vito_old :fatherOf ex:Connie .
ex:Vito_young :fatherOf ex:Connie .
:fatherOf rdf:type
owl:InverseFunctionalProperty .
⇒ ex:Vito_old owl:sameAs ex:Vito_young .
108

ex:Vito_young
ex:Vito

ex:Vito_old
Recap OWL equality axioms

Name an owl:FunctionalProperty to do with family relations?
Name a similar owl:InverseFunctionalProperty?

109
RDFS
1.
2.
3.
4.

rdfs:subPropertyOf
rdfs:subClassOf
rdfs:domain
rdfs:range

OWL
1.
2.

Property Axioms
Equality

3. Class Axioms
a.
b.
c.
d.
e.

110

owl:unionOf
owl:intersectionOf
owl:oneOf
owl:allValuesFrom
owl:someValuesFrom
owl:unionOf

≡
:Person

:Woman

⊔

:Man

type

type

ex:Vincent
ex:Vincent rdf:type :Man .
:Person owl:equivalentClass [ owl:unionOf (:Woman :Man) ]
⇒ ex:Vincent rdf:type :Person .
111
owl:intersectionOf (i)

⊑
:Mother

:Woman

rdf:type

⊓

rdf:type

:Parent
rdf:type

ex:Carmela
ex:Carmela rdf:type :Mother .
:Mother rdfs:subClassOf [ owl:intersectionOf (:Woman :Parent) ]

⇒ ex:Carmela rdf:type :Woman , :Parent .
112
owl:intersectionOf (ii)

ex:Mother

rdf:type

≡

ex:Woman

⊓

rdf:type

ex:Parent

rdf:type

ex:Carmela
ex:Carmela rdf:type :Woman , :Parent .
:Mother owl:equivalentClass [ owl:intersectionOf (:Woman :Parent) ]

⇒ ex:Carmela rdf:type :Mother .
113
owl:oneOf

≡{
:DonCorleone

ex:Vito

rdf:type

,

ex:Michael

rdf:type

,

}
ex:Vincent

rdf:type

:DonCorleone owl:equivalentClass
[ owl:oneOf (ex:Vito ex:Michael ex:Vincent) ]
⇒ ex:Vito rdf:type :DonCorleone .
⇒ ex:Michael rdf:type :DonCorleone .
⇒ ex:Vincent rdf:type :DonCorleone .
114
owl:disjointWith

ex:DonCorleone

⊓

ex:LawAbiding

≡ ┴

owl:Nothing

rdf:type

rdf:type
ex:Vincent

ex:Michael rdf:type ex:DonCorleone .
ex:DonCorleone owl:disjointWith ex:LawAbiding .
ex:Michael rdf:type ex:LawAbiding .
115
owl:allValuesFrom

:Person

⊑∀

:hasParent .

rdf:type

:Person
rdf:type

:hasParent
ex:Mary

ex:Michael

ex:Mary rdf:type :Person ; hasParent ex:Michael .
:Person rdfs:subClassOf
[ owl:allValuesFrom :Person ; owl:onProperty :hasParent ]
⇒ ex:Michael rdf:type :Person .
116
owl:someValuesFrom (i)

:Parent

≡∃

:hasChild .
:Person
rdf:type

rdf:type

:hasChild
ex:Carmela

ex:Michael

ex:Mary :hasChild ex:Michael . ex:Michael rdf:type :Person .
:Parent owl:equivalentClass
[ owl:someValuesFrom :Person ; owl:onProperty :hasChild ]
⇒ ex:Mary rdf:type :Parent .
117
owl:someValuesFrom (ii)

:Parent

⊑∃

:hasChild .
rdf:type

rdf:type

:hasChild
ex:Carmela

:Person

?
?

ex:Mary rdf:type :Parent .
:Parent rdfs:subClassOf
[ owl:someValuesFrom :Person ; owl:onProperty :hasChild ]
⇒ ex:Mary :hasChild _:someone . _:someone rdf:type :Person .
118
Recap OWL class axioms
A class :Parent might be the owl:unionOf what classes?
A class :OnlySon might be the owl:intersectionOf what
classes?
What OWL feature allows to define enumerations?

An example of owl:allValuesFrom for family relations?
An example of owl:someValuesFrom for the class :Uncle?

119
RDFS
1.
2.
3.
4.

rdfs:subPropertyOf
rdfs:subClassOf
rdfs:domain
rdfs:range

OWL
1.
2.
3.

120

Property Axioms
Equality
Class Axioms
…some OWL features not covered:
1. owl:hasKey
2. owl:hasValue
3. owl:cardinality(s)
4. owl:different
5. owl:AssymetricProperty
6. owl:IrreflexiveProperty
7. owl:propertyDisjointWith
8. …

121
But what does it all mean?

122
RDFS History

Dan Brickley & R. V. Guha
Pat Hayes

123

[2000]
[2004]
RDF(S) Semantics
Built directly on top of RDF (Semantics)
Given a mathematical model-theoretic semantics

http://ex.org/#aidan … …

124
RDF(S) Semantics: existential blank nodes
Called “simple entailment”

ex:aidan

ex:coauthoredPaper

_:bnode1

ex:title
ex:coauthoredPaper
“On Blank
Nodes”@en

_:bnode2

125

24.05.2012
RDFS Semantics: RDFS rules / reasoning
Body/Antecedent/Condition

Head/Consequent

IF ⇒ THEN

?c1 rdfs:subClassOf ?c2 .
?x rdf:type ?c1 .
⇒ ?x rdf:type ?c2 .
ex:Tutor rdfs:subClassOf ex:Person .
ex:aidan rdf:type ex:Tutor .
⇒ ex:aidan rdf:type ex:Person .

…

126

24.05.2012
OWL History
Description Logics
[1980’s to now]
DAML (Hendler, McGuinness)
[2000]
OIL (Fensel, van Harmelen, McGuinness, Patel-, Frank van
Harmelen)
[2001]
DAML+OIL
[2002]
OWL (W3C Rec.)
OWL 2 (W3C Rec.)

127

[2004]
[2008]
OWL Semantics
Much more complex language = Much more complex semantics

Considers Axioms:
Parent ⊑
∃hasChild.Person

Considers Triples:
:Parent rdfs:subClassOf
[ owl:someValuesFrom :Person
; owl:onProperty :hasChild ]

Restricted so that triples
correspond to axioms
Decidable for OWL 2 DL
(but super-exponential)
128

Unrestricted
Undecidable

24.05.2012
OWL Profiles

P

NP-complete

OWL 2 EL
OWL 2 QL
OWL 2 RL
RDFS*
pD*

129

24.05.2012

Simple
RDF
RDFS

ExpTime

OWL Lite

NExpTime 2NExpTime Undecidable

OWL DL

OWL 2 DL

OWL Full
OWL 2 Full
THAT’S RDFS/OWL …
… NEXT UP…
130

24.05.2012
How can we query RDF?
…RDB has SQL…
…XML has XPath & XQuery…

…
…RDF has ?

131
SPARQL!
SPARQL Protocol and RDF Query Language

W3C Recommendation, 2008
SPARQL 1.1 upcoming, 201?

Standardised RDF query language (and supporting recommendations)
Looks a little like SQL
Syntax based on Turtle

132
The anatomy of a typical SPARQL query
PREFIX
PREFIX
PREFIX
PREFIX

rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
rdfs: <http://www.w3.org/2000/01/rdf-schema#>
foaf: <http://xmlns.com/foaf/0.1/>
oo: <http://purl.org/openorg/>
PREFIX DECLARATIONS

SELECT ?name ?expertise
FROM <http://data.southampton.ac.uk/>

RESULT CLAUSE
DATASET CLAUSE

WHERE {
?person foaf:name ?name ; foaf:familyName ?surname .
.
?person rdf:type foaf:Person .
?person foaf:title ?title . FILTER regex(?title, "^Prof")
OPTIONAL {
?person oo:availableToCommentOn ?expertiseURI .
?expertiseURI rdfs:label ?expertise
}
}
QUERY CLAUSE
ORDER BY ?surname

SOLUTION MODIFIERS

Give me a list of names of professors in Southampton
and their expertise (if available), in order of their surname
133
The anatomy of a typical SPARQL query
PREFIX
PREFIX
PREFIX
PREFIX

rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
rdfs: <http://www.w3.org/2000/01/rdf-schema#>
foaf: <http://xmlns.com/foaf/0.1/>
oo: <http://purl.org/openorg/>
PREFIX DECLARATIONS

SELECT ?name ?expertise
FROM <http://data.southampton.ac.uk/>

RESULT CLAUSE
DATASET CLAUSE

WHERE {
?person foaf:name ?name ; foaf:familyName ?surname .
?person rdf:type foaf:Person .
?person foaf:title ?title . FILTER regex(?title, "^Prof")
OPTIONAL {
?person oo:availableToCommentOn ?expertiseURI .
?expertiseURI rdfs:label ?expertise
}
}
QUERY CLAUSE
ORDER BY ?surname

SOLUTION MODIFIERS

Give me a list of names of professors in Southampton
and their expertise (if available), in order of their surname
134
Prefix Declarations
PREFIX
PREFIX
PREFIX
PREFIX

rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
rdfs: <http://www.w3.org/2000/01/rdf-schema#>
foaf: <http://xmlns.com/foaf/0.1/>
oo: <http://purl.org/openorg/>
PREFIX DECLARATIONS
foaf:Person ⇔ <http://xmlns.com/foaf/0.1/Person>

Use http://prefix.cc/ …

135
The anatomy of a typical SPARQL query
PREFIX
PREFIX
PREFIX
PREFIX

rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
rdfs: <http://www.w3.org/2000/01/rdf-schema#>
foaf: <http://xmlns.com/foaf/0.1/>
oo: <http://purl.org/openorg/>
PREFIX DECLARATIONS

SELECT ?name ?expertise
FROM <http://data.southampton.ac.uk/>

RESULT CLAUSE
DATASET CLAUSE

WHERE {
?person foaf:name ?name ; foaf:familyName ?surname .
?person rdf:type foaf:Person .
?person foaf:title ?title . FILTER regex(?title, "^Prof")
OPTIONAL {
?person oo:availableToCommentOn ?expertiseURI .
?expertiseURI rdfs:label ?expertise
}
}
QUERY CLAUSE
ORDER BY ?surname

SOLUTION MODIFIERS

Give me a list of names of professors in Southampton
and their expertise (if available), in order of their surname
136
Result Clause
SELECT ?name ?expertise

RESULT CLAUSE

1. SELECT
2. CONSTRUCT

(RDF)

3. ASK
4. DESCRIBE (RDF)

137
Result Clause 1. SELECT…
SELECT ?name ?expertise

RESULT CLAUSE

Return all tuples for the bindings of the variables
?name and ?expertise
----------------------------------------------------------| “Professor Robert Allen”
| “Control engineering”
|
| “Professor Robert Allen”
| “Biomedical engineering”
|
| “Prof Carl Leonetto Amos” |
|
| “Professor Peter Ashburn” | “Silicon technology”
|
| “Professor Robert Allen”
| “Control engineering”
|
-----------------------------------------------------------

Give me a list of names of professors in Southampton
and their expertise (if available), in order of their surname
138
Result Clause 1. SELECT DISTINCT…
SELECT ?name ?expertise
DISTINCT
unique

Return all tuples for the bindings of the variables
?name and ?expertise
----------------------------------------------------------| “Professor Robert Allen”
| “Control engineering”
|
| “Professor Robert Allen”
| “Biomedical engineering”
|
| “Prof Carl Leonetto Amos” |
|
| “Professor Peter Ashburn” | “Silicon technology”
|
| “Professor Robert Allen”
| “Control engineering”
|
-----------------------------------------------------------

Give me a list of names of professors in Southampton
and their expertise (if available), in order of their surname
139
Result Clause 2. CONSTRUCT…
CONSTRUCT {
?person foaf:name ?name ; ex:expertise ?expertise .
}
RESULT CLAUSE

Return RDF using bindings for the variables:
ex:RAllen foaf:name “Professor Robert Allen” ;
ex:expertise “Biomedical engineering” ,
“Control engineering” .
ex:PAshburn foaf:name “Peter Ashburn ” ;
ex:expertise “Silicon technology” .

Give me a list of names of professors in Southampton
and their expertise (if available), in order of their surname
140
Result Clause 3. ASK…
ASK
… WHERE { … }

Is there any results?
Returns:

true or false

141

RESULT CLAUSE
Result Clause 4. DESCRIBE…
DESCRIBE ?person

RESULT CLAUSE

… WHERE { ?person … }

Returns some RDF which “describes” the given resource…
No standard for what to return!

Typically returns:
all triples where the given resource appears as subject and/or object
OR
Concise Bounded Descriptions…

142
Result Clause 4. DESCRIBE
DESCRIBE ex:RAllen

(DIRECT)…
RESULT CLAUSE

(…can give URIs directly without need for a WHERE clause.)

143
The anatomy of a typical SPARQL query
PREFIX
PREFIX
PREFIX
PREFIX

rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
rdfs: <http://www.w3.org/2000/01/rdf-schema#>
foaf: <http://xmlns.com/foaf/0.1/>
oo: <http://purl.org/openorg/>
PREFIX DECLARATIONS

SELECT ?name ?expertise
FROM <http://data.southampton.ac.uk/>

RESULT CLAUSE
DATASET CLAUSE

WHERE {
?person foaf:name ?name ; foaf:familyName ?surname .
?person rdf:type foaf:Person .
?person foaf:title ?title . FILTER regex(?title, "^Prof")
OPTIONAL {
?person oo:availableToCommentOn ?expertiseURI .
?expertiseURI rdfs:label ?expertise
}
}
QUERY CLAUSE
ORDER BY ?surname

SOLUTION MODIFIERS

Give me a list of names of professors in Southampton
and their expertise (if available), in order of their surname
144
Dataset clause (FROM/FROM NAMED)
FROM <http://data.southampton.ac.uk/>

DATASET CLAUSE

(Briefly)
Restrict the dataset against which you wish to query
SPARQL stores named graphs: sets of triples which are associated
with (URI) names
Can match across graphs!
Named graphs typically corrrespond with data provenance (i.e.,
documents)!
Default graph typically corresponds to the merge of all graphs
Many engines will typically dereference a graph if not available locally!

Give me a list of names of professors in Southampton
and their expertise (if available), in order of their surname
145
The anatomy of a typical SPARQL query
PREFIX
PREFIX
PREFIX
PREFIX

rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
rdfs: <http://www.w3.org/2000/01/rdf-schema#>
foaf: <http://xmlns.com/foaf/0.1/>
oo: <http://purl.org/openorg/>
PREFIX DECLARATIONS

SELECT ?name ?expertise
FROM <http://data.southampton.ac.uk/>

RESULT CLAUSE
DATASET CLAUSE

WHERE {
WHERE {
?person foaf:name ?name ; foaf:familyName ?surname .
?person foaf:name ?name ; foaf:familyName ?surname
?person rdf:type foaf:Person .
?person rdf:type foaf:Person
?person foaf:title ?title . FILTER regex(?title, "^Prof")
?person foaf:title ?title
OPTIONAL {
OPTIONAL {
?person oo:availableToCommentOn ?expertiseURI .
?person oo:availableToCommentOn
?expertiseURI rdfs:label ?expertise
?expertiseURI rdfs:label
}
}
}
QUERY CLAUSE
}
ORDER BY ?surname

SOLUTION MODIFIERS

Give me a list of names of professors in Southampton
and their expertise (if available), in order of their surname
146
Query clause (WHERE)
WHERE {
?person foaf:name ?name ; foaf:familyName ?surname .
?person rdf:type foaf:Person .
?person foaf:title ?title . FILTER regex(?title, "^Prof")
OPTIONAL {
?person oo:availableToCommentOn ?expertiseURI .
?expertiseURI rdfs:label ?expertise
}
QUERY CLAUSE
}
“Professor Peter Ashburn”

?person

foaf:name
rdf:type

ex:PAshburn

?name
foaf:Person

✓

foaf:title
foaf:familyName
oo:availableToCommentOn
?surname
“Ashburn”

?title

“Professor”
[FILTER “^Prof”] ✓

?expertiseURI
rdfs:label
ex:Silicon

“Silicon technology”

?expertise

Give me a list of names of professors in Southampton
and their expertise (if available), in order of their surname
147
Quick mention for UNION
WHERE {
…
{?person oo:availableToCommentOn ?expertiseURI . }
UNION
{?person foaf:interest ?expertiseURI . }

…
}
QUERY CLAUSE

Represent disjunction (OR)

Useful when there’s more than one property/class that represents the
same information you’re interested in (heterogenity)
Reasoning can also help, assuming terms are mapped (more later)

148
The anatomy of a typical SPARQL query
PREFIX
PREFIX
PREFIX
PREFIX

rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
rdfs: <http://www.w3.org/2000/01/rdf-schema#>
foaf: <http://xmlns.com/foaf/0.1/>
oo: <http://purl.org/openorg/>
PREFIX DECLARATIONS

SELECT ?name ?expertise
FROM NAMED <http://data.southampton.ac.uk/>

RESULT CLAUSE
DATASET CLAUSE

WHERE {
?person foaf:name ?name ; foaf:familyName ?surname .
?person rdf:type foaf:Person .
?person foaf:title ?title . FILTER regex(?title, "^Prof")
OPTIONAL {
?person oo:availableToCommentOn ?expertiseURI .
?expertiseURI rdfs:label ?expertise
}
}
QUERY CLAUSE
ORDER BY ?surname

SOLUTION MODIFIERS

Give me a list of names of professors in Southampton
and their expertise (if available), in order of their surname
149
Solution Modifiers
ORDER BY ?surname

SOLUTION MODIFIERS

Order output results by surname (as you probably guessed)
…also…

LIMIT
ORDER BY ?surname LIMIT 10

SOLUTION MODIFIERS

Only return 10 results

OFFSET
ORDER BY ?surname LIMIT 10 OFFSET 20

SOLUTION MODIFIERS

Return results 20‒30

Give me a list of names of professors in Southampton
and their expertise (if available), in order of their surname
150
The summary of a typical SPARQL query
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
Shortcuts for URIs
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX oo: <http://purl.org/openorg/>
PREFIX DECLARATIONS
SELECT ?name ?expertise
Which results do you want?
FROM <http://data.southampton.ac.uk/>
Where should we look?

RESULT CLAUSE
DATASET CLAUSE

WHERE {
?person foaf:name ?name ; foaf:familyName ?surname .
?person rdf:type foaf:Person .
?person foaf:title ?title . FILTER regex(?title, "^Prof")
What are you looking for?
OPTIONAL {
?person oo:availableToCommentOn ?expertiseURI .
?expertiseURI rdfs:label ?expertise
}
}
QUERY CLAUSE
ORDER BY ?surname
How should results be ordered/split?

SOLUTION MODIFIERS

Give me a list of names of professors in Southampton
and their expertise (if available), in order of their surname
151
Trying out a typical SPARQL query
PREFIX
PREFIX
PREFIX
PREFIX

rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
rdfs: <http://www.w3.org/2000/01/rdf-schema#>
foaf: <http://xmlns.com/foaf/0.1/>
oo: <http://purl.org/openorg/>

SELECT ?name ?expertise
FROM <http://data.southampton.ac.uk/>
WHERE {
?person foaf:name ?name ; foaf:familyName ?surname .
; foaf:familyName ?surname .
?person rdf:type foaf:Person .
?person foaf:title ?title . FILTER regex(?title, “^Prof”)
OPTIONAL {
?person oo:availableToCommentOn ?expertiseURI .
?expertiseURI rdfs:label ?expertise
}
}
ORDER BY ?surname

Give me a list of names of professors in Southampton
and their expertise (if available), in order of their surname
152
SPARQL in the wild

66% of LD datasets have a SPARQL endpoint
35% offer an RDF dump

See http://www.w3.org/wiki/SparqlEndpoints
153
Highly recommend checking out:

“SPARQL by example”

By Cambridge Semantics
Lee Feigenbaum & Eric Prud'hommeaux
http://www.cambridgesemantics.com/2008/09/sparql-by-example/

154
SPARQL Extension Coming Soon!
SPARQL 1.1. W3C Working Draft (2012)
New query features:
Property-chains
?s ex:father+ ?o .

Arithemetic
BIND ( ?weight / (?height * ?height) AS ?bmi)

Aggregates
SELECT AVG(?age) as ?avgAge

Sub-queries, exists/not-exists, bindings, etc.

SPARQL 1.1 Federation
SPARQL 1.1 Update
SPARQL 1.1 Entailment

155

24.05.2012
AND MORE BESIDES …

156

24.05.2012
SO, WHAT IS THE SEMANTIC
WEB?
157

24.05.2012

More Related Content

Similar to Semantic Web Languages and Standards Primer

Introduction to the Semantic Web
Introduction to the Semantic WebIntroduction to the Semantic Web
Introduction to the Semantic WebTomek Pluskiewicz
 
Lecture 05-SchemaMatching.ppt
Lecture 05-SchemaMatching.pptLecture 05-SchemaMatching.ppt
Lecture 05-SchemaMatching.pptAsadkhan47384
 
Blazing Fast Analytics with MongoDB & Spark
Blazing Fast Analytics with MongoDB & SparkBlazing Fast Analytics with MongoDB & Spark
Blazing Fast Analytics with MongoDB & SparkMongoDB
 
Scaling up Linked Data
Scaling up Linked DataScaling up Linked Data
Scaling up Linked DataEUCLID project
 
DCMI Keynote: Bridging the Semantic Gaps and Interoperability
DCMI Keynote: Bridging the Semantic Gaps and InteroperabilityDCMI Keynote: Bridging the Semantic Gaps and Interoperability
DCMI Keynote: Bridging the Semantic Gaps and InteroperabilityMike Bergman
 
Semantic Technology In Oracle Database 12c
Semantic Technology In Oracle Database 12cSemantic Technology In Oracle Database 12c
Semantic Technology In Oracle Database 12cMartin Toshev
 
State of the Semantic Web
State of the Semantic WebState of the Semantic Web
State of the Semantic WebIvan Herman
 
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODO
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODOLinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODO
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODOChris Mungall
 
Etosha - Data Asset Manager : Status and road map
Etosha - Data Asset Manager : Status and road mapEtosha - Data Asset Manager : Status and road map
Etosha - Data Asset Manager : Status and road mapDr. Mirko Kämpf
 
Denodo Partner Connect: Technical Webinar - Ask Me Anything
Denodo Partner Connect: Technical Webinar - Ask Me AnythingDenodo Partner Connect: Technical Webinar - Ask Me Anything
Denodo Partner Connect: Technical Webinar - Ask Me AnythingDenodo
 
Myth Busters II: BI Tools and Data Virtualization are Interchangeable
Myth Busters II: BI Tools and Data Virtualization are InterchangeableMyth Busters II: BI Tools and Data Virtualization are Interchangeable
Myth Busters II: BI Tools and Data Virtualization are InterchangeableDenodo
 
Three Steps to Link Analysis Insight
Three Steps to Link Analysis InsightThree Steps to Link Analysis Insight
Three Steps to Link Analysis InsightSdushko
 

Similar to Semantic Web Languages and Standards Primer (20)

Introduction to the Semantic Web
Introduction to the Semantic WebIntroduction to the Semantic Web
Introduction to the Semantic Web
 
Sql and Go
Sql and GoSql and Go
Sql and Go
 
Lecture 05-SchemaMatching.ppt
Lecture 05-SchemaMatching.pptLecture 05-SchemaMatching.ppt
Lecture 05-SchemaMatching.ppt
 
2013.05 - LDOW 2013 @ WWW 2013
2013.05 - LDOW 2013 @ WWW 20132013.05 - LDOW 2013 @ WWW 2013
2013.05 - LDOW 2013 @ WWW 2013
 
Bosch, Wackerow: Linked data on the web
Bosch, Wackerow: Linked data on the web Bosch, Wackerow: Linked data on the web
Bosch, Wackerow: Linked data on the web
 
Blazing Fast Analytics with MongoDB & Spark
Blazing Fast Analytics with MongoDB & SparkBlazing Fast Analytics with MongoDB & Spark
Blazing Fast Analytics with MongoDB & Spark
 
Linked data life cycles
Linked data life cyclesLinked data life cycles
Linked data life cycles
 
Scaling up Linked Data
Scaling up Linked DataScaling up Linked Data
Scaling up Linked Data
 
DCMI Keynote: Bridging the Semantic Gaps and Interoperability
DCMI Keynote: Bridging the Semantic Gaps and InteroperabilityDCMI Keynote: Bridging the Semantic Gaps and Interoperability
DCMI Keynote: Bridging the Semantic Gaps and Interoperability
 
Semantic Technology In Oracle Database 12c
Semantic Technology In Oracle Database 12cSemantic Technology In Oracle Database 12c
Semantic Technology In Oracle Database 12c
 
Scaling the (evolving) web data –at low cost-
Scaling the (evolving) web data –at low cost-Scaling the (evolving) web data –at low cost-
Scaling the (evolving) web data –at low cost-
 
Html5 101
Html5 101Html5 101
Html5 101
 
State of the Semantic Web
State of the Semantic WebState of the Semantic Web
State of the Semantic Web
 
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODO
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODOLinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODO
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODO
 
Etosha - Data Asset Manager : Status and road map
Etosha - Data Asset Manager : Status and road mapEtosha - Data Asset Manager : Status and road map
Etosha - Data Asset Manager : Status and road map
 
SWT Lecture Session 1 - Introduction
SWT Lecture Session 1 - IntroductionSWT Lecture Session 1 - Introduction
SWT Lecture Session 1 - Introduction
 
Denodo Partner Connect: Technical Webinar - Ask Me Anything
Denodo Partner Connect: Technical Webinar - Ask Me AnythingDenodo Partner Connect: Technical Webinar - Ask Me Anything
Denodo Partner Connect: Technical Webinar - Ask Me Anything
 
Myth Busters II: BI Tools and Data Virtualization are Interchangeable
Myth Busters II: BI Tools and Data Virtualization are InterchangeableMyth Busters II: BI Tools and Data Virtualization are Interchangeable
Myth Busters II: BI Tools and Data Virtualization are Interchangeable
 
LOD2 Webinar Series: CubeViz
LOD2 Webinar Series: CubeViz LOD2 Webinar Series: CubeViz
LOD2 Webinar Series: CubeViz
 
Three Steps to Link Analysis Insight
Three Steps to Link Analysis InsightThree Steps to Link Analysis Insight
Three Steps to Link Analysis Insight
 

More from eswcsummerschool

Semantic Aquarium - ESWC SSchool 14 - Student project
Semantic Aquarium - ESWC SSchool 14 - Student projectSemantic Aquarium - ESWC SSchool 14 - Student project
Semantic Aquarium - ESWC SSchool 14 - Student projecteswcsummerschool
 
Syrtaki - ESWC SSchool 14 - Student project
Syrtaki  - ESWC SSchool 14 - Student projectSyrtaki  - ESWC SSchool 14 - Student project
Syrtaki - ESWC SSchool 14 - Student projecteswcsummerschool
 
Keep fit (a bit) - ESWC SSchool 14 - Student project
Keep fit (a bit)  - ESWC SSchool 14 - Student projectKeep fit (a bit)  - ESWC SSchool 14 - Student project
Keep fit (a bit) - ESWC SSchool 14 - Student projecteswcsummerschool
 
Arabic Sentiment Lexicon - ESWC SSchool 14 - Student project
Arabic Sentiment Lexicon - ESWC SSchool 14 - Student projectArabic Sentiment Lexicon - ESWC SSchool 14 - Student project
Arabic Sentiment Lexicon - ESWC SSchool 14 - Student projecteswcsummerschool
 
FIT-8BIT An activity music assistant - ESWC SSchool 14 - Student project
FIT-8BIT An activity music assistant - ESWC SSchool 14 - Student projectFIT-8BIT An activity music assistant - ESWC SSchool 14 - Student project
FIT-8BIT An activity music assistant - ESWC SSchool 14 - Student projecteswcsummerschool
 
Personal Tours at the British Museum - ESWC SSchool 14 - Student project
Personal Tours at the British Museum  - ESWC SSchool 14 - Student projectPersonal Tours at the British Museum  - ESWC SSchool 14 - Student project
Personal Tours at the British Museum - ESWC SSchool 14 - Student projecteswcsummerschool
 
Exhibition recommendation using British Museum data and Event Registry - ESWC...
Exhibition recommendation using British Museum data and Event Registry - ESWC...Exhibition recommendation using British Museum data and Event Registry - ESWC...
Exhibition recommendation using British Museum data and Event Registry - ESWC...eswcsummerschool
 
Empowering fishing business using Linked Data - ESWC SSchool 14 - Student pro...
Empowering fishing business using Linked Data - ESWC SSchool 14 - Student pro...Empowering fishing business using Linked Data - ESWC SSchool 14 - Student pro...
Empowering fishing business using Linked Data - ESWC SSchool 14 - Student pro...eswcsummerschool
 
Tutorial: Social Semantic Web and Crowdsourcing - E. Simperl - ESWC SS 2014
Tutorial: Social Semantic Web and Crowdsourcing - E. Simperl - ESWC SS 2014 Tutorial: Social Semantic Web and Crowdsourcing - E. Simperl - ESWC SS 2014
Tutorial: Social Semantic Web and Crowdsourcing - E. Simperl - ESWC SS 2014 eswcsummerschool
 
Keynote: Global Media Monitoring - M. Grobelnik - ESWC SS 2014
Keynote: Global Media Monitoring - M. Grobelnik - ESWC SS 2014Keynote: Global Media Monitoring - M. Grobelnik - ESWC SS 2014
Keynote: Global Media Monitoring - M. Grobelnik - ESWC SS 2014eswcsummerschool
 
Hands On: Amazon Mechanical Turk - M. Acosta - ESWC SS 2014
Hands On: Amazon Mechanical Turk - M. Acosta - ESWC SS 2014 Hands On: Amazon Mechanical Turk - M. Acosta - ESWC SS 2014
Hands On: Amazon Mechanical Turk - M. Acosta - ESWC SS 2014 eswcsummerschool
 
Tutorial: Querying a Marine Data Warehouse Using SPARQL - I. Fundulaki - ESWC...
Tutorial: Querying a Marine Data Warehouse Using SPARQL - I. Fundulaki - ESWC...Tutorial: Querying a Marine Data Warehouse Using SPARQL - I. Fundulaki - ESWC...
Tutorial: Querying a Marine Data Warehouse Using SPARQL - I. Fundulaki - ESWC...eswcsummerschool
 
Mon norton tut_publishing01
Mon norton tut_publishing01Mon norton tut_publishing01
Mon norton tut_publishing01eswcsummerschool
 
Mon domingue introduction to the school
Mon domingue introduction to the schoolMon domingue introduction to the school
Mon domingue introduction to the schooleswcsummerschool
 
Mon norton tut_querying cultural heritage data
Mon norton tut_querying cultural heritage dataMon norton tut_querying cultural heritage data
Mon norton tut_querying cultural heritage dataeswcsummerschool
 
Tue acosta hands_on_providinglinkeddata
Tue acosta hands_on_providinglinkeddataTue acosta hands_on_providinglinkeddata
Tue acosta hands_on_providinglinkeddataeswcsummerschool
 
Thu bernstein key_warp_speed
Thu bernstein key_warp_speedThu bernstein key_warp_speed
Thu bernstein key_warp_speedeswcsummerschool
 
Fri schreiber key_knowledge engineering
Fri schreiber key_knowledge engineeringFri schreiber key_knowledge engineering
Fri schreiber key_knowledge engineeringeswcsummerschool
 
Mon norton tut_queryinglinkeddata02
Mon norton tut_queryinglinkeddata02Mon norton tut_queryinglinkeddata02
Mon norton tut_queryinglinkeddata02eswcsummerschool
 
Mon fundulaki tut_querying linked data
Mon fundulaki tut_querying linked dataMon fundulaki tut_querying linked data
Mon fundulaki tut_querying linked dataeswcsummerschool
 

More from eswcsummerschool (20)

Semantic Aquarium - ESWC SSchool 14 - Student project
Semantic Aquarium - ESWC SSchool 14 - Student projectSemantic Aquarium - ESWC SSchool 14 - Student project
Semantic Aquarium - ESWC SSchool 14 - Student project
 
Syrtaki - ESWC SSchool 14 - Student project
Syrtaki  - ESWC SSchool 14 - Student projectSyrtaki  - ESWC SSchool 14 - Student project
Syrtaki - ESWC SSchool 14 - Student project
 
Keep fit (a bit) - ESWC SSchool 14 - Student project
Keep fit (a bit)  - ESWC SSchool 14 - Student projectKeep fit (a bit)  - ESWC SSchool 14 - Student project
Keep fit (a bit) - ESWC SSchool 14 - Student project
 
Arabic Sentiment Lexicon - ESWC SSchool 14 - Student project
Arabic Sentiment Lexicon - ESWC SSchool 14 - Student projectArabic Sentiment Lexicon - ESWC SSchool 14 - Student project
Arabic Sentiment Lexicon - ESWC SSchool 14 - Student project
 
FIT-8BIT An activity music assistant - ESWC SSchool 14 - Student project
FIT-8BIT An activity music assistant - ESWC SSchool 14 - Student projectFIT-8BIT An activity music assistant - ESWC SSchool 14 - Student project
FIT-8BIT An activity music assistant - ESWC SSchool 14 - Student project
 
Personal Tours at the British Museum - ESWC SSchool 14 - Student project
Personal Tours at the British Museum  - ESWC SSchool 14 - Student projectPersonal Tours at the British Museum  - ESWC SSchool 14 - Student project
Personal Tours at the British Museum - ESWC SSchool 14 - Student project
 
Exhibition recommendation using British Museum data and Event Registry - ESWC...
Exhibition recommendation using British Museum data and Event Registry - ESWC...Exhibition recommendation using British Museum data and Event Registry - ESWC...
Exhibition recommendation using British Museum data and Event Registry - ESWC...
 
Empowering fishing business using Linked Data - ESWC SSchool 14 - Student pro...
Empowering fishing business using Linked Data - ESWC SSchool 14 - Student pro...Empowering fishing business using Linked Data - ESWC SSchool 14 - Student pro...
Empowering fishing business using Linked Data - ESWC SSchool 14 - Student pro...
 
Tutorial: Social Semantic Web and Crowdsourcing - E. Simperl - ESWC SS 2014
Tutorial: Social Semantic Web and Crowdsourcing - E. Simperl - ESWC SS 2014 Tutorial: Social Semantic Web and Crowdsourcing - E. Simperl - ESWC SS 2014
Tutorial: Social Semantic Web and Crowdsourcing - E. Simperl - ESWC SS 2014
 
Keynote: Global Media Monitoring - M. Grobelnik - ESWC SS 2014
Keynote: Global Media Monitoring - M. Grobelnik - ESWC SS 2014Keynote: Global Media Monitoring - M. Grobelnik - ESWC SS 2014
Keynote: Global Media Monitoring - M. Grobelnik - ESWC SS 2014
 
Hands On: Amazon Mechanical Turk - M. Acosta - ESWC SS 2014
Hands On: Amazon Mechanical Turk - M. Acosta - ESWC SS 2014 Hands On: Amazon Mechanical Turk - M. Acosta - ESWC SS 2014
Hands On: Amazon Mechanical Turk - M. Acosta - ESWC SS 2014
 
Tutorial: Querying a Marine Data Warehouse Using SPARQL - I. Fundulaki - ESWC...
Tutorial: Querying a Marine Data Warehouse Using SPARQL - I. Fundulaki - ESWC...Tutorial: Querying a Marine Data Warehouse Using SPARQL - I. Fundulaki - ESWC...
Tutorial: Querying a Marine Data Warehouse Using SPARQL - I. Fundulaki - ESWC...
 
Mon norton tut_publishing01
Mon norton tut_publishing01Mon norton tut_publishing01
Mon norton tut_publishing01
 
Mon domingue introduction to the school
Mon domingue introduction to the schoolMon domingue introduction to the school
Mon domingue introduction to the school
 
Mon norton tut_querying cultural heritage data
Mon norton tut_querying cultural heritage dataMon norton tut_querying cultural heritage data
Mon norton tut_querying cultural heritage data
 
Tue acosta hands_on_providinglinkeddata
Tue acosta hands_on_providinglinkeddataTue acosta hands_on_providinglinkeddata
Tue acosta hands_on_providinglinkeddata
 
Thu bernstein key_warp_speed
Thu bernstein key_warp_speedThu bernstein key_warp_speed
Thu bernstein key_warp_speed
 
Fri schreiber key_knowledge engineering
Fri schreiber key_knowledge engineeringFri schreiber key_knowledge engineering
Fri schreiber key_knowledge engineering
 
Mon norton tut_queryinglinkeddata02
Mon norton tut_queryinglinkeddata02Mon norton tut_queryinglinkeddata02
Mon norton tut_queryinglinkeddata02
 
Mon fundulaki tut_querying linked data
Mon fundulaki tut_querying linked dataMon fundulaki tut_querying linked data
Mon fundulaki tut_querying linked data
 

Recently uploaded

A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Celine George
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting DataJhengPantaleon
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxAvyJaneVismanos
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptxENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptxAnaBeatriceAblay2
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
internship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developerinternship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developerunnathinaik
 
History Class XII Ch. 3 Kinship, Caste and Class (1).pptx
History Class XII Ch. 3 Kinship, Caste and Class (1).pptxHistory Class XII Ch. 3 Kinship, Caste and Class (1).pptx
History Class XII Ch. 3 Kinship, Caste and Class (1).pptxsocialsciencegdgrohi
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Biting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdfBiting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdfadityarao40181
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 

Recently uploaded (20)

A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptx
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptxENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
9953330565 Low Rate Call Girls In Rohini Delhi NCR
9953330565 Low Rate Call Girls In Rohini  Delhi NCR9953330565 Low Rate Call Girls In Rohini  Delhi NCR
9953330565 Low Rate Call Girls In Rohini Delhi NCR
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
internship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developerinternship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developer
 
History Class XII Ch. 3 Kinship, Caste and Class (1).pptx
History Class XII Ch. 3 Kinship, Caste and Class (1).pptxHistory Class XII Ch. 3 Kinship, Caste and Class (1).pptx
History Class XII Ch. 3 Kinship, Caste and Class (1).pptx
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Biting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdfBiting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdf
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 

Semantic Web Languages and Standards Primer

  • 1. Semantic Web Languages and Standards (Primer) Aidan Hogan — DERI Galway Session 1; Day 1; 10:30
  • 3. WHAT IS THE SEMANTIC WEB? 3 24.05.2012
  • 4. The Semantic Web is Tim (et al.)’s Vision ? 4 24.05.2012
  • 5. The Semantic Web is intelligent machines helping us make sense of the Web ? 5 24.05.2012
  • 6. The Semantic Web is naming everything ? 6 24.05.2012
  • 7. The Semantic Web is linking Web data ? Image by Cyganiak & Jentzsch ; http://lod-cloud.net 7 24.05.2012
  • 8. The Semantic Web is breaking down the data silos / walls ? Image from http://www.digitaltimes.ie 8 24.05.2012
  • 9. The Semantic Web is Web 3.0 ? Image by Radar Networks; Nova Spivak; http://memebox.com/futureblogger/show/824 9 24.05.2012
  • 10. The Semantic Web is a stack of technologies for interoperability? Images by Hendler, Brickley Novack; http://www.bnode.org/blog/tag/layer%20cake 10 24.05.2012
  • 11. The Semantic Web is a bunch of standards for interoperability? 11 24.05.2012
  • 12. The Semantic Web is something very very bad and it must die (apparently) ? 12 24.05.2012
  • 13. The Semantic Web is a buzzword ? … 13 24.05.2012
  • 14. The Semantic Web is… … …cf. “What is the Web?” 14 24.05.2012
  • 15. …WHAT IS THE SEMANTIC WEB FOR? 15 24.05.2012
  • 16. Web = Flood of information = 5.9 TB of data (Jan. 2010 Dump) 16 24.05.2012
  • 17. Web = Flood of information = 235 TB of data indexed = 40 Wikipedias (incl. Web archive) 17 24.05.2012
  • 18. Web = Flood of information = 12 TB/day added = 2 Wikipedias / day (as of Mar. 2010) 18 24.05.2012
  • 19. Web = Flood of information = 20 PB/day processed = 3,389 Wikipedias/day (Jan. 2010) 19 24.05.2012
  • 20. Web = Flood of information = 160 TB/s transferred = 27 Wikipedias/second (2008; Cisco) 20 24.05.2012
  • 23. To characters (ASCII/Unicode) … …Hello World… 23 24.05.2012
  • 24. To document markup (HTML) … <title> Hello World </title> She’ll know what to do with <title> 24 24.05.2012 Ah yes, I display this at the top.
  • 25. To data markup … <time=“10:36”/> She’ll know what <time> means 25 24.05.2012 This is what my user asked for. Thanks!
  • 26. To arbitrary information exchange ??? <aidan presents= “session1” /> This is the data I have. 26 24.05.2012 What’s an “aidan”?
  • 27. Arbitrary data/information exchange … We need … Common data model for encoding data (triples) Common ways of serialising data (syntaxes) Well-defined languages for saying what terms mean (semantics) Common ways to query data (query languages) Web standards! Make data machine-readable! <aidan presents= “session1” /> 27 24.05.2012
  • 28. Syntax to semantics / terms to entities <aidan presents=“session1”/> 28 24.05.2012
  • 29. …WHEN DID THE SEMANTIC WEB BEGIN? 29 24.05.2012
  • 30. Started with the Web? 1990 30 24.05.2012
  • 31. Pre-dating Web … Tim Berners Lee ENQUIRE (1980) Pre-dates Web by 10 years / Closer to Semantic Web than Web Link cards (each card reflected an “entity”) Different types of relations Never made it out of CERN … Disk containing software “re-used” Other works in Artificial Intelligence: FOL / Logic Programming / Description Logics / Expert Systems … Knowledge Representation Frame languages / Semantic networks / Ontology … Databases Entity-Attribute-Value (EAV) model / Deductive databases / Conceptual + Logical Schema … Information Retrieval, Natural Language Processing, … 31 24.05.2012
  • 32. Modern Semantic Web … Image by Titti Cimmino; http://www.titticimmino.com/2009/12/31/the-future-internet-semantics-and-service-web-3-0-survey/ 32 24.05.2012
  • 33. …SO WHERE IS THIS SEMANTIC WEB NOW? Image by Titti Cimmino; http://www.titticimmino.com/2009/12/31/the-future-internet-semantics-and-service-web-3-0-survey/ 33 24.05.2012
  • 34. Hidden within the Web? 34 24.05.2012
  • 35. Linked Open Data cloud … 35 24.05.2012
  • 36. Open Government Data (US) http://data.gov/ 36 24.05.2012
  • 37. Open Government Data (UK) http://data.gov.uk/ 37 24.05.2012
  • 38. Semantics in HCLS/Biomedical Domain 38 24.05.2012
  • 40. GoodRelations for Products Image from http://www.heppnetz.de/projects/goodrelations/primer/;; Hepp 40
  • 41. FaceBook’s Open Graph Protocol http://developers.facebook.com/tools/debug/ 41 24.05.2012
  • 43. BBC World Cup 2010 site 43 24.05.2012
  • 47. Not there yet (but getting there…) 47 24.05.2012
  • 48. IT ALL BEGINS WITH RDF … 48 24.05.2012
  • 49. A brief history of RDF Meta Content Framework (MCF) by Ramanathan V. Guha [1995] Data-model consisting of Objects, Categories, and Properties Directed, labelled graph type / domain / range / superType / superPropertyType XML syntax (based on XML names) Resource Description Framework (RDF) by W3C [1999] Spec. edited by Ora Lassila and Ralph R. Swick Data-model consisting of Resources, Class, and Properties Directed, labelled graph Later extended to RDFS, including type / domain / range / subClassOf / subPropertyOf XML syntax (based on URIs) RDF Revised by W3C 49 24.05.2012 [2004]
  • 50. What is RDF (not)? 50 24.05.2012
  • 52. What are triples? aidan presents session1 52 24.05.2012
  • 53. RDF Triples: statements in slots of three SUBJECT PREDICATE OBJECT aidan attending eswc2012 aidan worksAt deri deri location galway eswc2012 24.05.2012 session1 aidan 53 presents location crete
  • 54. Triples form a directed, labelled graph aidan presents session1 attending eswc2012 worksAt livesIn location deri Crete location Galway 54 24.05.2012
  • 55. Why triples? Simplest fixed-arity model … (PAIRS) FROM TO deri location location galway eswc2012 location deri 55 24.05.2012 location crete galway
  • 56. Naming in triples … avoid ambiguity aidan … … 56 24.05.2012
  • 57. Avoid ambiguities: use URIs (/IRIs)! http://ex.org/#aidan … … 57 24.05.2012
  • 58. Abbreviating URIs Use “CURIEs” / namespaces PREFIX ex: <http://ex.org/#> ex:aidan = <http://ex.org/#aidan> 58 24.05.2012
  • 59. RDF Triples: literals in object position SUBJECT URI | BNode PREDICATE URI OBJECT URI | Literal | BNode ex:aidan ex:aidan “male” ex:title “Semantic Web Languages and Standards”@en ex:session1 24.05.2012 ex:gender ex:session1 59 ex:presents ex:startTime “10:30:00+02:00” ^^xsd:time ex:session1
  • 60. Simple Literals Simple strings: “male”, “Hello World”, “aju901odksad” 60 24.05.2012
  • 61. Language-tagged Literals Simple strings with specified language: “Hello World”@en “Bonjour tout le monde.”@fr “Whilst I dreamt colourful dreams.”@en-GB (Defined by RFC 3066, ISO 639-2) 61 24.05.2012
  • 62. Datatype Literals Typed literals with mappings from strings to values String (lexical value) / URI (type) pair Many from XML Schema (namespace often given xsd: or xs: prefix) “true”^^xsd:boolean • “false”^^xsd:boolean “1.0”^^xsd:decimal • “1”^^xsd:int • “1”^^xsd:byte “2012-05-21”^^xsd:date • “2012-05-21T10:30:00Z”^^xsd:dateTime “---15”^^xsd:gDay “--05-15”^^xsd:gMonthDay “2010”^^xsd:gYear “Hello World”^^xsd:string (…and more besides) Other datatypes defined elsewhere (rdf:XMLLiteral, Can define custom datatypes (e.g., dbt:usDollars) “literal”^^xsd:string owl:real) ≡ “literal” Can’t mix datatypes and language tags (“Hello World”^^xsd:string@en) 62 24.05.2012
  • 63. RDF Literals: summary Plain Literals Simple Literals “string” Datatype Literals “string”^^xsd:string Lang-tag Literals “string”@en 63 24.05.2012
  • 64. RDF Triples: blank-nodes SUBJECT URI | BNode PREDICATE URI ex:aidan ex:presents ex:aidan ex:gender ex:session1 _:somewhere 64 24.05.2012 ex:venue ex:location OBJECT URI | Literal | BNode ex:session1 “male” _:somewhere ex:kalamaki
  • 65. Blank Nodes Often denoted with the prefix “_:”, and a label suffix _:bnode4 • _:genid2 • _:venue Can only be referenced in a local document! Values of labels are inconsequential Can consistently re-label blank nodes; makes no difference Used: to avoid creating a URI for something for syntax shortcuts if a value is unknown or not concretely identifiable once-off resource (e.g., for time-of-access) only allow local reference etc. 65 24.05.2012
  • 66. Blank Nodes are existential (in theory) Denote the existence of something ex:JohnFKennedy ex:assassin _:unknown . Blank nodes can introduce redundancy (non-lean RDF) ex:aidan ex:coauthoredPaper _:bnode1 ex:title ex:coauthoredPaper “On Blank Nodes”@en _:bnode2 66 24.05.2012
  • 67. Summary of RDF Triples Slots of three: Subject, Predicate, Object Used to make statements about the world Subject: URIs or Blank Nodes Predicate: URIs only Object: URIs, Blank Nodes, Literals (plain [w/lang] or typed) An RDF graph is a set of triples ex:aidan ex:coauthoredPaper ex:coauthoredPaper _:bnode2 (1) ex:aidan (2) _:bnode1 (3) ex:aidan 67 24.05.2012 ex:coauthoredPaper ex:title ex:coauthoredPaper _:bnode1 ex:title “On Blank Nodes”@en _:bnode1 “On Blank Nodes”@en _:bnode2
  • 72. Features of RDF: typing / classes ex:barry ex:denny ex:matthew rdf:type rdf:type rdf:type ex:Tutor rdf:type ex:aidan 72 24.05.2012 rdf:type ex:dan rdf:type ex:elena
  • 73. Features of RDF: containers (aka. lists) ex:summerSchool _:dayOne _:dayOne _:dayOneB _:dayOneB _:dayOneC _:dayOneC _:dayOneD _:dayOneD listNode-1 ex:1stDaySchedule rdf:first rdf:rest rdf:first rdf:rest rdf:first rdf:rest rdf:first rdf:rest rdf:rest listNode-2 rdf:first listEl-1 73 rdf:first listEl-1 24.05.2012 … _:dayOne “Enrico’s Keynote” _:dayOneB “Session 1” _:dayOneC “Session 2” _:dayOneD “Hands On 1” rdf:nil rdf:rest rdf:nil
  • 74. Other features of RDF (not covered) RDF containers RDF reification RDF n-ary predicates Hint: if you’re using these features, you’re probably doing it wrong (unless you specifically know what you’re doing) 74 24.05.2012
  • 75. Writing RDF triples down? 75 24.05.2012
  • 76. RDF syntaxes / serialisation <http://ex.org/#aidan> … … The bit between angle brackets is a URI 76 24.05.2012
  • 77. RDF syntaxes N-Triples Simple syntax for line-delimited triples Turtle Superset of N-Triples, with lots of nice shortcuts Notation3 (N3) Superset of Turtle and RDF (goes beyond RDF!) RDF/XML RDF syntax based on XML RDFa Syntax for embedding RDF directly into XHTML documents 77 24.05.2012
  • 78. N-Triples Full URIs in ‘<>’angle brackets Terms delimited by space or tab Triples ended by ‘.’, delimited by new line <http:/ex.org/#aidan> <http:/ns.com/worksAt> <http:/ex.org/#DERI> . <http:/ex.org/#aidan> <http:/ns.com/author> _:bnode1 . <http:/ex.org/#aidan> <http:/ns.com/author> _:bnode2 . _:bnode2 <http://ns.com/title> “On Blank Nodes”@en . _:bnode2 <http://ns.com/pages> “16”^^<http://w3.org/…#integer> . Blank nodes with ‘_:’ prefix 78 24.05.2012 Literals enclosed with quotes Optional datatype with ‘^^’ Optional lang-tag with ‘@’
  • 79. Turtle (Terse RDF Triple Language) <http:/ex.org/#aidan> <http:/ns.com/worksAt> <http:/ex.org/#DERI> . <http:/ex.org/#aidan> <http:/ns.com/author> _:bnode1 . <http:/ex.org/#aidan> <http:/ns.com/author> _:bnode2 . _:bnode2 <http://ns.com/title> “On Blank Nodes”@en . _:bnode2 <http://ns.com/pages> “16”^^<http://w3.org/…#integer> . Re-usable URI prefixes ‘;’ for common subject ‘,’ for common subject & predicate @base <http://ex.org/#> . @prefix ns: <http://ns.com/> . <aidan> ns:worksAt <DERI> ; ns:author _:bnode1 , _:bnode2 . _:bnode2 ns:title “On Blank Nodes”@en ; ns:pages 16 . Rel. URIs resolved against base 79 24.05.2012 Expands to “16”^^xsd:integer (Similar shortcuts for decimals, floating points and booleans)
  • 80. Turtle (Blank node abbreviation) <http:/ex.org/#aidan> <http:/ns.com/worksAt> <http:/ex.org/#DERI> . <http:/ex.org/#aidan> <http:/ns.com/author> _:bnode1 . <http:/ex.org/#aidan> <http:/ns.com/author> _:bnode2 . _:bnode2 <http://ns.com/title> “On Blank Nodes”@en . _:bnode2 <http://ns.com/pages> “16”^^<http://w3.org/…#integer> . Don’t have to label blank nodes. (Labels are arbitrary anyways) @base <http://ex.org/#> . @prefix ns: <http://ns.com/> . <aidan> ns:worksAt <DERI> ; ns:author [] , [ ns:title “On Blank Nodes”@en ; ns:pages 16 ] . Can assign predicate–object information to implicit blank node 80 24.05.2012
  • 81. Turtle (RDF collection / list abbreviation) <http://ex.org/#summerSchool> <http://ex.org/#1stDaySchedule> _:dayOne . _:dayOne <http://w3.org/…/22-rdf-syntax#first> “Enrico’s Keynote” . _:dayOne <http://w3.org/…/22-rdf-syntax#rest> _:dayOneB . _:dayOneB <http://w3.org/…/22-rdf-syntax#first> “Session 1” . _:dayOneB <http://w3.org/…/22-rdf-syntax#rest> _:dayOneC . _:dayOneC <http://w3.org/…/22-rdf-syntax#first> “Session 2” . _:dayOneC <http://w3.org/…/22-rdf-syntax#rest> _:dayOneD . _:dayOneD <http://w3.org/…/22-rdf-syntax#first> “Hands-on 1” _:dayOneD <http://w3.org/…/22-rdf-syntax#first> <http://…/22-rdf-syntax#nil> . @base <http://ex.org/#> . <summerSchool> <1stDaySchedule> ( “Enrico’s Keynote” “Session 1” “Session 2” “Hands-on 1” ) . Enclose list elements in parentheses, and you’re done! 81 24.05.2012
  • 82. Turtle (my favourite abbreviation) <http://ex.org/#aidan> <http://w3.org/…#type> <http://ex.org/#Tutor> . @base <http://ex.org/#> . <aidan> a <Tutor> . ‘a’ instead of rdf:type (No need to declare rdf: prefix) 82 24.05.2012
  • 83. Notation3 (N3) … a quick note A superset of RDF Contains non-RDF features like rules, scoping graphs, etc. Intersection of N3 and RDF ≈ Turtle N-Triples Turtle N3 83 24.05.2012
  • 84. RDF/XML overview RDF syntax based on XML RDF/XML and RDF often conflated: RDF is a data-model based on triples RDF/XML is a syntax to serialise triples A very prominent syntax (dates back to 1999); used widely Unfortunately, not a very nice syntax: Difficult to see triple structure Shortcuts are confusing Relative name schemes are confusing Not all RDF can be written as RDF/XML (due to limitations of XML names for writing down predicates) Not canonical: XML tools are useless Just plain difficult to read/write/parse/learn, etc. 84 24.05.2012
  • 85. RDF/XML (…will not go into detail) <rdf:Description rdf:about="http://…/TR/rdf-syntax-grammar"> <ex:editor> <rdf:Description> <ex:homePage rdf:resource="http://purl.org/net/dajobe/“ /> <ex:fullName>Dave Beckett</ex:fullName> </rdf:Description> </ex:editor> <dc:title>RDF/XML Syntax Specification (Revised)</dc:title> </rdf:Description> Image from http://www.w3.org/TR/REC-rdf-syntax/;; Beckett 85 24.05.2012
  • 86. RDFa overview RDFa allows for embedding RDF into XHTML Mix human readable and machine readable No need for separate docs! Less server costs simpler hosting Becoming more and more prominent (rec. since 2008) 86 24.05.2012
  • 87. RDFa (…will not go into detail) <div typeof="foaf:Person" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <p property="foaf:name">Alice Birpemswick</p> <p> Email: <a rel="foaf:mbox" href="mailto:alice@example.com">alice@example.com</a> </p> <p> Phone: <a rel="foaf:phone" href="tel:+1-617-555-7332">+1 617.555.7332</a> </p> </div> Image from http://www.w3.org/TR/xhtml-rdfa-primer/;; Adida & Birbeck 87 24.05.2012
  • 88. THAT’S RDF … … NEXT UP… 88 24.05.2012
  • 89. RDFS and OWL! RDF Schema Web Ontology Language W3C Recommendations, 2004 OWL 2 since 2009 Standardised schema/ontology languages Can be serialised in RDF OWL (partly) extends RDFS 89
  • 90. Features walkthrough… …modelling family relationships in RDFS and OWL… 90
  • 91. A Family-Relations OWL Ontology ex:Vito ex:Sonny ex:Vincent 91 ex:Connie ex:Carmela ex:Fredo ex:Michael ex:Mary
  • 92. RDFS 1. rdfs:subPropertyOf 2. rdfs:subClassOf 3. rdfs:domain 4. rdfs:range 92
  • 93. rdfs:subPropertyOf :husbandOf :spouse :wifeOf :spouse ex:Vito ex:Carmela ex:Vito :husbandOf ex:Carmela . :husbandOf rdfs:subPropertyOf :spouse . ⇒ ex:Vito :spouse ex:Carmela . ex:Carmela :wifeOf ex:Vito . :wifeOf rdfs:subPropertyOf :spouse . ⇒ ex:Carmela :spouse ex:Vito . 93
  • 94. rdfs:subClassOf rdf:type :Woman rdf:type ex:Mary :Person ex:Mary rdf:type :Woman . :Woman rdfs:subClassOf :Person . ⇒ ex:Mary rdf:type :Person . 94
  • 95. rdfs:domain :motherOf ex:Carmela ex:Fredo rdf:type :Woman 95 ex:Carmela :motherOf ex:Fredo . :motherOf rdfs:domain :Woman . ⇒ ex:Carmela rdf:type :Woman .
  • 96. rdfs:range :hasSon ex:Carmela ex:Fredo rdf:type ex:Carmela :hasSon ex:Fredo . :hasSon rdfs:range :Man . ⇒ ex:Fredo rdf:type :Man . 96 :Man
  • 97. Recap RDFS What would be the rdfs:domain of the property :fatherOf? What would be the rdfs:range of the property :wifeOf? 97
  • 99. owl:equivalentProperty :parentOf :hasChild ex:Vito :hasChild :parentOf ex:Michael ex:Mary ex:Vito :parentOf ex:Michael . ex:Michael :hasChild ex:Mary . :parentOf owl:equivalentProperty :hasChild . ⇒ ex:Vito :hasChild ex:Vincent . ⇒ ex:Michael :parentOf ex:Mary . 99
  • 100. owl:inverseOf :parentOf :childOf ex:Carmela :childOf :parentOf ex:Sonny ex:Carmela :parentOf ex:Sonny . ex:Vincent :childOf ex:Sonny . :parentOf owl:inverseOf :childOf . ⇒ ex:Sonny :parentOf ex:Vincent . ⇒ ex:Sonny :childOf ex:Carmela . 100 ex:Vincent
  • 101. owl:SymmetricProperty :sibling :sibling ex:Connie ex:Fredo ex:Connie :sibling ex:Fredo . :sibling rdf:type owl:SymmetricProperty . ⇒ ex:Fredo :sibling ex:Connie . 101
  • 102. owl:TransitiveProperty :ancestorOf ex:Carmela :ancestorOf ex:Michael ex:Mary :ancestorOf ex:Carmela :ancestorOf ex:Michael . ex:Michael :ancestorOf ex:Mary . :ancestorOf rdf:type owl:TransitiveProperty . ⇒ ex:Carmela :ancestorOf ex:Mary . 102
  • 103. owl:propertyChainAxiom :brotherOf ex:Sonny 2 :fatherOf ex:Michael ex:Mary uncleOf ex:Sonny :brotherOf ex:Michael . ex:Michael :fatherOf ex:Mary . :uncleOf owl:propertyChainAxiom (:brotherOf :fatherOf) . ⇒ ex:Sonny :uncleOf ex:Mary . 103
  • 104. Recap OWL property axioms What would be the owl:inverseOf of the property :fatherOf? Name an owl:SymmetricProperty to do with family relations? Name an owl:TransitiveProperty to do with family relations? Give a owl:propertyChainAxiom for hasNiece? 104
  • 105. RDFS 1. 2. 3. 4. rdfs:subPropertyOf rdfs:subClassOf rdfs:domain rdfs:range OWL 1. Property Axioms 2. Equality a. owl:sameAs b. owl:FunctionalProperty c. owl:InverseFunctionalProperty 105
  • 107. owl:FunctionalProperty :hasFather ex:Fredo ex:Fredo :hasFather ex:Vito_old . ex:Fredo :hasFather ex:Vito_young . :hasFather rdf:type owl:FunctionalProperty . ⇒ ex:Vito_old owl:sameAs ex:Vito_young . 107 ex:Vito_young ex:Vito ex:Vito_old
  • 108. owl:InverseFunctionalProperty :fatherOf ex:Connie ex:Vito_old :fatherOf ex:Connie . ex:Vito_young :fatherOf ex:Connie . :fatherOf rdf:type owl:InverseFunctionalProperty . ⇒ ex:Vito_old owl:sameAs ex:Vito_young . 108 ex:Vito_young ex:Vito ex:Vito_old
  • 109. Recap OWL equality axioms Name an owl:FunctionalProperty to do with family relations? Name a similar owl:InverseFunctionalProperty? 109
  • 110. RDFS 1. 2. 3. 4. rdfs:subPropertyOf rdfs:subClassOf rdfs:domain rdfs:range OWL 1. 2. Property Axioms Equality 3. Class Axioms a. b. c. d. e. 110 owl:unionOf owl:intersectionOf owl:oneOf owl:allValuesFrom owl:someValuesFrom
  • 111. owl:unionOf ≡ :Person :Woman ⊔ :Man type type ex:Vincent ex:Vincent rdf:type :Man . :Person owl:equivalentClass [ owl:unionOf (:Woman :Man) ] ⇒ ex:Vincent rdf:type :Person . 111
  • 112. owl:intersectionOf (i) ⊑ :Mother :Woman rdf:type ⊓ rdf:type :Parent rdf:type ex:Carmela ex:Carmela rdf:type :Mother . :Mother rdfs:subClassOf [ owl:intersectionOf (:Woman :Parent) ] ⇒ ex:Carmela rdf:type :Woman , :Parent . 112
  • 113. owl:intersectionOf (ii) ex:Mother rdf:type ≡ ex:Woman ⊓ rdf:type ex:Parent rdf:type ex:Carmela ex:Carmela rdf:type :Woman , :Parent . :Mother owl:equivalentClass [ owl:intersectionOf (:Woman :Parent) ] ⇒ ex:Carmela rdf:type :Mother . 113
  • 114. owl:oneOf ≡{ :DonCorleone ex:Vito rdf:type , ex:Michael rdf:type , } ex:Vincent rdf:type :DonCorleone owl:equivalentClass [ owl:oneOf (ex:Vito ex:Michael ex:Vincent) ] ⇒ ex:Vito rdf:type :DonCorleone . ⇒ ex:Michael rdf:type :DonCorleone . ⇒ ex:Vincent rdf:type :DonCorleone . 114
  • 115. owl:disjointWith ex:DonCorleone ⊓ ex:LawAbiding ≡ ┴ owl:Nothing rdf:type rdf:type ex:Vincent ex:Michael rdf:type ex:DonCorleone . ex:DonCorleone owl:disjointWith ex:LawAbiding . ex:Michael rdf:type ex:LawAbiding . 115
  • 116. owl:allValuesFrom :Person ⊑∀ :hasParent . rdf:type :Person rdf:type :hasParent ex:Mary ex:Michael ex:Mary rdf:type :Person ; hasParent ex:Michael . :Person rdfs:subClassOf [ owl:allValuesFrom :Person ; owl:onProperty :hasParent ] ⇒ ex:Michael rdf:type :Person . 116
  • 117. owl:someValuesFrom (i) :Parent ≡∃ :hasChild . :Person rdf:type rdf:type :hasChild ex:Carmela ex:Michael ex:Mary :hasChild ex:Michael . ex:Michael rdf:type :Person . :Parent owl:equivalentClass [ owl:someValuesFrom :Person ; owl:onProperty :hasChild ] ⇒ ex:Mary rdf:type :Parent . 117
  • 118. owl:someValuesFrom (ii) :Parent ⊑∃ :hasChild . rdf:type rdf:type :hasChild ex:Carmela :Person ? ? ex:Mary rdf:type :Parent . :Parent rdfs:subClassOf [ owl:someValuesFrom :Person ; owl:onProperty :hasChild ] ⇒ ex:Mary :hasChild _:someone . _:someone rdf:type :Person . 118
  • 119. Recap OWL class axioms A class :Parent might be the owl:unionOf what classes? A class :OnlySon might be the owl:intersectionOf what classes? What OWL feature allows to define enumerations? An example of owl:allValuesFrom for family relations? An example of owl:someValuesFrom for the class :Uncle? 119
  • 121. …some OWL features not covered: 1. owl:hasKey 2. owl:hasValue 3. owl:cardinality(s) 4. owl:different 5. owl:AssymetricProperty 6. owl:IrreflexiveProperty 7. owl:propertyDisjointWith 8. … 121
  • 122. But what does it all mean? 122
  • 123. RDFS History Dan Brickley & R. V. Guha Pat Hayes 123 [2000] [2004]
  • 124. RDF(S) Semantics Built directly on top of RDF (Semantics) Given a mathematical model-theoretic semantics http://ex.org/#aidan … … 124
  • 125. RDF(S) Semantics: existential blank nodes Called “simple entailment” ex:aidan ex:coauthoredPaper _:bnode1 ex:title ex:coauthoredPaper “On Blank Nodes”@en _:bnode2 125 24.05.2012
  • 126. RDFS Semantics: RDFS rules / reasoning Body/Antecedent/Condition Head/Consequent IF ⇒ THEN ?c1 rdfs:subClassOf ?c2 . ?x rdf:type ?c1 . ⇒ ?x rdf:type ?c2 . ex:Tutor rdfs:subClassOf ex:Person . ex:aidan rdf:type ex:Tutor . ⇒ ex:aidan rdf:type ex:Person . … 126 24.05.2012
  • 127. OWL History Description Logics [1980’s to now] DAML (Hendler, McGuinness) [2000] OIL (Fensel, van Harmelen, McGuinness, Patel-, Frank van Harmelen) [2001] DAML+OIL [2002] OWL (W3C Rec.) OWL 2 (W3C Rec.) 127 [2004] [2008]
  • 128. OWL Semantics Much more complex language = Much more complex semantics Considers Axioms: Parent ⊑ ∃hasChild.Person Considers Triples: :Parent rdfs:subClassOf [ owl:someValuesFrom :Person ; owl:onProperty :hasChild ] Restricted so that triples correspond to axioms Decidable for OWL 2 DL (but super-exponential) 128 Unrestricted Undecidable 24.05.2012
  • 129. OWL Profiles P NP-complete OWL 2 EL OWL 2 QL OWL 2 RL RDFS* pD* 129 24.05.2012 Simple RDF RDFS ExpTime OWL Lite NExpTime 2NExpTime Undecidable OWL DL OWL 2 DL OWL Full OWL 2 Full
  • 130. THAT’S RDFS/OWL … … NEXT UP… 130 24.05.2012
  • 131. How can we query RDF? …RDB has SQL… …XML has XPath & XQuery… … …RDF has ? 131
  • 132. SPARQL! SPARQL Protocol and RDF Query Language W3C Recommendation, 2008 SPARQL 1.1 upcoming, 201? Standardised RDF query language (and supporting recommendations) Looks a little like SQL Syntax based on Turtle 132
  • 133. The anatomy of a typical SPARQL query PREFIX PREFIX PREFIX PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> rdfs: <http://www.w3.org/2000/01/rdf-schema#> foaf: <http://xmlns.com/foaf/0.1/> oo: <http://purl.org/openorg/> PREFIX DECLARATIONS SELECT ?name ?expertise FROM <http://data.southampton.ac.uk/> RESULT CLAUSE DATASET CLAUSE WHERE { ?person foaf:name ?name ; foaf:familyName ?surname . . ?person rdf:type foaf:Person . ?person foaf:title ?title . FILTER regex(?title, "^Prof") OPTIONAL { ?person oo:availableToCommentOn ?expertiseURI . ?expertiseURI rdfs:label ?expertise } } QUERY CLAUSE ORDER BY ?surname SOLUTION MODIFIERS Give me a list of names of professors in Southampton and their expertise (if available), in order of their surname 133
  • 134. The anatomy of a typical SPARQL query PREFIX PREFIX PREFIX PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> rdfs: <http://www.w3.org/2000/01/rdf-schema#> foaf: <http://xmlns.com/foaf/0.1/> oo: <http://purl.org/openorg/> PREFIX DECLARATIONS SELECT ?name ?expertise FROM <http://data.southampton.ac.uk/> RESULT CLAUSE DATASET CLAUSE WHERE { ?person foaf:name ?name ; foaf:familyName ?surname . ?person rdf:type foaf:Person . ?person foaf:title ?title . FILTER regex(?title, "^Prof") OPTIONAL { ?person oo:availableToCommentOn ?expertiseURI . ?expertiseURI rdfs:label ?expertise } } QUERY CLAUSE ORDER BY ?surname SOLUTION MODIFIERS Give me a list of names of professors in Southampton and their expertise (if available), in order of their surname 134
  • 135. Prefix Declarations PREFIX PREFIX PREFIX PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> rdfs: <http://www.w3.org/2000/01/rdf-schema#> foaf: <http://xmlns.com/foaf/0.1/> oo: <http://purl.org/openorg/> PREFIX DECLARATIONS foaf:Person ⇔ <http://xmlns.com/foaf/0.1/Person> Use http://prefix.cc/ … 135
  • 136. The anatomy of a typical SPARQL query PREFIX PREFIX PREFIX PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> rdfs: <http://www.w3.org/2000/01/rdf-schema#> foaf: <http://xmlns.com/foaf/0.1/> oo: <http://purl.org/openorg/> PREFIX DECLARATIONS SELECT ?name ?expertise FROM <http://data.southampton.ac.uk/> RESULT CLAUSE DATASET CLAUSE WHERE { ?person foaf:name ?name ; foaf:familyName ?surname . ?person rdf:type foaf:Person . ?person foaf:title ?title . FILTER regex(?title, "^Prof") OPTIONAL { ?person oo:availableToCommentOn ?expertiseURI . ?expertiseURI rdfs:label ?expertise } } QUERY CLAUSE ORDER BY ?surname SOLUTION MODIFIERS Give me a list of names of professors in Southampton and their expertise (if available), in order of their surname 136
  • 137. Result Clause SELECT ?name ?expertise RESULT CLAUSE 1. SELECT 2. CONSTRUCT (RDF) 3. ASK 4. DESCRIBE (RDF) 137
  • 138. Result Clause 1. SELECT… SELECT ?name ?expertise RESULT CLAUSE Return all tuples for the bindings of the variables ?name and ?expertise ----------------------------------------------------------| “Professor Robert Allen” | “Control engineering” | | “Professor Robert Allen” | “Biomedical engineering” | | “Prof Carl Leonetto Amos” | | | “Professor Peter Ashburn” | “Silicon technology” | | “Professor Robert Allen” | “Control engineering” | ----------------------------------------------------------- Give me a list of names of professors in Southampton and their expertise (if available), in order of their surname 138
  • 139. Result Clause 1. SELECT DISTINCT… SELECT ?name ?expertise DISTINCT unique Return all tuples for the bindings of the variables ?name and ?expertise ----------------------------------------------------------| “Professor Robert Allen” | “Control engineering” | | “Professor Robert Allen” | “Biomedical engineering” | | “Prof Carl Leonetto Amos” | | | “Professor Peter Ashburn” | “Silicon technology” | | “Professor Robert Allen” | “Control engineering” | ----------------------------------------------------------- Give me a list of names of professors in Southampton and their expertise (if available), in order of their surname 139
  • 140. Result Clause 2. CONSTRUCT… CONSTRUCT { ?person foaf:name ?name ; ex:expertise ?expertise . } RESULT CLAUSE Return RDF using bindings for the variables: ex:RAllen foaf:name “Professor Robert Allen” ; ex:expertise “Biomedical engineering” , “Control engineering” . ex:PAshburn foaf:name “Peter Ashburn ” ; ex:expertise “Silicon technology” . Give me a list of names of professors in Southampton and their expertise (if available), in order of their surname 140
  • 141. Result Clause 3. ASK… ASK … WHERE { … } Is there any results? Returns: true or false 141 RESULT CLAUSE
  • 142. Result Clause 4. DESCRIBE… DESCRIBE ?person RESULT CLAUSE … WHERE { ?person … } Returns some RDF which “describes” the given resource… No standard for what to return! Typically returns: all triples where the given resource appears as subject and/or object OR Concise Bounded Descriptions… 142
  • 143. Result Clause 4. DESCRIBE DESCRIBE ex:RAllen (DIRECT)… RESULT CLAUSE (…can give URIs directly without need for a WHERE clause.) 143
  • 144. The anatomy of a typical SPARQL query PREFIX PREFIX PREFIX PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> rdfs: <http://www.w3.org/2000/01/rdf-schema#> foaf: <http://xmlns.com/foaf/0.1/> oo: <http://purl.org/openorg/> PREFIX DECLARATIONS SELECT ?name ?expertise FROM <http://data.southampton.ac.uk/> RESULT CLAUSE DATASET CLAUSE WHERE { ?person foaf:name ?name ; foaf:familyName ?surname . ?person rdf:type foaf:Person . ?person foaf:title ?title . FILTER regex(?title, "^Prof") OPTIONAL { ?person oo:availableToCommentOn ?expertiseURI . ?expertiseURI rdfs:label ?expertise } } QUERY CLAUSE ORDER BY ?surname SOLUTION MODIFIERS Give me a list of names of professors in Southampton and their expertise (if available), in order of their surname 144
  • 145. Dataset clause (FROM/FROM NAMED) FROM <http://data.southampton.ac.uk/> DATASET CLAUSE (Briefly) Restrict the dataset against which you wish to query SPARQL stores named graphs: sets of triples which are associated with (URI) names Can match across graphs! Named graphs typically corrrespond with data provenance (i.e., documents)! Default graph typically corresponds to the merge of all graphs Many engines will typically dereference a graph if not available locally! Give me a list of names of professors in Southampton and their expertise (if available), in order of their surname 145
  • 146. The anatomy of a typical SPARQL query PREFIX PREFIX PREFIX PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> rdfs: <http://www.w3.org/2000/01/rdf-schema#> foaf: <http://xmlns.com/foaf/0.1/> oo: <http://purl.org/openorg/> PREFIX DECLARATIONS SELECT ?name ?expertise FROM <http://data.southampton.ac.uk/> RESULT CLAUSE DATASET CLAUSE WHERE { WHERE { ?person foaf:name ?name ; foaf:familyName ?surname . ?person foaf:name ?name ; foaf:familyName ?surname ?person rdf:type foaf:Person . ?person rdf:type foaf:Person ?person foaf:title ?title . FILTER regex(?title, "^Prof") ?person foaf:title ?title OPTIONAL { OPTIONAL { ?person oo:availableToCommentOn ?expertiseURI . ?person oo:availableToCommentOn ?expertiseURI rdfs:label ?expertise ?expertiseURI rdfs:label } } } QUERY CLAUSE } ORDER BY ?surname SOLUTION MODIFIERS Give me a list of names of professors in Southampton and their expertise (if available), in order of their surname 146
  • 147. Query clause (WHERE) WHERE { ?person foaf:name ?name ; foaf:familyName ?surname . ?person rdf:type foaf:Person . ?person foaf:title ?title . FILTER regex(?title, "^Prof") OPTIONAL { ?person oo:availableToCommentOn ?expertiseURI . ?expertiseURI rdfs:label ?expertise } QUERY CLAUSE } “Professor Peter Ashburn” ?person foaf:name rdf:type ex:PAshburn ?name foaf:Person ✓ foaf:title foaf:familyName oo:availableToCommentOn ?surname “Ashburn” ?title “Professor” [FILTER “^Prof”] ✓ ?expertiseURI rdfs:label ex:Silicon “Silicon technology” ?expertise Give me a list of names of professors in Southampton and their expertise (if available), in order of their surname 147
  • 148. Quick mention for UNION WHERE { … {?person oo:availableToCommentOn ?expertiseURI . } UNION {?person foaf:interest ?expertiseURI . } … } QUERY CLAUSE Represent disjunction (OR) Useful when there’s more than one property/class that represents the same information you’re interested in (heterogenity) Reasoning can also help, assuming terms are mapped (more later) 148
  • 149. The anatomy of a typical SPARQL query PREFIX PREFIX PREFIX PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> rdfs: <http://www.w3.org/2000/01/rdf-schema#> foaf: <http://xmlns.com/foaf/0.1/> oo: <http://purl.org/openorg/> PREFIX DECLARATIONS SELECT ?name ?expertise FROM NAMED <http://data.southampton.ac.uk/> RESULT CLAUSE DATASET CLAUSE WHERE { ?person foaf:name ?name ; foaf:familyName ?surname . ?person rdf:type foaf:Person . ?person foaf:title ?title . FILTER regex(?title, "^Prof") OPTIONAL { ?person oo:availableToCommentOn ?expertiseURI . ?expertiseURI rdfs:label ?expertise } } QUERY CLAUSE ORDER BY ?surname SOLUTION MODIFIERS Give me a list of names of professors in Southampton and their expertise (if available), in order of their surname 149
  • 150. Solution Modifiers ORDER BY ?surname SOLUTION MODIFIERS Order output results by surname (as you probably guessed) …also… LIMIT ORDER BY ?surname LIMIT 10 SOLUTION MODIFIERS Only return 10 results OFFSET ORDER BY ?surname LIMIT 10 OFFSET 20 SOLUTION MODIFIERS Return results 20‒30 Give me a list of names of professors in Southampton and their expertise (if available), in order of their surname 150
  • 151. The summary of a typical SPARQL query PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> Shortcuts for URIs PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX oo: <http://purl.org/openorg/> PREFIX DECLARATIONS SELECT ?name ?expertise Which results do you want? FROM <http://data.southampton.ac.uk/> Where should we look? RESULT CLAUSE DATASET CLAUSE WHERE { ?person foaf:name ?name ; foaf:familyName ?surname . ?person rdf:type foaf:Person . ?person foaf:title ?title . FILTER regex(?title, "^Prof") What are you looking for? OPTIONAL { ?person oo:availableToCommentOn ?expertiseURI . ?expertiseURI rdfs:label ?expertise } } QUERY CLAUSE ORDER BY ?surname How should results be ordered/split? SOLUTION MODIFIERS Give me a list of names of professors in Southampton and their expertise (if available), in order of their surname 151
  • 152. Trying out a typical SPARQL query PREFIX PREFIX PREFIX PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> rdfs: <http://www.w3.org/2000/01/rdf-schema#> foaf: <http://xmlns.com/foaf/0.1/> oo: <http://purl.org/openorg/> SELECT ?name ?expertise FROM <http://data.southampton.ac.uk/> WHERE { ?person foaf:name ?name ; foaf:familyName ?surname . ; foaf:familyName ?surname . ?person rdf:type foaf:Person . ?person foaf:title ?title . FILTER regex(?title, “^Prof”) OPTIONAL { ?person oo:availableToCommentOn ?expertiseURI . ?expertiseURI rdfs:label ?expertise } } ORDER BY ?surname Give me a list of names of professors in Southampton and their expertise (if available), in order of their surname 152
  • 153. SPARQL in the wild 66% of LD datasets have a SPARQL endpoint 35% offer an RDF dump See http://www.w3.org/wiki/SparqlEndpoints 153
  • 154. Highly recommend checking out: “SPARQL by example” By Cambridge Semantics Lee Feigenbaum & Eric Prud'hommeaux http://www.cambridgesemantics.com/2008/09/sparql-by-example/ 154
  • 155. SPARQL Extension Coming Soon! SPARQL 1.1. W3C Working Draft (2012) New query features: Property-chains ?s ex:father+ ?o . Arithemetic BIND ( ?weight / (?height * ?height) AS ?bmi) Aggregates SELECT AVG(?age) as ?avgAge Sub-queries, exists/not-exists, bindings, etc. SPARQL 1.1 Federation SPARQL 1.1 Update SPARQL 1.1 Entailment 155 24.05.2012
  • 156. AND MORE BESIDES … 156 24.05.2012
  • 157. SO, WHAT IS THE SEMANTIC WEB? 157 24.05.2012