100
Introduction RDF Semantics Querying RDF RDF Data Model and Query Languages Sergio Tessaris April 21, 2006 Sergio Tessaris RDF Data Model and Query Languages

RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

  • Upload
    others

  • View
    56

  • Download
    0

Embed Size (px)

Citation preview

Page 1: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF Data Model and Query Languages

Sergio Tessaris

April 21, 2006

Sergio Tessaris RDF Data Model and Query Languages

Page 2: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

FOAF example

Sergio Tessaris RDF Data Model and Query Languages

Page 3: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF Site Summary (RSS) 1.0

Sergio Tessaris RDF Data Model and Query Languages

Page 4: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF Site Summary (RSS) 1.0

Sergio Tessaris RDF Data Model and Query Languages

Page 5: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

1 IntroductionBuilding BlocksRDF Abstract SyntaxRDF Vocabulary

2 RDF SemanticsRDF model theoryEntailmentCasting RDF into FOL

3 Querying RDFIntroductionGraph PatternsQuery languagesSPARQL

Sergio Tessaris RDF Data Model and Query Languages

Page 6: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

Basic Concepts

RDF: language for representing information about resources(e.g. Metadata)

information about things identified on the Web

identifiable doesn’t mean retrievablee.g. goods from an eShop, prices, availability, etc.

information processed by applications, not human beings

Semantic Web

Sergio Tessaris RDF Data Model and Query Languages

Page 7: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

Basic Concepts

RDF: language for representing information about resources(e.g. Metadata)

information about things identified on the Web

identifiable doesn’t mean retrievablee.g. goods from an eShop, prices, availability, etc.

information processed by applications, not human beings

Semantic Web

Sergio Tessaris RDF Data Model and Query Languages

Page 8: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

Basic Concepts

RDF: language for representing information about resources(e.g. Metadata)

information about things identified on the Web

identifiable doesn’t mean retrievablee.g. goods from an eShop, prices, availability, etc.

information processed by applications, not human beings

Semantic Web

Sergio Tessaris RDF Data Model and Query Languages

Page 9: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

Digression: Semantic Web

The Semantic Web is an extension of the current web inwhich information is given well-defined meaning, betterenabling computers and people to work in cooperation.Tim Berners-Lee, James Hendler, Ora Lassila, TheSemantic Web, Scientific American, May 2001

Sergio Tessaris RDF Data Model and Query Languages

Page 10: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

Design Goals

having a simple data model

having formal semantics and provable inference

using an extensible URI-based vocabulary

using an XML-based syntax

supporting use of XML schema datatypes

allowing anyone to make statements about any resource

Sergio Tessaris RDF Data Model and Query Languages

Page 11: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

RDF Statements

RDF is about making statements about resources

E.g. Sergio Tessaris is the author of the web pagehttp://www.inf.unibz.it/∼tessaris/index.html

This can be stated as a property of the web pagehttp://www.inf.unibz.it/∼tessaris/index.html hasan author whose value is "Sergio Tessaris"

RDF statements

subject: e.g. URLhttp://www.inf.unibz.it/∼tessaris/index.htmlpredicate: e.g. property authorobject: e.g. string "Sergio Tessaris"

Sergio Tessaris RDF Data Model and Query Languages

Page 12: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

Identifying Resources

RDF identifiers: Uniform Resource Identifiers (URI)

URIs, URLs, and URNs

URL identifies resources via a representation of theirprimary access mechanism

URN URIs that are required to remain globally uniqueand persistent

Example

ftp://ftp.is.co.za/rfc/rfc1808.txthttp://www.math.uio.no/faq/compression-faq/part1.htmlnews:comp.infosystems.www.servers.unixtelnet://melvyl.ucop.edu/mailto:[email protected]

Sergio Tessaris RDF Data Model and Query Languages

Page 13: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

Literals

RDF allows the use of values

stringsnumbersbooleans

Literals are basically UNICODE strings

plain just strings (w optional language tag)typed have associated datatype URI

RDF literals and typing

literals are not URIs

e.g. ”http://www.unicode.org” and http://www.unicode.orgare different

Sergio Tessaris RDF Data Model and Query Languages

Page 14: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

Triples and Graphs

RDF triples basic element of RDF model

subjectpredicateobject

triple: two nodes (subject, object) connected by a labellededge (predicate)

set of triples: a labelled directed graph

Sergio Tessaris RDF Data Model and Query Languages

Page 15: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

Triples and Graphs

RDF triples basic element of RDF model

subjectpredicateobject

triple: two nodes (subject, object) connected by a labellededge (predicate)

set of triples: a labelled directed graph

Sergio Tessaris RDF Data Model and Query Languages

Page 16: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

Triples and Graphs

RDF triples basic element of RDF model

subjectpredicateobject

triple: two nodes (subject, object) connected by a labellededge (predicate)

set of triples: a labelled directed graph

Sergio Tessaris RDF Data Model and Query Languages

Page 17: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

Blank Nodes

RDF graphs may contain additional nodes

arbitrary set of blank nodes (bnodes)

infinitedisjoint from URIs and literals

given two blank nodes it is possible to determine whether ornot they are the same

intuition: a bnode represents the existence of something

Sergio Tessaris RDF Data Model and Query Languages

Page 18: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

Blank Nodes

RDF graphs may contain additional nodes

arbitrary set of blank nodes (bnodes)

infinitedisjoint from URIs and literals

given two blank nodes it is possible to determine whether ornot they are the same

intuition: a bnode represents the existence of something

Sergio Tessaris RDF Data Model and Query Languages

Page 19: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

Scope of RDF Terms

URIs and Literals have a global scope

two equal URIs (Literals) always represent the same object

equal means that the two unicode strings are the samethere are not contextual to the graph

bnodes are contextual to the graph in which they appear

. . . more to came on the role of bnodes

Sergio Tessaris RDF Data Model and Query Languages

Page 20: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

Scope of RDF Terms

URIs and Literals have a global scope

two equal URIs (Literals) always represent the same object

equal means that the two unicode strings are the samethere are not contextual to the graph

bnodes are contextual to the graph in which they appear

. . . more to came on the role of bnodes

Sergio Tessaris RDF Data Model and Query Languages

Page 21: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

RDF Graphs

RDF triple

subject: RDF URI reference or a bnodepredicate: RDF URI referenceobject: literal, RDF URI reference or a bnode

RDF graph: set of RDF triples

nodes of an RDF graph are subjects and objects in the triples

Sergio Tessaris RDF Data Model and Query Languages

Page 22: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

RDF Graphs

RDF triple

subject: RDF URI reference or a bnodepredicate: RDF URI referenceobject: literal, RDF URI reference or a bnode

RDF graph: set of RDF triples

nodes of an RDF graph are subjects and objects in the triples

Sergio Tessaris RDF Data Model and Query Languages

Page 23: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

RDF Graphs (cont.)

no literals as subject

predicates are just URIs

URIs are used for both resources (nodes) and predicates(edges)

literals can be non well formed datatypes

no complete information about any resource

Sergio Tessaris RDF Data Model and Query Languages

Page 24: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

On Bnodes

bnodes are different from other RDF terms

starting from the syntax

Graph equivalence

Definition

G , G ′ are equivalent if there is a bijection M between the nodes ofthe two graphs, s.t.:

1 M maps bnodes to bnodes.

2 M(lit) = lit for literals lit in G .

3 M(uri) = uri for URI in G .

4 〈s, p, o〉 in G iff the triple 〈M(s), p,M(o)〉 in G ′.

I.e. a sort of graph isomorphism

Sergio Tessaris RDF Data Model and Query Languages

Page 25: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

On Bnodes

bnodes are different from other RDF terms

starting from the syntax

Graph equivalence

Definition

G , G ′ are equivalent if there is a bijection M between the nodes ofthe two graphs, s.t.:

1 M maps bnodes to bnodes.

2 M(lit) = lit for literals lit in G .

3 M(uri) = uri for URI in G .

4 〈s, p, o〉 in G iff the triple 〈M(s), p,M(o)〉 in G ′.

I.e. a sort of graph isomorphism

Sergio Tessaris RDF Data Model and Query Languages

Page 26: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

On Bnodes

bnodes are different from other RDF terms

starting from the syntax

Graph equivalence

Definition

G , G ′ are equivalent if there is a bijection M between the nodes ofthe two graphs, s.t.:

1 M maps bnodes to bnodes.

2 M(lit) = lit for literals lit in G .

3 M(uri) = uri for URI in G .

4 〈s, p, o〉 in G iff the triple 〈M(s), p,M(o)〉 in G ′.

I.e. a sort of graph isomorphism

Sergio Tessaris RDF Data Model and Query Languages

Page 27: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

Syntax vs. Semantics

’still talking about (abstract) syntax

nothing has been said on the actual semantics of RDF

introduced with an RDF vocabularygiven by means of a Model Theory

how do you write/exchange RDF?

in particular bnodes and literals

several possibilities

N-TriplesRDF/XML (normative)Turtle notation (subset of N3)

Sergio Tessaris RDF Data Model and Query Languages

Page 28: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

N-Triples

documents contain a set of assertionssubject predicate object .

URI references written out completely:<http://example.org/resource30>

Literals as strings:

plain "chat"@frtyped "<a></a>"^^<http://www.w3.org/2000/01/

rdf-schema#XMLLiteral>

Bnodes::anon

Sergio Tessaris RDF Data Model and Query Languages

Page 29: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

N-Triples Example

<http://www.inf.unibz.it/~tessaris/myfoaf.xml#me><http://xmlns.com/foaf/0.1/title> "Dr" .

<http://www.inf.unibz.it/~tessaris/myfoaf.xml#me><http://www.w3.org/1999/02/22-rdf-syntax-ns#type><http://xmlns.com/foaf/0.1/Person> .

<http://www.inf.unibz.it/~tessaris/myfoaf.xml#me><http://xmlns.com/foaf/0.1/workplaceHomepage> <http://www.unibz.it/inf> .

<http://www.inf.unibz.it/~tessaris/myfoaf.xml#me><http://xmlns.com/foaf/0.1/homepage> <http://www.inf.unibz.it/~tessaris> .

<http://www.inf.unibz.it/~tessaris/myfoaf.xml#me><http://xmlns.com/foaf/0.1/mbox_sha1sum>"758128cdae69fd0fd9e880921d9f4b25259edbf5" .

<http://www.inf.unibz.it/~tessaris/myfoaf.xml#me><http://xmlns.com/foaf/0.1/name> "Sergio Tessaris" .

<http://www.inf.unibz.it/~tessaris/myfoaf.xml#me><http://xmlns.com/foaf/0.1/family_name> "Tessaris" .

<http://www.inf.unibz.it/~tessaris/myfoaf.xml#me><http://xmlns.com/foaf/0.1/givenname> "Sergio" .

<http://www.inf.unibz.it/~tessaris/myfoaf.xml#me><http://xmlns.com/foaf/0.1/phone> <tel:+39-0471-016-125> .

Sergio Tessaris RDF Data Model and Query Languages

Page 30: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

RDF/XML

Normative XML serialisation for RDF documents

Use namespace abbreviations: e.g.

<rdf:RDF

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:myfoaf="http://www.inf.unibz.it/~tessaris/myfoaf.xml">

Encode paths of the RDF graph

There are several ways of encoding the same graph!

Sergio Tessaris RDF Data Model and Query Languages

Page 31: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

RDF/XML

document root is rdf:RDF

rdf:Description to represent nodes

predicates use the corresponding URI

<rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar">

<dc:title>RDF/XML Syntax Specification (Revised)</dc:title>

</rdf:Description>

bnodes can be omitted

Sergio Tessaris RDF Data Model and Query Languages

Page 32: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

RDF/XML Example

<rdf:RDFxmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"xmlns:foaf="http://xmlns.com/foaf/0.1/">

<foaf:Person rdf:ID="me"><foaf:name>Sergio Tessaris</foaf:name><foaf:title>Dr</foaf:title><foaf:givenname>Sergio</foaf:givenname><foaf:family_name>Tessaris</foaf:family_name><foaf:mbox_sha1sum>

758128cdae69fd0fd9e880921d9f4b25259edbf5</foaf:mbox_sha1sum><foaf:homepage

rdf:resource="http://www.inf.unibz.it/~tessaris"/><foaf:phone rdf:resource="tel:+39-0471-016-125"/><foaf:workplaceHomepage

rdf:resource="http://www.unibz.it/inf"/></foaf:Person>

</rdf:RDF>

Sergio Tessaris RDF Data Model and Query Languages

Page 33: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

Turtle Notation

Extension of N-Triples

Compact representation of graphs

I will use this notation, explaining it on the way

Sergio Tessaris RDF Data Model and Query Languages

Page 34: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

Turtle Notation

Extension of N-Triples

Compact representation of graphs

I will use this notation, explaining it on the way

Sergio Tessaris RDF Data Model and Query Languages

Page 35: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

Turtle Example

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .@prefix foaf: <http://xmlns.com/foaf/0.1/> .@prefix : <http://www.inf.unibz.it/~tessaris/myfoaf.xm#> .

:me rdf:type foaf:Person ;foaf:family_name "Tessaris" ;foaf:givenname "Sergio" ;foaf:homepage

<http://www.inf.unibz.it/~tessaris> ;foaf:mbox_sha1sum

"758128cdae69fd0fd9e880921d9f4b25259edbf5" ;foaf:name "Sergio Tessaris" ;foaf:phone

<tel:+39-0471-016-125> ;foaf:title "Dr" ;foaf:workplaceHomepage

<http://www.unibz.it/inf> .

Sergio Tessaris RDF Data Model and Query Languages

Page 36: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

RDF Data Model

up till now we have

abstract syntax for graphsa way to exchange these graphs

where’s the semantics?

how to express “rich” semantic constructs?

everything is going to be in RDF itself

URIs are global: RDF prescribes the meaning of same URIs

Sergio Tessaris RDF Data Model and Query Languages

Page 37: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

RDF Data Model

up till now we have

abstract syntax for graphsa way to exchange these graphs

where’s the semantics?

how to express “rich” semantic constructs?

everything is going to be in RDF itself

URIs are global: RDF prescribes the meaning of same URIs

Sergio Tessaris RDF Data Model and Query Languages

Page 38: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

RDF Data Model

up till now we have

abstract syntax for graphsa way to exchange these graphs

where’s the semantics?

how to express “rich” semantic constructs?

everything is going to be in RDF itself

URIs are global: RDF prescribes the meaning of same URIs

Sergio Tessaris RDF Data Model and Query Languages

Page 39: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

RDF, RDF Schema, and more

RDF: basic vocabulary, e.g.

class membership

RDFS: extends the basic vocabulary, e.g.

subclass relationdomain and range for predicates

OWL family: “extends” to a full fledged ontology language

we wont discuss OWL

Sergio Tessaris RDF Data Model and Query Languages

Page 40: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

RDF, RDF Schema, and more

RDF: basic vocabulary, e.g.

class membership

RDFS: extends the basic vocabulary, e.g.

subclass relationdomain and range for predicates

OWL family: “extends” to a full fledged ontology language

we wont discuss OWL

Sergio Tessaris RDF Data Model and Query Languages

Page 41: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

RDF Vocabulary

Classes

rdf:Propertyrdf:XMLLiteral

Properties

rdf:type

Reification

rdf:Statementrdf:subject, rdf:predicate, rdf:object

Collections and Containers

rdf:Bag, rdf:Seq, rdf:Altrdf:List, rdf:first, rdf:rest, rdf:nilrdf: 1, rdf: 2, rdf: 3,. . . etc.

Sergio Tessaris RDF Data Model and Query Languages

Page 42: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

Building BlocksRDF Abstract SyntaxRDF Vocabulary

RDFS Vocabulary

Classes

rdfs:Resourcerdfs:Classrdfs:Literalrdfs:Datatype

Properties

rdfs:range, rdfs:domainrdfs:subClassOfrdfs:subPropertyOfrdfs:label, rdfs:comment

Sergio Tessaris RDF Data Model and Query Languages

Page 43: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

Meaning and Semantics

the meaning of an RDF document is context dependent

mostly not machine accessible

we are interested in the semantics of RDF(S) as a formallanguage

implications of the asserted statementsentailment as the basic tool (query answering)inference rules to decide entailment between two graphs

semantics provided by means of a model theory (normative)

over the abstract syntax already described

monotonic

no closed-world assumptionsno defaults

Sergio Tessaris RDF Data Model and Query Languages

Page 44: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

RDF Interpretations

Consider a set of terms T (URIs and Literals in a graph)

Definition (Simple Interpretation)

a simple interpretation I over T is composed by

non-empty set ∆ of resources (domain of I)

set P (properties of I)PL ⊆ ∆, which contains all the plain literals in T

mapping V from URI references in T into ∆ ∪ Pmapping L from typed literals in T into ∆

mapping E from P into the powerset of ∆×∆

Sergio Tessaris RDF Data Model and Query Languages

Page 45: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

RDF Interpretations

“double level” interpretation

the key is in Eliterals are in the domain

no bnodes in T

Sergio Tessaris RDF Data Model and Query Languages

Page 46: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

Triples Satisfiability

interpretation I(t) of a term t ∈ TI(t) = t if t is a plain literalI(t) = L(t) if t is a typed literalI(t) = V(t) if t is a URI reference

a triple s p o . is satisfied by I iff

〈I(s), I(o)〉 ∈ E(I(p))

Bnodes

B(G ) is the set of bnodes in GA a mapping from B(G ) to ∆IA is the extension of I with A (i.e. IA(b) = A(b))

Sergio Tessaris RDF Data Model and Query Languages

Page 47: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

Triples Satisfiability

interpretation I(t) of a term t ∈ TI(t) = t if t is a plain literalI(t) = L(t) if t is a typed literalI(t) = V(t) if t is a URI reference

a triple s p o . is satisfied by I iff

〈I(s), I(o)〉 ∈ E(I(p))

Bnodes

B(G ) is the set of bnodes in GA a mapping from B(G ) to ∆IA is the extension of I with A (i.e. IA(b) = A(b))

Sergio Tessaris RDF Data Model and Query Languages

Page 48: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

Triples Satisfiability

interpretation I(t) of a term t ∈ TI(t) = t if t is a plain literalI(t) = L(t) if t is a typed literalI(t) = V(t) if t is a URI reference

a triple s p o . is satisfied by I iff

〈I(s), I(o)〉 ∈ E(I(p))

Bnodes

B(G ) is the set of bnodes in GA a mapping from B(G ) to ∆IA is the extension of I with A (i.e. IA(b) = A(b))

Sergio Tessaris RDF Data Model and Query Languages

Page 49: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

Models of RDF Graphs

Ground graphs (without bnodes)

Definition (Ground Satisfiability)

I is a model of a ground RDF graph G iffsatisfies all the triples in G

Graphs with bnodes

Definition (Satisfiability)

I is a model of an RDF graph G iffthere is a mapping A from B(G ) to ∆ s.t.IA satisfies all the triples in G

Sergio Tessaris RDF Data Model and Query Languages

Page 50: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

Models of RDF Graphs

Ground graphs (without bnodes)

Definition (Ground Satisfiability)

I is a model of a ground RDF graph G iffsatisfies all the triples in G

Graphs with bnodes

Definition (Satisfiability)

I is a model of an RDF graph G iffthere is a mapping A from B(G ) to ∆ s.t.IA satisfies all the triples in G

Sergio Tessaris RDF Data Model and Query Languages

Page 51: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

Simple Entailment

Entailment is defined in terms of models

G entails G ′ iff every model of G is a model of G ′

bnodes are “existential variables”

I model of G if exists A s.t. IA satisfies all the triples in GI model of G ′ if exists A′ s.t. IA′ satisfies all the triples in G

What about RDF and RDFS?

Sergio Tessaris RDF Data Model and Query Languages

Page 52: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

Simple Entailment

Entailment is defined in terms of models

G entails G ′ iff every model of G is a model of G ′

bnodes are “existential variables”

I model of G if exists A s.t. IA satisfies all the triples in GI model of G ′ if exists A′ s.t. IA′ satisfies all the triples in G

What about RDF and RDFS?

Sergio Tessaris RDF Data Model and Query Languages

Page 53: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

Simple Entailment

Entailment is defined in terms of models

G entails G ′ iff every model of G is a model of G ′

bnodes are “existential variables”

I model of G if exists A s.t. IA satisfies all the triples in GI model of G ′ if exists A′ s.t. IA′ satisfies all the triples in G

What about RDF and RDFS?

Sergio Tessaris RDF Data Model and Query Languages

Page 54: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

RDF(S) Vocabulary

additional semantic conditions over the vocabularye.g. rdf:type

restrict the set of modelsderived from the intended meaning (RDF data model)e.g. rdf:type is a rdf:Property

Semantic conditionse.g. x ∈ P iff 〈x ,V(rdf:Property)〉 ∈ E(V(rdf:type))

Axiomatic triplese.g. rdf:type rdf:type rdf:Property .

RDF-MT doesn’t cover reification, containers and collections

Sergio Tessaris RDF Data Model and Query Languages

Page 55: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

RDFS Semantic Conditions

RDFS introduces classes and their propertiesstill based on rdf:type

macro C(·) for unary predicates

x ∈ C(y) iff 〈x , y〉 ∈ E(V(rdf:type))

Semantic conditions

Subclass: if 〈x , y〉 ∈ E(V(rdfs:subClassOf)) thenC(x) ⊆ C(y)E (V (rdfs:subClassOf)) is transitive and reflexiveDomain: if 〈x , y〉 ∈ E(V(rdfs:range)) then 〈u, v〉 ∈ E(x)implies v ∈ C(y)

something’s wrong here?

Sergio Tessaris RDF Data Model and Query Languages

Page 56: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

RDFS Semantic Conditions

RDFS introduces classes and their propertiesstill based on rdf:type

macro C(·) for unary predicates

x ∈ C(y) iff 〈x , y〉 ∈ E(V(rdf:type))

Semantic conditions

Subclass: if 〈x , y〉 ∈ E(V(rdfs:subClassOf)) thenC(x) ⊆ C(y)E (V (rdfs:subClassOf)) is transitive and reflexiveDomain: if 〈x , y〉 ∈ E(V(rdfs:range)) then 〈u, v〉 ∈ E(x)implies v ∈ C(y)

something’s wrong here?

Sergio Tessaris RDF Data Model and Query Languages

Page 57: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

RDFS Semantic Conditions

RDFS introduces classes and their propertiesstill based on rdf:type

macro C(·) for unary predicates

x ∈ C(y) iff 〈x , y〉 ∈ E(V(rdf:type))

Semantic conditions

Subclass: if 〈x , y〉 ∈ E(V(rdfs:subClassOf)) thenC(x) ⊆ C(y)E (V (rdfs:subClassOf)) is transitive and reflexive

Domain: if 〈x , y〉 ∈ E(V(rdfs:range)) then 〈u, v〉 ∈ E(x)implies v ∈ C(y)

something’s wrong here?

Sergio Tessaris RDF Data Model and Query Languages

Page 58: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

RDFS Semantic Conditions

RDFS introduces classes and their propertiesstill based on rdf:type

macro C(·) for unary predicates

x ∈ C(y) iff 〈x , y〉 ∈ E(V(rdf:type))

Semantic conditions

Subclass: if 〈x , y〉 ∈ E(V(rdfs:subClassOf)) thenC(x) ⊆ C(y)E (V (rdfs:subClassOf)) is transitive and reflexiveDomain: if 〈x , y〉 ∈ E(V(rdfs:range)) then 〈u, v〉 ∈ E(x)implies v ∈ C(y)

something’s wrong here?

Sergio Tessaris RDF Data Model and Query Languages

Page 59: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

RDFS Semantic Conditions

RDFS introduces classes and their propertiesstill based on rdf:type

macro C(·) for unary predicates

x ∈ C(y) iff 〈x , y〉 ∈ E(V(rdf:type))

Semantic conditions

Subclass: if 〈x , y〉 ∈ E(V(rdfs:subClassOf)) thenC(x) ⊆ C(y)E (V (rdfs:subClassOf)) is transitive and reflexiveDomain: if 〈x , y〉 ∈ E(V(rdfs:range)) then 〈u, v〉 ∈ E(x)implies v ∈ C(y)

something’s wrong here?

Sergio Tessaris RDF Data Model and Query Languages

Page 60: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

Extensional Semantic Conditions

One direction (only if) is missing!

Semantic conditions revised

Subclass: 〈x , y〉 ∈ E(V(rdfs:subClassOf)) iff C(x) ⊆ C(y)Domain: 〈x , y〉 ∈ E(V(rdfs:range)) iff 〈u, v〉 ∈ E(x) impliesv ∈ C(y)

:p1 rdfs:range :c1 .:p2 rdfs:range :c2 .:p1 rdfs:subPropertyOf :p2 .

implies? :c1 rdfs:subClassOf :c2 .

only with extensional semantic conditions (not normative)

Sergio Tessaris RDF Data Model and Query Languages

Page 61: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

Extensional Semantic Conditions

One direction (only if) is missing!

Semantic conditions revised

Subclass: 〈x , y〉 ∈ E(V(rdfs:subClassOf)) iff C(x) ⊆ C(y)Domain: 〈x , y〉 ∈ E(V(rdfs:range)) iff 〈u, v〉 ∈ E(x) impliesv ∈ C(y)

:p1 rdfs:range :c1 .:p2 rdfs:range :c2 .:p1 rdfs:subPropertyOf :p2 .

implies? :c1 rdfs:subClassOf :c2 .

only with extensional semantic conditions (not normative)

Sergio Tessaris RDF Data Model and Query Languages

Page 62: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

Extensional Semantic Conditions

One direction (only if) is missing!

Semantic conditions revised

Subclass: 〈x , y〉 ∈ E(V(rdfs:subClassOf)) iff C(x) ⊆ C(y)Domain: 〈x , y〉 ∈ E(V(rdfs:range)) iff 〈u, v〉 ∈ E(x) impliesv ∈ C(y)

:p1 rdfs:range :c1 .:p2 rdfs:range :c2 .:p1 rdfs:subPropertyOf :p2 .

implies? :c1 rdfs:subClassOf :c2 .

only with extensional semantic conditions (not normative)

Sergio Tessaris RDF Data Model and Query Languages

Page 63: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

Extensional Semantic Conditions

One direction (only if) is missing!

Semantic conditions revised

Subclass: 〈x , y〉 ∈ E(V(rdfs:subClassOf)) iff C(x) ⊆ C(y)Domain: 〈x , y〉 ∈ E(V(rdfs:range)) iff 〈u, v〉 ∈ E(x) impliesv ∈ C(y)

:p1 rdfs:range :c1 .:p2 rdfs:range :c2 .:p1 rdfs:subPropertyOf :p2 .

implies? :c1 rdfs:subClassOf :c2 .

only with extensional semantic conditions (not normative)

Sergio Tessaris RDF Data Model and Query Languages

Page 64: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

RDFS Semantic Conditions

x ∈ C(y) iff 〈x , y〉 ∈ E(V(rdf:type))

〈x , y〉 ∈ E(V(rdfs:subClassOf)) iff C(x) ⊆ C(y)

〈x , y〉 ∈ E(V(rdfs:subPropertyOf)) iff E(x) ⊆ E(y)

〈x , y〉 ∈ E(V(rdfs:range)) iff 〈u, v〉 ∈ E(x) → v ∈ C(y)

〈x , y〉 ∈ E(V(rdfs:domain)) iff 〈u, v〉 ∈ E(x) → u ∈ C(y)

if x ∈ C(V(rdfs:Class)) then C(x) ⊆ C(V(rdfs:Resource))

if x ∈ C(V(rdfs:Datatype)) then C(x) ⊆ C(V(rdfs:Literal))

Sergio Tessaris RDF Data Model and Query Languages

Page 65: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

RDF(S) Literals

Plain literals (RDFS)

PL = C(V(rdfs:Literal))

affects logical implication:myself foaf:name "Sergio Tessaris" .entails:myself foaf:name :b1 .:b2 rdf:type rdfs:Literal .

Note

"Sergio Tessaris" rdf:type rdfs:Literal .

is not a valid RDF(S) triple!

Sergio Tessaris RDF Data Model and Query Languages

Page 66: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

RDF(S) Literals

Plain literals (RDFS)

PL = C(V(rdfs:Literal))

affects logical implication:myself foaf:name "Sergio Tessaris" .entails:myself foaf:name :b1 .:b2 rdf:type rdfs:Literal .

Note

"Sergio Tessaris" rdf:type rdfs:Literal .

is not a valid RDF(S) triple!

Sergio Tessaris RDF Data Model and Query Languages

Page 67: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

RDF(S) Literals

Plain literals (RDFS)

PL = C(V(rdfs:Literal))

affects logical implication:myself foaf:name "Sergio Tessaris" .entails:myself foaf:name :b1 .:b2 rdf:type rdfs:Literal .

Note

"Sergio Tessaris" rdf:type rdfs:Literal .

is not a valid RDF(S) triple!

Sergio Tessaris RDF Data Model and Query Languages

Page 68: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

Entailment Rules

a set of inference rules to capture RDF(S)-entailment

rules complete an RDF graphadd a triple if there is some pattern

rules application terminatesin a polynomial number of steps

set of rules for RDF and RDFS (informative)

Sergio Tessaris RDF Data Model and Query Languages

Page 69: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

Entailment Rules

Lemma (Entailment Lemma)

G rdf(s)-entails E iff exists G ′ derived from G with axiomatictriples using the entailment rules s.t. G ′ simply entails E .

simple entailment is enough

effective procedure (needs simple entailment)

Sergio Tessaris RDF Data Model and Query Languages

Page 70: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

Grounding RDF Graphs

Grounding a graph G

Def completed: added axiomatic triples and applied entailmentrules

Def Herbrand model: each bnode replaced by an URIs or Literal

Def Canonical model (G ): bnodes replaced with fresh URIs

Sergio Tessaris RDF Data Model and Query Languages

Page 71: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

Graph entailment

Theorem

RDF graphs entailment: G entails E iff some herbrand model of Eis a subgraph of the canonical model of G

Connects our definition to W3C normative semantics

Complexity of entailment1 NP-complete in the size of the RDF graphs2 PTIME in the size of the entailing graph G3 PTIME if E is acyclic or ground

Sergio Tessaris RDF Data Model and Query Languages

Page 72: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

RDFS and FOL

RDF has an high order flavour

URIs can play different roles〈ex:o, rdf:type, ex:o〉

Introduce a different model theoretic semantics for RDF

“Compatible” with FOLExtensibility to more expressive languages (e.g. OWL)Use standard technologies (e.g. databases or theorem provers)

Sergio Tessaris RDF Data Model and Query Languages

Page 73: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

FO Compatible Model Theory

key idea: polymorphic interpretation of URIs (contextual PC)

abstract domain ∆uIO ∈ ∆: individual + function mapping valid literals todatavaluesuIC ⊆ ∆: classuIR ⊆ ∆×∆: binary relation

E.g.〈ex:o, rdf:type, ex:o〉

leads toex:oIO ∈ ex:oIC

Sergio Tessaris RDF Data Model and Query Languages

Page 74: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

RDF model theoryEntailmentCasting RDF into FOL

Classical Logic Interoperability

Def non-high order graph: no blank nodes as objects of rdf:type

Def The classical logic translation FO(G ) of a non-high ordergraph G

URIs and literals are constantsblank nodes are existentially quantified variablesbinary atomic formulas in correspondence with triples in G〈u1, rdf:type, u2〉 triples introduce u2(u1) atomic formulae

Theorem

Given an RDF graph G and a non-high order graph E, G entails Eiff FO(G ) |=C FO(E )

Sergio Tessaris RDF Data Model and Query Languages

Page 75: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

Querying RDF documents

How do we get informations out of an RDF document?

RDF graphs can be stored in a variety of means

RDF/XML documentsdatabasesdedicated RDF service providers (e.g. RSS 1.0)generated on the fly; e.g. from web pages (Gleaning ResourceDescriptions from Dialects of Languages [GRDDL])

Often retrieving the whole graph is not feasible/desirable

too biglot of uninteresting partsdynamic

Solution: a (standard) protocol for querying RDF graphs

Sergio Tessaris RDF Data Model and Query Languages

Page 76: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

Entailment and Querying

entailment and query answering are strictly related

an answer to a query is a set of entailed facts

tuples representing variable bindingscomplex structures like RDF graphs or XML documentsit depends on the query language

RDF aims at big volumes of data

look out for efficiency (i.e. low data complexity)

two main factors

representational language (RDF)query language

Sergio Tessaris RDF Data Model and Query Languages

Page 77: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

Querying RDF

RDF(S) is a simple language

entailment can be checked on a single canonical modelsee entailment rules and lemma

more freedom on the query language

truly graph based query language (e.g. a la XQuery)WilburQLsimple language based on graph entailment

Sergio Tessaris RDF Data Model and Query Languages

Page 78: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

Querying RDF

RDF(S) is a simple language

entailment can be checked on a single canonical modelsee entailment rules and lemma

more freedom on the query language

truly graph based query language (e.g. a la XQuery)WilburQLsimple language based on graph entailment

Sergio Tessaris RDF Data Model and Query Languages

Page 79: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

Graph Patterns

Dataset: graph to be queried

define a new kind of graphs: RDF graph patterns

RDF graphs with variables

?x foaf:nick "Alice" .

patterns may contain bnodes

:b foaf:nick "Alice" .

Query Answering

Find all the assignments for the variables that make the pattern alogical consequence of the Dataset

Sergio Tessaris RDF Data Model and Query Languages

Page 80: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

Subgraph Matching

can we query in an efficient way?

entailment lemma: simple entailment is subgraph matching

subgraph matching is conjunctive query answering

Dataset can be stored in a relational database

the answer is yes!

nothing more than conjunctive queries using a single ternarypredicate (e.g. triple(x , foaf:nick, "Alice"))

e.g. Oracle supports RDF and an extension to SQLmost SPARQL implementations rely on a database back-end

Sergio Tessaris RDF Data Model and Query Languages

Page 81: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

Subgraph Matching

can we query in an efficient way?

entailment lemma: simple entailment is subgraph matching

subgraph matching is conjunctive query answering

Dataset can be stored in a relational database

the answer is yes!

nothing more than conjunctive queries using a single ternarypredicate (e.g. triple(x , foaf:nick, "Alice"))

e.g. Oracle supports RDF and an extension to SQLmost SPARQL implementations rely on a database back-end

Sergio Tessaris RDF Data Model and Query Languages

Page 82: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

Subgraph Matching

can we query in an efficient way?

entailment lemma: simple entailment is subgraph matching

subgraph matching is conjunctive query answering

Dataset can be stored in a relational database

the answer is yes!

nothing more than conjunctive queries using a single ternarypredicate (e.g. triple(x , foaf:nick, "Alice"))

e.g. Oracle supports RDF and an extension to SQLmost SPARQL implementations rely on a database back-end

Sergio Tessaris RDF Data Model and Query Languages

Page 83: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

Subgraph Matching

can we query in an efficient way?

entailment lemma: simple entailment is subgraph matching

subgraph matching is conjunctive query answering

Dataset can be stored in a relational database

the answer is yes!

nothing more than conjunctive queries using a single ternarypredicate (e.g. triple(x , foaf:nick, "Alice"))

e.g. Oracle supports RDF and an extension to SQLmost SPARQL implementations rely on a database back-end

Sergio Tessaris RDF Data Model and Query Languages

Page 84: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

Subgraph Matching

can we query in an efficient way?

entailment lemma: simple entailment is subgraph matching

subgraph matching is conjunctive query answering

Dataset can be stored in a relational database

the answer is yes!

nothing more than conjunctive queries using a single ternarypredicate (e.g. triple(x , foaf:nick, "Alice"))

e.g. Oracle supports RDF and an extension to SQLmost SPARQL implementations rely on a database back-end

Sergio Tessaris RDF Data Model and Query Languages

Page 85: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

Subgraph Matching

can we query in an efficient way?

entailment lemma: simple entailment is subgraph matching

subgraph matching is conjunctive query answering

Dataset can be stored in a relational database

the answer is yes!

nothing more than conjunctive queries using a single ternarypredicate (e.g. triple(x , foaf:nick, "Alice"))

e.g. Oracle supports RDF and an extension to SQLmost SPARQL implementations rely on a database back-end

Sergio Tessaris RDF Data Model and Query Languages

Page 86: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

ORACLE SQL Extension

SELECT t.r reviewer, e.emailid emailidFROM TABLE(RDF_MATCH(

’(?r ReviewerOf ?c)(?r rdf:type Faculty)’,

RDFModels(’reviewers’),NULL, NULL)) t, employees e

WHERE t.r = e.name;

Sergio Tessaris RDF Data Model and Query Languages

Page 87: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

SPARQL

query language for RDF becoming a W3C recommendation

based on Graph Patterns

patterns “extract” a set of variable bindings (tuples)

results from different graph patterns can be combined usingan algebra

union of answersetsleft outer joinfiltering based on XQuery operatorsoptionally, an RDF graph can be returned (using a template)

Sergio Tessaris RDF Data Model and Query Languages

Page 88: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

SPARQL Example

BASE <http://example.org/>PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>PREFIX foaf: <http://xmlns.com/foaf/0.1/>PREFIX ex: <properties/1.0#>SELECT DISTINCT ?person ?name ?ageFROM <http://rdf.example.org/people.rdf>WHERE { ?person a foaf:Person ;

foaf:name ?name.OPTIONAL { ?person ex:age ?age } .FILTER ! REGEX(?name, "Bob")

}LIMIT 3 ORDER BY ASC[?name]

Sergio Tessaris RDF Data Model and Query Languages

Page 89: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

SPARQL Semantics

Semantics for pattern matching: entailment regime

kind of entailment: simple, RDF, RDFS, . . .

Answer set is a set of mappings from variables in Q to termsoccurring in G

Given an entailment |=E , a query pattern Q, an RDF graphG , then Q E -matches graph G with answer S if:

1 Q ′ graph equivalent to Q (isomorphic to Q)2 G ∪ S(Q ′) well-formed graph3 G |=E (G ∪ S(Q ′))

Backward compatible with subgraph homomorphism

Sergio Tessaris RDF Data Model and Query Languages

Page 90: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

SPARQL Semantics

Semantics for pattern matching: entailment regime

kind of entailment: simple, RDF, RDFS, . . .

Answer set is a set of mappings from variables in Q to termsoccurring in G

Given an entailment |=E , a query pattern Q, an RDF graphG , then Q E -matches graph G with answer S if:

1 Q ′ graph equivalent to Q (isomorphic to Q)

2 G ∪ S(Q ′) well-formed graph3 G |=E (G ∪ S(Q ′))

Backward compatible with subgraph homomorphism

Sergio Tessaris RDF Data Model and Query Languages

Page 91: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

SPARQL Semantics

Semantics for pattern matching: entailment regime

kind of entailment: simple, RDF, RDFS, . . .

Answer set is a set of mappings from variables in Q to termsoccurring in G

Given an entailment |=E , a query pattern Q, an RDF graphG , then Q E -matches graph G with answer S if:

1 Q ′ graph equivalent to Q (isomorphic to Q)2 G ∪ S(Q ′) well-formed graph

3 G |=E (G ∪ S(Q ′))

Backward compatible with subgraph homomorphism

Sergio Tessaris RDF Data Model and Query Languages

Page 92: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

SPARQL Semantics

Semantics for pattern matching: entailment regime

kind of entailment: simple, RDF, RDFS, . . .

Answer set is a set of mappings from variables in Q to termsoccurring in G

Given an entailment |=E , a query pattern Q, an RDF graphG , then Q E -matches graph G with answer S if:

1 Q ′ graph equivalent to Q (isomorphic to Q)2 G ∪ S(Q ′) well-formed graph3 G |=E (G ∪ S(Q ′))

Backward compatible with subgraph homomorphism

Sergio Tessaris RDF Data Model and Query Languages

Page 93: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

SPARQL Semantics

Semantics for pattern matching: entailment regime

kind of entailment: simple, RDF, RDFS, . . .

Answer set is a set of mappings from variables in Q to termsoccurring in G

Given an entailment |=E , a query pattern Q, an RDF graphG , then Q E -matches graph G with answer S if:

1 Q ′ graph equivalent to Q (isomorphic to Q)2 G ∪ S(Q ′) well-formed graph3 G |=E (G ∪ S(Q ′))

Backward compatible with subgraph homomorphism

Sergio Tessaris RDF Data Model and Query Languages

Page 94: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

BNodes in Query Answers

Where’s the problem? why not G |=E S(Q ′)

bnodes in answer sets

graph::myself foaf:homepage "http://www.inf.unibz.it/"

query::b foaf:homepage ?x

answers:[ ?x/"http://www.inf.unibz.it/" ],[ ?x/ :myself]

Sergio Tessaris RDF Data Model and Query Languages

Page 95: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

BNodes in Query Answers

Where’s the problem? why not G |=E S(Q ′)

bnodes in answer sets

graph::myself foaf:homepage "http://www.inf.unibz.it/"

query::b foaf:homepage ?x

answers:[ ?x/"http://www.inf.unibz.it/" ],[ ?x/ :myself]

Sergio Tessaris RDF Data Model and Query Languages

Page 96: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

BNodes in Query Answers

Where’s the problem? why not G |=E S(Q ′)

bnodes in answer sets

graph::myself foaf:homepage "http://www.inf.unibz.it/"

query::b foaf:homepage ?x

answers:[ ?x/"http://www.inf.unibz.it/" ],[ ?x/ :myself]

Sergio Tessaris RDF Data Model and Query Languages

Page 97: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

BNodes and Literals

which bnodes in answers?graph :myself foaf:name "Sergio Tessaris" .query ?x rdf:type rdfs:Literalanswer ∅

querying precompleted graphgraph :myself foaf:name "Sergio Tessaris" .

:b rdf:type rdfs:Literalanswer {[ ?x/ :b ]}

in both cases :w rdf:type rdfs:Literal is a logicalconsequence

Sergio Tessaris RDF Data Model and Query Languages

Page 98: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

BNodes and Literals

which bnodes in answers?graph :myself foaf:name "Sergio Tessaris" .query ?x rdf:type rdfs:Literalanswer ∅

querying precompleted graphgraph :myself foaf:name "Sergio Tessaris" .

:b rdf:type rdfs:Literalanswer {[ ?x/ :b ]}

in both cases :w rdf:type rdfs:Literal is a logicalconsequence

Sergio Tessaris RDF Data Model and Query Languages

Page 99: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

BNodes and Literals

which bnodes in answers?graph :myself foaf:name "Sergio Tessaris" .query ?x rdf:type rdfs:Literalanswer ∅

querying precompleted graphgraph :myself foaf:name "Sergio Tessaris" .

:b rdf:type rdfs:Literalanswer {[ ?x/ :b ]}

in both cases :w rdf:type rdfs:Literal is a logicalconsequence

Sergio Tessaris RDF Data Model and Query Languages

Page 100: RDF Data Model and Query Languagestessaris/docs/RDF-query.pdf · Introduction RDF Semantics Querying RDF Building Blocks RDF Abstract Syntax RDF Vocabulary Basic Concepts RDF: language

IntroductionRDF SemanticsQuerying RDF

IntroductionGraph PatternsQuery languagesSPARQL

Conclusions

RDF has a precise (model theoretic) semantics

Several drawbacks, but it’s a standardwe have to deal with it!

Strange semantics but relatively easy to deal with (up toRDFS)

Extensions (e.g. OWL) require a more careful rethinking ofthe whole framework

Keeping backward compatibilityInteroperability via SPARQLHigher order style semantics (cfg HiLog)

Sergio Tessaris RDF Data Model and Query Languages