Introduction to RDF

23
Introduction to the RDF Data Model Sources: Ian Davis (Talis), Prof. Praveen Rao (UMKC), http://rdfabout.com/ 1

Transcript of Introduction to RDF

Introduction to the

RDF Data ModelSources:

Ian Davis (Talis), Prof. Praveen Rao (UMKC),

http://rdfabout.com/

1

Introduction• RDF stands for Resource Description Framework

• Is a data model (like XML)• W3C spec: http://www.w3.org/RDF/

• 1st spec in 1999, current standard from 2004• Companies developing RDF storage solutions

• AllegroGraph, Virtuoso, BigOWLIM, Garlik 4store/5store, Mulgara, etc.

• Companies managing data using RDF model• BBC, Google, Yahoo!, Best Buy, Newsweek, Pfizer,

etc.• http://data.nytimes.com/home/about.html

• To allow anyone to say anything about anything2

The Relational Model

3

RDF Data Model•RDF represents data as (s,p,o) triples

• s means subject, p means predicate or property, o means object

• Can represent any assertion• An assertion may or may not be a fact

• Together, triples form a directed, labeled graph

4

Example

5

Example•Relationship between entities/resources

6

Global Naming•URIs (!= URLs) provide the ability to identify things globally and uniquely

•RDF names things/resources with URIs•Can name infinite number of things using URIs

• Can use the fragment identifier ‘#’

•Create different URIs for different things•If two users refer to the same URI, then they are talking about the same thing

7

RDF Graphs•Can have named things, literals (text or numeric values), named relations/properties, unnamed things…

8

RDF Graphs•Subjects can be URIs or unnamed (a.k.a blank nodes)

•Predicates are URIs•Objects can be URIs, literals, or unnamed

9

Merging RDF Graphs•Graphs from different sources can be merged

•Nodes with the same URI are considered identical

•Blank nodes can be kept separate•Any RDF graph can be merged with any other RDF graph

•Any number of RDF graphs can be merged10

Example (1/2)

11

Example (2/2)

12

RDF vs. RDBMS•Relational (RDBMS) model• Separate databases with own schemas• Table row: assertion that relation is true for values in row

• SELECT query: filter on assertions for given conditions

• A relation is true (row exists) or false

•RDF model• (Semantic) Web: a single giant graph database

• s, p, o identified uniquely with URIs across the web

• A relation is true (triple exists) or is unknown

•RDF more like OO model than RDBMS13

RDF vs. RDBMS examplefoaf:name (predicate/property)

subject object_:personA “John”_:personB “Jane”_:personC “Fred”

14

RDF triples expressed as binary relations in RDBMS

RDF vs XML•Not another XML format•XML means

• Angle-brackets-slashes notation (think HTML)• Data model: tree (DAG) with different nodes (elements, attributes)

•RDF means• Notation: RDF/XML, Turtle, N-triples etc.• Data model: directed graph, uses URIs

15

RDF Formats•All are plain-text serialization formats•RDF/XML: XML notation•Notation3 (N3): superset of TTL, beyond RDF•Turtle (TTL): subset of N3, used only for RDF•N-Triples (NT), N-Quads (NQ): subset of TTL and N3• Simpler/minimal• Easier to parse/generate

16

Turtle•Terse RDF Triple Language (TTL)•Triples are terminated with a full stop

•URIs are enclosed in angle brackets (< and >)

•Literals are enclosed by double quotes

•<http://example.com/thing> <http://example.com/relation> “Hello World" .

•Use @PREFIX to shorten URIs• @PREFIX ex: <http://example.com/> .• ex:thing ex:relation “Hello World" .

17

Turtle: Same Subject

18

@PREFIX ex: <http://example.com/> .ex:thing ex:relation "Some Text" ; ex:otherrelation ex:otherthing .

@PREFIX ex: <http://example.com/> . ex:thing ex:relation "Some Text" . ex:thing ex:otherrelation ex:otherthing .

Turtle: Same Subject-Predicate

19

@PREFIX ex: <http://example.com/> . ex:thing ex:relation "Some Text" . ex:thing ex:relation ex:otherthing .

@PREFIX ex: <http://example.com/> . ex:thing ex:relation "Some Text" ,

ex:otherthing .

Turtle: Blank Node

•Use _: followed by a label•‘a’ is the label – valid only within that particular RDF document

•If _a: appears in a different document, it would refer to a different node

20

@PREFIX ex: <http://example.com/> . ex:thing ex:relation _:a . _:a ex:property "foo" . _:a ex:property "bar” .

Turtle: Literals•Literals can have a language

•Literals can have a datatype

•But not both!21

@PREFIX ex: <http://example.com/> . ex:thing ex:relation "Hello"@en . ex:thing ex:relation "Bonjour"@fr .

@PREFIX ex: <http://example.com/> . ex:thing ex:relation "49"^^<http://www.w3.org/2001/XMLSchema#int> .

Vendors exampleVendor 1:vendor1:productX dc:title "Cool-O-Matic" .vendor1:productX retail:price "$50.75" .vendor1:productX vendor1:partno "TTK583" .vendor1:productY dc:title "Fluffertron" .vendor1:productY retail:price "$26.50" .vendor1:productY vendor1:partno "AAL132" .

Vendor 2:vendor2:product1 dc:title "Can Closer" .vendor2:product2 dc:title "Dust Unbuster" .

Reviewer 1:vendor1:productX dc:description "This product is good buy!" .

Reviewer 2:vendor2:product2 dc:description "Who needs something to unbust dust? A dust buster would be a better idea, and I wish they posted the price." .vendor2:product2 review:rating review:Excellent .

22

Links

•Government (US, UK), Wikipedia, World Bank, U.S. Census, U.S. SEC, NYTimes, etc.• http://www.w3.org/wiki/DataSetRDFDumps

• http://data.nytimes.com/

• http://data.gov.uk/

•http://librdf.org/parse•http://www.rdfabout.com/demo/validator/

23