/
Semantic Web  In Depth Resource Description Framework Semantic Web  In Depth Resource Description Framework

Semantic Web In Depth Resource Description Framework - PowerPoint Presentation

faustina-dinatale
faustina-dinatale . @faustina-dinatale
Follow
380 views
Uploaded On 2018-03-10

Semantic Web In Depth Resource Description Framework - PPT Presentation

Dr Nicholas Gibbins nmgecssotonacuk 20132014 What is the Resource Description Framework A standard data model for the Semantic Web A knowledge representation language A family of data formats and notations ID: 645325

org rdf www http rdf org http www description xml xmlns syntax elements purl creator john mailto 1999 version

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Semantic Web In Depth Resource Descript..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Semantic Web In Depth

Resource Description Framework

Dr

Nicholas Gibbins –

nmg@ecs.soton.ac.uk

2013-2014Slide2

What is the Resource Description Framework?

A standard data model for the Semantic WebA knowledge representation languageA family of data formats and notationsSlide3

A standard data model

Recall that the Semantic Web uses subject-predicate-object triples as its standard representation:

This data model is independent of the syntax used to express (serialise) those triples.

RDF Semantics

Pat Hayes

edited

by

subject

predicate

objectSlide4

XML + Namespaces

URI

Unicode

Signature

Encryption

Rules

Proof

Trust

RDF

RDF Schema

OWL

SPARQL

(queries)

User Interface and Applications

A knowledge

r

epresentation

l

anguage

RDF is used as the foundation for the other knowledge representation and ontology languages on the Semantic WebSlide5

A family of data formats

RDF/XML is the normative (standard) syntaxSupported by almost all toolsRDF/N3 (Notation3) is also widely used

Non-XML syntax

Variable tool support

Primarily designed to be easy to write on whiteboards

Other XML and non-XML syntaxes exist:

Turtle,

NTriples, TriX

etcSlide6

RDF RequirementsSlide7

RDF requirements

A means for identifying objects and vocabulary terms (URIs)A means for distinguishing between terms from different vocabularies (XML namespaces and qualified names)

A means for

serialising

triples (XML)Slide8

URIs and URIrefs

Standard identifiers for the Semantic WebUniform

Resource Identifiers are defined by RFC2396

http://

example.org

/

urn:isbn:0198537379mailto:nmg@ecs.soton.ac.ukURI references (

URIrefs) are URIs with optional fragment identifiershttp://

example.org/index.html#Introductionhttp://www.w3.org/1999/02/22-rdf-syntax-ns#typeSlide9

XML namespaces and qualified names

RDF uses XML namespaces to refer to elements of domain vocabulariesNamespaces used to abbreviate

URIrefs

to qualified names (

QNames

)

QNames cannot be used in attribute values in RDF/XML

Use the URIref instead

xmlns:rdf

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

namespace URI prefix

namespace abbreviation

http://www.w3.org/1999/02/22-rdf-syntax-ns#type

rdf:type

becomesSlide10

RDF/XMLSlide11

RDF/XML

RDF/XML is an XML-based format for expressing a collection of RDF triples (an RDF graph)

Can be parsed by an XML parser to give an XML data model (Document Object Model, XML

Infoset

)

Can be parsed by an RDF parser to give an RDF data model

(an RDF graph)Slide12

The anatomy of an RDF/XML file

<?xml version=“1.0”?>

XML declaration

<?xml version=“1.0”?>

<rdf:RDF

</rdf:RDF>

RDF document element

<?xml version=“1.0”?>

<rdf:RDF

xmlns:rdf=“

http://www.w3.org/1999/02/22-rdf-syntax-ns#”

</rdf:RDF>

RDF namespace declaration

<?xml version=“1.0”?>

<rdf:RDF xmlns:rdf=“

http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:dc=“

http://purl.org/dc/elements/1.1/

”>

</rdf:RDF>

Other namespace declarations

<?xml version=“1.0”?>

<rdf:RDF xmlns:rdf=“

http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:dc=“

http://purl.org/dc/elements/1.1/

”>

<rdf:Description rdf:about=“http://www.sciam.com/”>

</rdf:Description>

</rdf:RDF>

<?xml version=“1.0”?>

<rdf:RDF xmlns:rdf=“

http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:dc=“

http://purl.org/dc/elements/1.1/

”>

<rdf:Description rdf:about=“http://www.sciam.com/”>

</rdf:Description>

</rdf:RDF>

Triple subject

<?xml version=“1.0”?>

<rdf:RDF xmlns:rdf=“

http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:dc=“

http://purl.org/dc/elements/1.1/

”>

<rdf:Description rdf:about=“http://www.sciam.com/”>

<dc:title> </dc:title>

</rdf:Description>

</rdf:RDF>

Triple predicate

<?xml version=“1.0”?>

<rdf:RDF xmlns:rdf=“

http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:dc=“

http://purl.org/dc/elements/1.1/

”>

<rdf:Description rdf:about=“http://www.sciam.com/”>

<dc:title>

Scientific

American

</dc:title>

</rdf:Description>

</rdf:RDF>

Triple object

http://purl.org/dc/elements/1.1/title

http://www.sciam.com/

Scientific AmericanSlide13

The anatomy of an RDF/XML file

Resource-valued predicates use the rdf:resource attribute

<?xml version=“1.0”?>

<rdf:RDF xmlns:rdf=“

http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:dc=“

http://purl.org/dc/elements/1.1/

”>

<rdf:Description rdf:about=“http://www.example.org/”>

<dc:creator rdf:resource=“mailto:john@example.org”/>

</rdf:Description></rdf:RDF>

http://purl.org/dc/elements/1.1/creator

http://www.example.org/

mailto:john@example.orgSlide14

The anatomy of an RDF/XML file

We can have multiple rdf:Description elements within an rdf:RDF element

<?xml version=“1.0”?>

<rdf:RDF xmlns:rdf=“

http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:dc=“

http://purl.org/dc/elements/1.1/

”>

<rdf:Description rdf:about=“http://www.example.org/”>

<dc:title>Example Inc. Homepage</dc:title>

</rdf:Description> <rdf:Description rdf:about=“http://www.example.org/”>

<dc:creator rdf:resource=“mailto:john@example.org”/> </rdf:Description></rdf:RDF>

http://purl.org/dc/elements/1.1/creator

http://www.example.org/

mailto:john@example.org

http://purl.org/dc/elements/1.1/title

Example Inc. HomepageSlide15

The anatomy of an RDF/XML file

We can have multiple predicates within an rdf:Description element

<?xml version=“1.0”?>

<rdf:RDF xmlns:rdf=“

http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:dc=“

http://purl.org/dc/elements/1.1/

”>

<rdf:Description rdf:about=“http://www.example.org/”>

<dc:title>Example Inc. Homepage</dc:title>

<dc:creator rdf:resource=“mailto:john@example.org”/> </rdf:Description>

</rdf:RDF>

http://purl.org/dc/elements/1.1/creator

http://www.example.org/

mailto:john@example.org

http://purl.org/dc/elements/1.1/title

Example Inc. HomepageSlide16

Class membership

An object’s membership of a class is indicated using the rdf:type property

<?xml version=“1.0”?>

<rdf:RDF xmlns:rdf=“

http://www.w3.org/1999/02/22-rdf-syntax-ns#”>

<rdf:Description rdf:about=“http://www.example.org/”>

<rdf:type rdf:resource=“http://example.org/ontology#Website”/>

</rdf:Description>

</rdf:RDF>

rdf:type

http://www.example.org/

ex:WebsiteSlide17

Abbreviated forms – class membership

Replace rdf:Description with QName of class

<?xml version=“1.0”?>

<rdf:RDF xmlns:rdf=“

http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:ex=“http://example.org/ontology#”>

<

ex:Website

rdf:about=“http://www.example.org/”/>

</rdf:RDF>

rdf:type

http://www.example.org/

ex:WebsiteSlide18

Abbreviated forms – literal predicates

Replace predicate element with attribute of same name on containing element

<?xml version=“1.0”?>

<rdf:RDF xmlns:rdf=“

http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:dc=“

http://purl.org/dc/elements/1.1/

”>

<rdf:Description rdf:about=“http://www.example.org/”

dc:title=“Example Inc. Homepage”

>

</rdf:Description></rdf:RDF>Slide19

RDF/XML striped syntax

Consider the following graph:

http://purl.org/dc/elements/1.1/creator

http://www.example.org/

mailto:john@example.org

http://example.org/ontology#name

John SmithSlide20

RDF/XML striped syntax

Graph could be serialised using two rdf:Description elements

<?xml version=“1.0”?>

<rdf:RDF xmlns:rdf=“

http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:dc=“

http://purl.org/dc/elements/1.1/

xmlns:ex=“http://example.org/ontology#”>

<rdf:Description rdf:about=“http://www.example.org/”>

<dc:creator rdf:resource=“mailto:john@example.org”/>

</rdf:Description>

<rdf:Description rdf:about=“mailto:john@example.org”> <ex:name>John Smith</ex:name> </rdf:Description>

</rdf:RDF>Slide21

RDF/XML striped syntax

Alternatively, the second statement could be inserted within the predicate element of the first

<?xml version=“1.0”?>

<rdf:RDF xmlns:rdf=“

http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:dc=“

http://purl.org/dc/elements/1.1/

xmlns:ex=“http://example.org/ontology#”>

<rdf:Description rdf:about=“http://www.example.org/”>

<dc:creator>

<rdf:Description rdf:about=“mailto:john@example.org”>

<ex:name>John Smith</ex:name> </rdf:Description> </dc:creator>

</rdf:Description></rdf:RDF>Slide22

RDF/XML striped syntax

The syntax is striped because property and class elements are nested alternately

<?xml version=“1.0”?>

<rdf:RDF xmlns:rdf=“

http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:dc=“

http://purl.org/dc/elements/1.1/

xmlns:ex=“http://example.org/ontology#”>

<rdf:Description rdf:about=“http://www.example.org/”>

<dc:creator> <rdf:Description rdf:about=“mailto:john@example.org”>

<ex:name>John Smith</ex:name> </rdf:Description>

</dc:creator>

</rdf:Description></rdf:RDF>

<?xml version=“1.0”?>

<rdf:RDF xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:dc=“

http://purl.org/dc/elements/1.1/

xmlns:ex=“http://example.org/ontology#”>

<rdf:Description rdf:about=“http://www.example.org/”>

<dc:creator>

<rdf:Description rdf:about=“mailto:john@example.org”>

<ex:name>John Smith</ex:name>

</rdf:Description>

</dc:creator>

</rdf:Description>

</rdf:RDF>Slide23

Common RDF/XML idioms

XML entities are defined for the XML namespace URI prefixes

Used to abbreviate long URIrefs in attribute values (because QNames can’t be used there)

<?xml version=“1.0”?>

<!DOCTYPE rdf:RDF [

<!ENTITY rdf ‘

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

’>

<!ENTITY dc ‘

http://purl.org/dc/elements/1.1/

’>

<!ENTITY ex ‘http://example.org/ontology#’>]>

<rdf:RDF xmlns:rdf=“&rdf;” xmlns:dc=“&dc;”

xmlns:ex=“&ex;”> Slide24

Common RDF idioms

Assertions about the null URIref are about the RDF file itself

<?xml version=“1.0”?>

<rdf:RDF xmlns:rdf=“

http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:dc=“

http://purl.org/dc/elements/1.1/

”>

<rdf:Description

rdf:about=“”

>

<dc:creator rdf:resource=“mailto:nmg@ecs.soton.ac.uk”/> </rdf:Description>

</rdf:RDF>Slide25

Blank nodes (bNodes)

Sometimes we have resources which we do not wish to identify with a URIThese are blank nodes or anonymous resources

http://purl.org/dc/elements/1.1/creator

http://www.example.org/

http://example.org/ontology#name

John SmithSlide26

Blank nodes (bNodes)

The striped syntax simplifies the RDF/XML serialisation – remove the rdf:about attribute

<?xml version=“1.0”?>

<rdf:RDF xmlns:rdf=“

http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:dc=“

http://purl.org/dc/elements/1.1/

xmlns:ex=“http://example.org/ontology#”>

<rdf:Description rdf:about=“http://www.example.org/”>

<dc:creator>

<rdf:Description> <ex:name>John Smith</ex:name>

</rdf:Description> </dc:creator> </rdf:Description>

</rdf:RDF>Slide27

Blank nodes (bNodes)

The striped syntax is not sufficient to represent all graphs containing blank nodes unambiguously

dc:creator

http://www.example.org/

ex:name

John Smith

http://test.example.org/

dc:creatorSlide28

Blank nodes (bNodes)

<?xml version=“1.0”?>

<rdf:RDF xmlns:rdf=“

http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:dc=“

http://purl.org/dc/elements/1.1/

xmlns:ex=“http://example.org/ontology#”>

<rdf:Description rdf:about=“http://www.example.org/”>

<dc:creator>

<rdf:Description> <ex:name>John Smith</ex:name>

</rdf:Description> </dc:creator> </rdf:Description>

<rdf:Description rdf:about=“http://test.example.org/”> <dc:creator>

<rdf:Description> <ex:name>John Smith</ex:name> </rdf:Description>

</dc:creator> </rdf:Description>

</rdf:RDF>Slide29

Blank nodes and node IDs

Ambiguities resulting from blank nodes are resolved by using node IDsNode IDs are identifiers which are local to a given serialisation of an RDF graph

Node IDs may not be referred to from outside the scope of the defining graph

Node IDs are not guaranteed to remain unchanged when an RDF file is parsed and serialised

The identifier strings may change

but

The graph structure will remain unchangedSlide30

Blank nodes and node IDs

<?xml version=“1.0”?>

<rdf:RDF xmlns:rdf=“

http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:dc=“

http://purl.org/dc/elements/1.1/

xmlns:ex=“http://example.org/ontology#”>

<rdf:Description rdf:about=“http://www.example.org/”>

<dc:creator

rdf:nodeID=“foo23”

/> </rdf:Description>

<rdf:Description rdf:about=“http://test.example.org/”> <dc:creator rdf:nodeID=“foo23”

/> </rdf:Description>

<rdf:Description rdf:nodeID=“foo23”> <ex:name>John Smith</ex:name>

</rdf:Description></rdf:RDF>Slide31

rdf:about versus rdf:ID

So far, we have used the rdf:about attribute to specify the subjects of triplesrdf:about takes a URIref as a value

rdf:ID can be used to declare a new URIref within a document

Within the file http://www.example.org/ontology

declares a new URIref http://www.example.org/ontology#JohnSmith

Analogous to the name and id attributes in HTML

Relative to xml:base attribute

<rdf:Description rdf:ID=“JohnSmith”> Slide32

Datatypes

Literal values presented so far are plain and do not have a typeMany applications need to be able to distinguish between different typed literalsRDF uses XML Schema datatypes

<rdf:Description rdf:about=“http://www.example.org/”>

<dc:date

rdf:datatype=“

http://www.w3.org/2001/XMLSchema#date

>2003-05-23</dc:date>

</rdf:Description>Slide33

Multilingual support

In addition to typed literals, RDF also provides support for language annotations on literalsRDF uses XML’s multilingual support

Languages identified by ISO369 two letter codes

<?xml version=“1.0”?>

<rdf:RDF xmlns:rdf=“

http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:dc=“

http://purl.org/dc/elements/1.1/

”>

<rdf:Description rdf:about=“http://www.example.org/foreword”>

<dc:title

xml:lang=“en”

>Foreword</dc:title> <dc:title xml:lang=“fr”

>Avant-propos</dc:title> </rdf:Description>

</rdf:RDF>Slide34

Containers

RDF provides means for describing groups of objectsMembership in the group is denoted by the ordinal properties rdf:_1, rdf:_2, etc

rdf:type

http://www.example.org/

mailto:bill@example.org

ex:members

mailto:sally@example.org

mailto:john@example.org

rdf:Bag

rdf:_1

rdf:_2

rdf:_3Slide35

Containers

Three types of container are available in RDFrdf:Bag – an unordered group, possibly with duplicatesrdf:Seq – an ordered group

rdf:Alt – a group of alternatives (translations, media types, etc)Slide36

Containers

Special syntax for expressing collectionsrdf:li is a convenience element which is replaced with ordinal elements by RDF parsers

<?xml version=“1.0”?>

<rdf:RDF xmlns:rdf=“

http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:ex=“http://example.org/ontology#”>

<rdf:Description rdf:about=“http://www.example.org/”>

<ex:members>

<rdf:Bag>

<rdf:li rdf:resource=“mailto:john@example.org”/>

<rdf:li rdf:resource=“mailto:bill@example.org”/>

<rdf:li rdf:resource=“mailto:sally@example.org”/> </rdf:Bag> </ex:members>

</rdf:Description></rdf:RDF>Slide37

Collections

Collections are a different way of expressing ordered groups in RDFContainers are mutable – a third party could add new members to a containerCollections are immutable – cannot be altered without rendering the collection ill-formed

Similar to cons/car/cdr lists in LispSlide38

Collections

rdf:type

http://www.example.org/

mailto:bill@example.org

ex:members

mailto:sally@example.org

mailto:john@example.org

rdf:List

rdf:first

rdf:rest

rdf:nil

rdf:rest

rdf:rest

rdf:first

rdf:firstSlide39

Collections

As before, special syntax for expressing collectionsrdf:parseType indicates special parse rules for an element

<?xml version=“1.0”?>

<rdf:RDF xmlns:rdf=“

http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:ex=“http://example.org/ontology#”>

<rdf:Description rdf:about=“http://www.example.org/”>

<ex:members

rdf:parseType=“Collection”

>

<rdf:Description rdf:about=“mailto:john@example.org”/>

<rdf:Description rdf:about=“mailto:bill@example.org”/>

<rdf:Description rdf:about=“mailto:sally@example.org”/> </ex:members> </rdf:Description>

</rdf:RDF>Slide40

The RDF/N3 familySlide41

The anatomy of an NTriples file

<http://www.sciam.com/> <http://purl.org/dc/elements/1.1/title> “Scientific American” .

http://purl.org/dc/elements/1.1/title

http://www.sciam.com/

Scientific AmericanSlide42

The anatomy of an Turtle/N3 file

<http://www.example.org

>

<http://

purl.org

/dc/elements/1.1/creator> <

mailto:john@example.org> ;<http://

purl.org/dc/elements/1.1/title> “Example Inc. Homepage” .

“;” allows grouping of triples with common subject

http://purl.org/dc/elements/1.1/creator

http://www.example.org/

mailto:john@example.org

http://purl.org/dc/elements/1.1/title

Example Inc. HomepageSlide43

Common RDF/N3 idioms

@prefix used to introduce QName abbreviations to N3 and Turtle documents:@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

@prefix dc: <http://purl.org/dc/elements/1.1/> .

@prefix ex: <http://example.org/ontology#> .

<http://www.example.org> dc:creator <mailto:john@example.org> ;

rdf:type ex:Website .Slide44

bNodes in N3 and Turtle

<http://www.example.org/> dc:creator [ ex:name “John Smith” ] .Or with nodeIDs:

<http://www.example.org/> dc:creator _:foo23 .

<http://test.example.org/> dc:creator _:foo23 .

_:foo23 ex:name “John Smith” .Slide45

Further ReadingSlide46

RDF Status

Original version published in 1999Working group (RDF Core) formed in April 2001Revised version published in early 2004

New RDF working group chartered in 2011 (runs until 2013)

New standard syntaxes (Turtle, JSON)

Multiple graphs and graph storesSlide47

RDF references

RDF homepage at W3Chttp://www.w3.org/RDF/

RDF Core

Working Group homepage

http://www.w3.org/2001/

sw

/RDFCore/

RDF Working Group homepagehttp://www.w3

.org/2011/rdf-wg/RDF/N3 Primerhttp://www.w3.org/2000/10/swap/Primer.htmlXML Schema Part 2:

Datatypeshttp://www.w3.org/TR/xmlschema-2/