Short introduction to RDF model based on the EDM sounds profile
Introduction to RDF Data Model
-
Upload
cesar-augusto-nogueira -
Category
Technology
-
view
773 -
download
4
description
Transcript of Introduction to RDF Data Model
1
Introduction to the RDF Data Model
Sources:Ian Davis (Talis),
Prof. Praveen Rao (UMKC),http://rdfabout.com/
2
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 anything
3
The Relational Model
4
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
5
Example
6
Example• Relationship between entities/resources
7
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
8
RDF Graphs• Can have named things, literals (text or
numeric values), named relations/properties, unnamed things…
9
RDF Graphs• Subjects can be URIs or unnamed (a.k.a blank nodes)
• Predicates are URIs• Objects can be URIs, literals, or
unnamed
10
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 merged
11
Example (1/2)
12
Example (2/2)
13
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 RDBMS
14
RDF vs. RDBMS examplefoaf:name (predicate/property)
subject object_:personA “John”_:personB “Jane”_:personC “Fred”
RDF triples expressed as binary relations in RDBMS
15
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
16
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
17
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" .
18
Turtle: Same Subject
@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 .
19
Turtle: Same Subject-Predicate@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 .
20
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
@PREFIX ex: <http://example.com/> . ex:thing ex:relation _:a . _:a ex:property "foo" . _:a ex:property "bar” .
21
Turtle: Literals• Literals can have a language
• Literals can have a datatype
• But not both!
@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> .
22
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 .
23
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/