Upload
richard-cyganiak
View
5.847
Download
1
Tags:
Embed Size (px)
DESCRIPTION
The RDF Working Group at W3C has been busy with an update to the RDF standards, and this work is now nearing its end. Here I summarise what's new, what's been controversial, and also give a very brief intro to the RDF data model.
Citation preview
WHAT'S NEW IN RDF 1.1?Richard Cyganiak — DERI Friday Talk, 26 July 2013
World Wide Web Consortium (W3C)
• Standards body responsible for the Web• DERI is a member• What W3C can do for you:
Member submissions– Community Groups– Work with experts, network, see how the sausage
is made
Today
• RDF — A quick overview• What's new in RDF 1.1?– JSON-LD
• The controversies and stuff that didn't make it
RDF — A quick intro
Why RDF?
• A data model for the Web• Can represent data from other data models• Easy to integrate data from multiple sources• Graphs, not tables or trees
How it works
How it works
How it works
How it works
How it works
Foundation for a family of standards
• SPARQL: Querying RDF data• RDF Schema: Documenting the meaning of RDF data• OWL: Formalizing the meaning of RDF data• RDF/XML: Writing RDF data in XML• RDFa: Embed RDF data in HTML• R2RML: Mapping relational data to RDF• GRDDL: Mapping XML data to RDF• DC, Org, FOAF, SIOC, DCAT, VoID, …:
Describe particular domains as RDF data
What's new in RDF 1.1?
RDF 1.1
• First update since 2004• RDF-WG started in 2011, expected to end
2013• Chartered to do:– Maintenance– Fixing some well-known issues– "Paving the cowpaths"
• Nothing new in RDF Schema and RDF/XML
RDF datasets
A.k.a Named Graphs, Quads
http://svn.foaf-project.org/foaftown/2009/layers/visuals/layercake2.jpg
RDF Datasets
• Adopted from SPARQL — "Named Graphs"• Two data structures:– RDF graph– RDF dataset
• Multiple RDF graphs, each named with a URI• A.k.a “quads”• Unnamed “default graph”– can be used for metadata
• Applications: integration, provenance, versioning, …
Datatypes
• xsd:duration, xsd:dayTimeDuration, xsd:yearMonthDuration• xsd:dateTimeStamp
– Unlike xsd:dateTime, the time zone is not optional• rdf:langString
– "Hello"@en now has a datatype• rdf:HTML
– "E=mc<sup>2</sup>"^^rdf:HTML– Problem: No language tag!
• rdf:XMLLiteral– No longer needs to be canonical XML
• xsd:string– "xxx" and "xxx"^^xsd:string are now 100% the same thing
Syntaxes
• Turtle– Now SPARQL compatible
• TriG– Turtle with named graphs
• N-Triples– WG Note
• N-Quads– WG Note
• JSON-LD
JSON-LD
{ "id": "markus", "firstname": "Markus", "lastname": "Lanthaler", "homepage": "http://www.markus-lanthaler.com/"}
{ "@context": { "firstname": "http://schema.org/givenName", "lastname": "http://schema.org/familyName", "homepage": "http://schema.org/url" }, "id": "markus", "firstname": "Markus", "lastname": "Lanthaler", "homepage": "http://www.markus-lanthaler.com/"}
{ "@context": { "firstname": "http://schema.org/givenName", "lastname": "http://schema.org/familyName", "homepage": "http://schema.org/url" }, "@id": "/people/markus", "firstname": "Markus", "lastname": "Lanthaler", "homepage": "http://www.markus-lanthaler.com/"}
{ "@context": { "firstname": "http://schema.org/givenName", "lastname": "http://schema.org/familyName", "homepage": "http://schema.org/url" }, "@id": "/people/markus", "firstname": "Markus", "lastname": "Lanthaler", "homepage": "http://www.markus-lanthaler.com/"}
{ "@context": { "firstname": "http://schema.org/givenName", "lastname": "http://schema.org/familyName", "homepage": "http://schema.org/url" }, "@id": "/people/markus", "firstname": "Markus", "lastname": "Lanthaler", "homepage": { "@id": "http://www.markus-lanthaler.com/" }}
{ "@context": { "firstname": "http://schema.org/givenName", "lastname": "http://schema.org/familyName", "homepage": {"@id": "http://schema.org/url", "@type": "@id" }, }, "@id": "/people/markus", "firstname": "Markus", "lastname": "Lanthaler", "homepage": "http://www.markus-lanthaler.com/"}
{ "@context": { "firstname": "http://schema.org/givenName", "lastname": "http://schema.org/familyName", "homepage": {"@id": "http://schema.org/url", "@type": "@id" } }, "@id": "/people/markus", "@type": "http://schema.org/Person", "firstname": "Markus", "lastname": "Lanthaler", "homepage": "http://www.markus-lanthaler.com/"}
Example from Markus Lanthaler,http://www.slideshare.net/lanthaler/building-next-generation-web-ap-is-with-jsonld-and-hydra
The controversiesand stuff that didn't make it
Deprecating some of the bad stuff
• Reification• rdf:Alt, rdf:Bag, rdf:Seq• RDF/XML • rdf:value• For every bad feature, there is a vocal user
who can't live without it
Literals as subjects
• 1 math:lessThan 2• "2013"^^xsd:gYear time:isBefore "2014"^^xsd:gYear• "Galway" ex:isTitleOf <http://dbpedia.org/resource/Galway>
• Most specs and implementations could be easily adapted to allow this
• Not worth it
Semantics of RDF datasets
• What logical statements does an RDF dataset make?– How can we reason over them?
• In a named graph, what is the relationship between the graph name URI and the RDF graph?– Same as? Is described by? Contains?
• No solution fits all use cases. It's left unspecified.– No standard way to reason over RDF datasets
Nested and anonymous graphs
• What about: "Bob said that Alice said XXX"?• Should we allow graphs as a new type of node
in RDF triples?– URIs, literals, blank nodes, RDF graphs
• Little implementation experience (but N3!)• Requires new DBs, different query language