• No results found

Drupal.

N/A
N/A
Protected

Academic year: 2021

Share "Drupal."

Copied!
42
0
0

Loading.... (view fulltext now)

Full text

(1)

Drupal 7 and RDF

Stéphane Corlosquet, <[email protected]>

- Software engineer, MGH

- Drupal 7 core RDF maintainer - SemWeb geek

Linked Data Ventures, MIT, Oct 2010

This work is licensed under a Creative Commons Attribution 3.0 License, with attribution to Stéphane Corlosquet

(2)

Drupal

● Dries Buytaert - small news site in 2000

● Open Source - 2001

● Content Management System

● LAMP stack

● Non-developers can build sites

and publish content

● Control panels instead of code

http://www.flickr.com/photos/funkyah/2400889778 /

(3)

Drupal

● Open & modular

architecture

● Extensible by modules

● Standards-based

● Low resource hosting

(4)

Building a Drupal site

(5)

Building a Drupal site

(6)

Building a Drupal site

● Create the content types

you need:

Blog, article, wiki, forum, polls, image, video, podcast,

e-commerce... (be creative)

(7)

Building a Drupal site

● Enable the features you

want:

Comments, tags, voting/rating, location, translations, revisions, search...

(8)

Building a Drupal site

● Place links in the

navigation bars and blocks

● Build Views over your

data

● Skin your site: theming

(9)

Building a Drupal site

6000 free contributed modules ● Google Analytics ● Wysiwyg ● Captcha ● Calendar ● XML sitemap ● Five stars ● Twitter ● ... http://www.flickr.com/photos/kaptainkobold/1422600992/

(10)

Drupal inside

● Database storage (PDO) ● Cron

● Queue / batch API ● File management ● User management ● Form API

● Security

(11)

User experience

(12)

The Drupal Community

(13)

The Drupal Community

http://webchick.net/node/80

“It’s really the Drupal community and not so much the software that makes the Drupal project what it

is. So fostering the Drupal community is actually more important than just managing the code base.” -

(14)

200+ Local user groups

(15)

Doubles in size each release

(16)

Doubles in size each release

● Drupal 6 (stable) - 325,145+ sites

● Drupal 7 (beta 1) - 20,000+ sites

● Total estimation 500,000 sites (1% of the Web)

http://buytaert.net/20000-drupal-gardens-sites http://drupal.org/project/usage/drupal

(17)
(18)
(19)
(20)

Who uses Drupal?

(21)

Try Drupal 7

● Download and Install Drupal 7

● Grab latest release http://drupal.org/project/drupal

● Mac OS: MAMP http://www.mamp.info/

● Acquia Stack http://acquia.com/downloads

● Drupal Gardens: free Drupal 7 site

(22)
(23)

History of RDF in Drupal

● rdf.php (2000, Dries)

● FOAF, vCard (2004, walkah)

● Relationship (2005, dman)

● Semantic Search (2006, hendler)

● RDF (2007, Arto)

● OpenCalais (febbraro, 2008)

● RDF CCK (2008, scor)

(24)

Experiment prior Drupal 7

● Expose Drupal's data in

RDF ● Automatically ● No RDF expertise required ● Module based http://www.flickr.com/photos/neys/238686518 7

(25)

Architecture

● User driven data model

● Content type = RDF class

● Field = RDF property

● Node = RDF resource

http://www.flickr.com/photos/docman/221656821 0

(26)
(27)
(28)
(29)

Mapping to RDF

● site:Person a rdfs:Class;

rdfs:subClassOf foaf:Person.

● site:first_name a rdf:Property;

rdfs:subPropertyOf foaf:firstName.

(30)
(31)
(32)

Experiment continued

● 1. Automatic site vocabulary generation

● 2. Mapping Content Models to existing

ontologies

● 3. Data endpoint for SPARQL querying

(33)

Drupal 7 and RDF

● Drupal 7 core is RDFa enabled!

● RDFa output by default on blogs, forums,

comments, etc. 
using FOAF, SIOC, DC, SKOS

(34)
(35)

Drupal 7 contributed modules

● http://drupal.org/project/rdf

● Import vocabularies

● Interface for mappings

● http://drupal.org/project/sparql_ep

● SPARQL endpoint on Drupal data

(36)

RDFDB: an RDF Database API

● Access RDF stores via a consistent API

● SPARQL 1.1

● Vendor agnostic

● Similar to Drupal 7 Database abstraction layer

● rdfdb_insert_data($graph, $triples)->execute();

● rdfdb_select('?g ?s ?p ?o')->where('GRAPH ?g { ?

(37)

RDFDB: an RDF Database API

● Similar to Drupal 7 Database abstraction layer

● rdfdb_insert_data($graph, $triples)->execute(); ● rdfdb_select('?s ?p >where('?s ?p

?o')->limit(10)->execute();

● rdfdb_clear($graph)->execute()

● Do not worry about what RDF store the

(38)

RDFDB: an RDF Database API

● Connection info:

● Support for master/slave servers

● Drivers for ARC2, Virtuoso, 4store

(39)

RDFDB: an RDF Database API

● Why an abstraction layer?

● Every store has its own way to implement SPARQL

updates, some are RESTful, some others have their own SPARQL update syntax.

● ARC2: SPARQL+ via POST requests

● 4store: POST, PUT and DELETE requests

● Download

(40)

How to get involved

● So many ways... code, documentation, support,

translations, graphic design

● http://drupal.org/getting-involved

(41)

How to get involved

● Subscribe to the Semantic Web group at

http://groups.drupal.org/semantic-web

(42)

Questions?

Good luck!

References

Related documents