Drupal and the Semantic Web

Post on 11-May-2015

3.749 views 4 download

Tags:

description

Presented at Drupal Camp SF (6/6/09) Three part presentation: 1) Provides an overview of how semantic technologies can simplify data management and integration. 2) Gives a brief introduction to RDF/RDFa. 3) Looks at the Drupal RDF module, SPARQL module, Exhibit module, Freebase Suggest and the upcoming Common Tag module.

Transcript of Drupal and the Semantic Web

Drupal CampJamie Taylor

What can semantic web technologies do for you?

Tag your content

Topic Hubs

RDFa Powered Search

Data Exploration Widgets

A Brief History of Data ModelingPhoto CC-BY: http://en.wikipedia.org/wiki/File:McDonalds_on_Interstate_44.jpg

Why Semantics?

Ugly Tabular Data

A Simple Restaurant Schema

A Simple Restaurant Schema

Big Ugly Schema

What Went Wrong?

Things change

Requirements change

User expectations change

Data structures change

Our data models aren’t keeping up

Scripting Languagesfacilitate change

....where is the data model that does the same?

Graph Data Models

Deli Liiama

$

DeliS1Cuisine

Price

Name

Graph Data Models

Deli Liiama

San Francisco

North Beach

$

DeliS1

S4

Cuisine

Price

Name

Name

Contained-by

Location

Peking Inn

Name

F7

Location

Chinese

Cuisine

Extending Graph Data Models

Deli Liiama

San Francisco

North Beach

$

DeliS1

S4

Cuisine

Price

Name

Name

Contained-by

Location

Live DJ

Music

Urban ChicDecor

Integrating Graph Data Models

Deli Liiama

$

DeliS1Cuisine

Price

Name

OnTap

LeinenkugelZ6

Pabst BRBrand

Brand

Deli Liiama

A2

Name

Semantic Representation

Relationships are represented explicitly

Schema can be represented as a graph

Data integration is the union of two graphs

This makes creating, extending, and combining data much easier than before

Data

Data

Data

Data

Semantics allows an application to utilize unanticipated new data sources

Plugable Data

Plugable Data

Data Portability

Data

Data

Data

Data

Semantics allows data to be utilized by unanticipated new applications

Data Portability

http://dev.mqlx.com/~jamie/simile/timeline.html

Data Portability

Semantics facilitate shared meaning through

• Subject Identity

• Strong and Consistent Semantics

• Open APIS + Open Data

These principles make it much easier to extend, combine, and integrate data

Why Does This Work?

Just enough RDF

Just Enough RDF

RDF is a Data Model

A very simple model!

Cosmos was written by Carl Sagan

(Cosmos) (was written by) (Carl Sagan)

Subject ObjectPredicate

(Cosmos) (was written by) (Carl Sagan)

Subject ObjectPredicate

(Cosmos) (was written by) (Carl Sagan)

authorCosmosCarl

Sagan

(Cosmos)

Subject Which Cosmos?

(Cosmos)

Subject Which Cosmos?

Identifiers are Everywhere

The humble URI

•URI’s provide strong references

•Much like pointing in the physical world

“this is red”“this is a pen”

•a URIref is an unambiguous pointer to something of meaning

(Cosmos)

Subject

http://rdf.freebase.com/ns/authority.openlibrary.book.OL3568862M

Which Cosmos?

authorCosmosCarl

Sagan

http://rdf.freebase.com/ns/book.written_work.author

What do you mean, author?

vocabulary

authorCosmos

There are billions of Carl Sagans...http://rdf.freebase.com/ns/en.carl_sagan

authorCosmosCarl

Sagan

published “1980”

RDF Data Model

Nodes (“Subjects”)

connect via Links (“Predicates”)

to Objects• either Nodes or Literals

Expressions of RDF

RDF has many (inconvenient) serializations

•RDF-XML•N3

•Turtle•NTriples

•RDFa

published

<http://rdf.freebase.com/ns/authority/openlibrary/book/OL3568862M>

“1980”

<http://rdf.freebase.com/ns/book.written_work.date_of_first_publication>

“1980” .

Cosmos

In N-Triples:

URIs provide identityhttp://rdf.freebase.com/ns/en.robert_cook

Stability

Simplicity

Manageability

PURL.org

Not all URL’s are good identifiers

A socially managed semantic database

All objects in Freebase have strong identifiers

http://rdf.freebase.com/ns/en.yorkie

Types of things in Freebase

5,203,825 Topics

14,110,006 Named Entites

Sources of Freebase Data

Freebase is user writable

schema = vocabulary

Freebase Suggest

Freebase Suggest in Drupal

Freebase Suggest in Drupal

jQuery Freebase Drupal Module

Thomas Bonte - Belgium

http://drupal.org/project/jquery_freebase

if (module_exists('jquery_freebase')) { jq_add('freebase'); drupal_add_js(

"$(document).ready(function() { $('#edit-taglabel').freebaseSuggest({}) .bind('fb-select', function(e, data) {

$('#edit-taguri').val('http://rdf.freebase.com/ns/' + new String(data.id).substring(1).replace(/\//g, '.'));})

});",

'inline' ); }

RDF Graphs

CarrieFisher

Star Wars

Harrison Ford

Blade Runner

Daryl Hannah

Starred In

Starred In

Starred In

Starred In

SPARQL Query

carrie_fisher starred_in star_warsharrison_ford starred_in star_warsharrison_ford starred_in blade_runnerdaryl_hannah starred_in blade_runner

CarrieFisher

Star Wars

Harrison Ford

Blade Runner

Daryl Hannah

Starred In

Starred In

Starred In

Starred In

SPARQL Query

SELECT ? actor WHERE { fb:harrison_ford fb:starred_in ?movie . ?actor fb:starred_in ?movie .

}

carrie_fisher starred_in star_warsharrison_ford starred_in star_warsharrison_ford starred_in blade_runnerdaryl_hannah starred_in blade_runner

FILTER (fb:harrison_ford != ?actor)

Review:Why is identity important?

A

B

C

EF

E

D

C

B

A

Data Integration

W3C VisionTim Berners-Lee’s Giant Global Graph

The Caketaken from http://www.w3.org/2007/Talks/0130-sb-W3CTechSemWeb/layerCake-4.png

The Layer Cake

taken from http://www.w3.org/2007/Talks/0130-sb-W3CTechSemWeb/layerCake-4.png

Take What You Need

Linked Open Data Cloud(LOD)

Drupal is a part of the LOD Cloud

http://drupal.deri.ie/cheese/node/20

Drupal is a part of the LOD Cloud

http://xxx/?q=node/X/rdf

<http://drupal.deri.ie/cheese/node/20> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://drupal.deri.ie/cheese/ns#Cheese> .<http://drupal.deri.ie/cheese/node/20> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <ov:Cheese> .<http://drupal.deri.ie/cheese/node/20> <http://drupal.deri.ie/cheese/ns#cheese_Title> "Ardrahan Cheese" .<http://drupal.deri.ie/cheese/node/20> <http://drupal.deri.ie/cheese/ns#created> "2009-01-16T11:05:11Z"^^http://www.w3.org/2001/XMLSchema#dateTime .<http://drupal.deri.ie/cheese/node/20> <http://drupal.deri.ie/cheese/ns#changed> "2009-04-27T13:20:43Z"^^http://www.w3.org/2001/XMLSchema#dateTime .<http://drupal.deri.ie/cheese/node/20> <http://drupal.deri.ie/cheese/ns#cheese_Source_milk> "cow" .<http://drupal.deri.ie/cheese/node/20> <http://drupal.deri.ie/cheese/ns#cheese_Country_origin> "Ireland" .<http://drupal.deri.ie/cheese/node/20> <ov:origin> "Ireland" .<http://drupal.deri.ie/cheese/node/20> <http://drupal.deri.ie/cheese/ns#cheese_Picture> <http://drupal.deri.ie/cheese/sites/default/files/Ardrahan_cheese_1.jpg> .<http://drupal.deri.ie/cheese/node/20> <http://xmlns.com/foaf/0.1/depiction> <http://drupal.deri.ie/cheese/sites/default/files/Ardrahan_cheese_1.jpg> .<http://drupal.deri.ie/cheese/node/20> <http://drupal.deri.ie/cheese/ns#cheese_Description> "Ardrahan is a type of semi-soft cheese with a pungent aroma, Ardrahan cheese has buttery textured honey-coloured centre with a complex delicate flavour. It has a washed rind which grows into a golden colour, and its size and weight tend to vary slightly due to the fact that it is a hand-made product. In general the large wheel weighs about 1.5 kg. There is also a small consumer wheel which weighs 300g. It is yellow-coloured.

Ardrahan also develops a nutty flavour with maturity. It has a unique flavour that lingers, leaving a very pleasant after-taste. It contains only 25% fat approximately. It is hand made using traditional methods and only whole milk and vegetarian rennet are used. " .<http://drupal.deri.ie/cheese/node/20> <http://purl.org/dc/elements/1.1/description> "Ardrahan is a type of semi-soft cheese with a pungent aroma, Ardrahan cheese has buttery textured honey-coloured centre with a complex delicate flavour. It has a washed rind which grows into a golden colour, and its size and weight tend to vary slightly due to the fact that it is a hand-made product. In general the large wheel weighs about 1.5 kg. There is also a small consumer wheel which weighs 300g. It is yellow-coloured.

Ardrahan also develops a nutty flavour with maturity. It has a unique flavour that lingers, leaving a very pleasant after-taste. It contains only 25% fat approximately. It is hand made using traditional methods and only whole milk and vegetarian rennet are used. " .

SUBJECT@about - a URI, stating the RDF subject

PREDICATE@rel - CURIEs, expressing relationships between two resources@property - CURIEs, expressing relationships between a resource and a literal@rev - CURIEs, expressing reverse relationship between two resources

OBJECT@content - a string, representing a literal RDF object@href - a URI resource expressing the RDF object (as in-line clickable)@src - a URI resource expressing the RDF object (as in-line embedded item)@resource - a URI resource expressing the RDF object

Special Predicate@typeof - CURIEs expressing the RDF type of a subject (rdf:type)

RDF in HTML = RDFa

SUBJECT@about - a URI, stating the RDF subject

PREDICATE@rel - CURIEs, expressing relationships between two resources

OBJECT@resource - a URI resource expressing the RDF object

<div xmlns:fb=”http://rdf.freebase.com/ns/” about=”http://rdf.freebase.com/ns/en.jamie_taylor” rel=fb:people.person.place_of_birth>

<span resource=”http://rdf.freebase.com/ns/en.saint_paul”/>

</div>

RDF in HTML = RDFa

SUBJECT@about - a URI, stating the RDF subject

PREDICATE@property - CURIEs, expressing relationships between a resource and a literal

OBJECT@content - a string, representing a literal RDF object

<div xmlns:fb=”http://rdf.freebase.com/ns/” about=”http://rdf.freebase.com/ns/en.carl_sagan” property=fb:people.person.date_of_birth>

<span content=”1934-11-09”/>

</div>

RDF in HTML = RDFa

What “concepts” are covered in content

Like existing tagging,

but with strong identifiers!<resource>

Tag

tagged

meanslabel

<resource>"text"

taggingDate "2001-01-01"

Strong identifier goes here!

Drupal Module

<div class="rdfa" xmlns:ctag="http://commontag.org/ns#">

NASA's

<a typeof="ctag:Tag"

rel="ctag:means"

href="http://rdf.freebase.com/ns/en.phoenix_mars_mission"

property="ctag:label">Phoenix Mars Lander</a>

has deployed its robotic arm.

</div>

<resource>

Tag

tagged

meanslabel

<resource>"text"

taggingDate "2001-01-01"