This document discusses Drupal 7 and its new capabilities for representing content as Resource Description Framework (RDF) data. It provides an overview of Drupal's history with RDF and semantic technologies. It describes how Drupal 7 core is now RDFa enabled out of the box and how contributed modules can import vocabularies and provide SPARQL endpoints. The document advocates experimenting with the new RDF features in Drupal 7.
1. Drupal 7 and RDF
Stéphane Corlosquet, <scorlosquet@gmail.com>
- 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
Slides: http://files.openspring.net/2010/10/drupal7-rdf-mit-lod-ventures-oct-2010.pdf
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
● Scalable
4. Building a Drupal site
http://www.flickr.com/photos/toomuchdew/3792159077/
5. Building a Drupal site
http://www.flickr.com/photos/georgivar/4795856532/
6. Building a Drupal site
● Create the content types
you need:
Blog, article, wiki, forum, polls,
image, video, podcast, e-
commerce... (be creative)
http://www.flickr.com/photos/georgivar/4795856532/
7. Building a Drupal site
● Enable the features you
want:
Comments, tags, voting/rating,
location, translations, revisions,
search...
http://www.flickr.com/photos/skip/42288941/
8. Building a Drupal site
● Place links in the
navigation bars and
blocks
● Build Views over your
data
● Skin your site: theming
http://www.flickr.com/photos/skip/42288887/
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
http://www.flickr.com/photos/kerim/5588760/
13. The Drupal Community
“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.” -
Dries Buytaert
http://webchick.net/node/80
14. 200+ Local user groups
including http://groups.drupal.org/boston
15. Doubles in size each release
source: http://acko.net/blog/drupal-org-explosion-and-trends source: http://buytaert.net/drupal-site-statistics
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://drupal.org/project/usage/drupal http://buytaert.net/20000-drupal-gardens-sites
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)
● and more...
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
25. Architecture
● User driven data model
● Content type = RDF class
● Field = RDF property
● Node = RDF resource
http://www.flickr.com/photos/docman/221656821
32. Experiment continued
● 1. Automatic site vocabulary generation
● 2. Mapping Content Models to existing
ontologies
● 3. Data endpoint for SPARQL querying
● 4. Lazy loading of external data (data import)
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
● Beta1 released a few days ago
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
● PHP ARC2 library http://github.com/semsol/arc2
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 { ?
s ?p ?o . }')->limit(1000)->execute();
37. RDFDB: an RDF Database API
● Similar to Drupal 7 Database abstraction layer
● rdfdb_insert_data($graph, $triples)->execute();
● rdfdb_select('?s ?p ?o')->where('?s ?p ?o')-
>limit(10)->execute();
● rdfdb_clear($graph)->execute()
● Do not worry about what RDF store the
SPARQL endpoint is running on
38. RDFDB: an RDF Database API
● Connection info:
● Support for master/slave servers
● Drivers for ARC2, Virtuoso, 4store
● Comes with tests!
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
● http://github.com/scor/rdfdb
40. How to get involved
● So many ways... code, documentation, support,
translations, graphic design
● http://drupal.org/getting-involved
● Watch video http://webchick.net/node/80
41. How to get involved
● Subscribe to the Semantic Web group at
http://groups.drupal.org/semantic-web
● Semantic Drupal news at http://semantic-drupal.com/