Linked Data Publishing with Drupal



Similar documents
Drupal and the Media Industry. Stéphane Corlosquet EMWRT IX, Sept 2013, Amsterdam

Drupal.

Content Management Systems: Drupal Vs Jahia

Acquia Introduction December 9th, 2009

Kentico CMS 5 Developer Training Syllabus

Content Management Systems: Drupal Vs Jahia

The truth about Drupal

Towards the Integration of a Research Group Website into the Web of Data

MASTER DRUPAL 7 MODULE DEVELOPMENT

Drupal 8 The site builder's release

How We Did It. Unique data model abstraction layer to integrate, but de-couple EHR data from patient website design.

How To Write A Drupal Rdf Plugin For A Site Administrator To Write An Html Oracle Website In A Blog Post In A Flashdrupal.Org Blog Post

Everything you ever wanted to know about Drupal 8*

Software Development & Education Center PHP 5

Workshop on Using Open Source Content Management System Drupal to build Library Websites Hasina Afroz Auninda Rumy Saleque

We have big data, but we need big knowledge

Structured Content: the Key to Agile. Web Experience Management. Introduction

A Close Look at Drupal 7

WHAT'S NEW IN SHAREPOINT 2013 WEB CONTENT MANAGEMENT

Open Source Content Management System for content development: a comparative study

Dev01: Kentico CMS 7 Developer Essentials Syllabus

ECG-1615A. How to Integrate IBM Enterprise Content Management Solutions With Microsoft SharePoint and IBM Connections. elinar.com

BIG DATA AGGREGATOR STASINOS KONSTANTOPOULOS NCSR DEMOKRITOS, GREECE. Big Data Europe

BUILDING MULTILINGUAL WEBSITES WITH DRUPAL 7

Advanced Web Development SCOPE OF WEB DEVELOPMENT INDUSTRY

Semantic SharePoint. Technical Briefing. Helmut Nagy, Semantic Web Company Andreas Blumauer, Semantic Web Company

Drupal Node Overview. Attendee Guide. Prepared for: EDT502, Fall 2007, Dr. Savenye Prepared by: Jeff Beeman. November 26, 2007 EDT502 Final Project

ELIS Multimedia Lab. Linked Open Data. Sam Coppens MMLab IBBT - UGent

Drupal and ArcGIS Yes, it can be done. Frank McLean Developer

Building Library Website using Drupal

SOFTWARE TESTING TRAINING COURSES CONTENTS

Content Management Systems versus Flat Files Open Source versus Closed Selecting a Content Management System Drupal A Note about Drupal Versions

COMBINING AND EASING THE ACCESS OF THE ESWC SEMANTIC WEB DATA

Standards, Tools and Web 2.0

Beginning Oracle. Application Express 4. Doug Gault. Timothy St. Hilaire. Karen Cannell. Martin D'Souza. Patrick Cimolini

JBoss Portal 2.4. Quickstart User Guide

Paul Boisvert. Director Product Management, Magento

Indian Journal of Science International Weekly Journal for Science ISSN EISSN Discovery Publication. All Rights Reserved

MAKE YOUR WEB PRESENCE FELT WITH MOVABLE TYPE. WE MAKE IT SIMPLE TO CREATE AND EASY TO MANAGE YOUR CONTENT. Six Apart Movable Type

Using your Drupal Website Book 1 - Drupal Basics

Choosing a Content Management System (CMS)

IBM Digital Experience. Using Modern Web Development Tools and Technology with IBM Digital Experience

ARC: appmosphere RDF Classes for PHP Developers

Building Your First Drupal 8 Company Site

12 The Semantic Web and RDF

Lift your data hands on session

NextRow - AEM Training Program Course Catalog

CHAPTER 20 TESING WEB APPLICATIONS. Overview

J j enterpririse. Oracle Application Express 3. Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX

Lightweight Data Integration using the WebComposition Data Grid Service

Preparing for Drupal 8

WebLink 3 rd Party Integration Guide

Leveraging existing Web frameworks for a SIOC explorer to browse online social communities

CS3051: Digital Content Management

VIVO Dashboard A Drupal-based tool for harvesting and executing sophisticated queries against data from a VIVO instance

XML Processing and Web Services. Chapter 17

SENSE/NET 6.0. Open Source ECMS for the.net platform. 1

Kentico CMS for.net User Groups

Eclipse 4 RCP application Development COURSE OUTLINE

Drupal CMS for marketing sites

Faichi Solutions. The Changing Face of Drupal with Drupal 8

Drupal 8. Core and API Changes Shabir Ahmad MS Software Engg. NUST Principal Software Engineser PHP/Drupal

LDIF - Linked Data Integration Framework

A Semantic web approach for e-learning platforms

OpenText Web Experience Management

GET YOUR BUSINESS ONLINE FOR NON-TECHIES. Domains, websites, , SEO basics and analytics with Rob Riley

Semantic Interoperability

SharePoint 2013 for End Users

TERMS OF REFERENCE. Revamping of GSS Website. GSS Information Technology Directorate Application and Database Section

Publishing Linked Data Requires More than Just Using a Tool

Optimizing Drupal Performance. Benchmark Results

Multilingual content in Drupal 8: a highly evolved permutated API. DrupalCamp Vienna 2013 Francesco Placella

Document Freedom Workshop DFW 2012: CMS, Moodle and Web Publishing

Course Code NCS2013: SharePoint 2013 No-code Solutions for Office 365 and On-premises

XTM Drupal Connector. A Translation Management Tool Plugin

Administrator & End User 1 or 2 Day Training Course

How To Change Your Site On Drupal Cloud On A Pcode On A Microsoft Powerstone On A Macbook Or Ipad (For Free) On A Freebie (For A Free Download) On An Ipad Or Ipa (For

The Open Source CMS. Open Source Java & XML

MatchPoint Technical Features Tutorial Colygon AG Version 1.0

What is Drupal, exactly?

Kentico CMS 7.0 Intranet Administrator's Guide

Bring your intranet to the IBM i With Drupal and Zend Server

NetBeans IDE Field Guide

LinkZoo: A linked data platform for collaborative management of heterogeneous resources

Thursday, November 1, 12 THE LEADER IN DRUPAL PLATFORM DESIGN AND DEVELOPMENT

OCLC CONTENTdm. Geri Ingram Community Manager. Overview. Spring 2015 CONTENTdm User Conference Goucher College Baltimore MD May 27, 2015


Alfresco. Wiley Publishing, Inc. PROFESSIONAL. PRACTICAL SOLUTIONS FOR ENTERPRISE. John Newton CONTENT MANAGEMENT. Michael Farman Michael G.

Web to Print Knowledge Experience. A Case Study of the Government of Hessen, Germany s Half-Time Report

Content Manager User Guide Information Technology Web Services

STAR Semantic Technologies for Archaeological Resources.

MS 50547B Microsoft SharePoint 2010 Collection and Site Administration

Features-Based Deployment

AUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev

General principles and architecture of Adlib and Adlib API. Petra Otten Manager Customer Support

<Insert Picture Here>

Joomla! template Blendvision v 1.0 Customization Manual

PHP on IBM i: What s New with Zend Server 5 for IBM i

UW- Madison Department of Chemistry Intro to Drupal for Chemistry Site Editors

Building and Deploying Web Applications

Transcription:

Linked Data Publishing with Drupal Joachim Neubert ZBW German National Library of Economics Leibniz Information Centre for Economics SWIB13 Workshop Hamburg, Germany 25.11.2013 ZBW is member of the Leibniz Association

My background Scientific software developer at ZBW German National Library for Economics, mainly concerned with Linked Open Data and knowledge organization systems and services Published 20th Century Press Archives in 2010, with some 100,000 digitized newspaper articles in dossiers (http://zbw.eu/beta/p20, custom application written in Perl) Published a repository of ZBW Labs projects recently basicly project descriptions and a blog (http://zbw.eu/labs, Drupal based) Page 2

Workshop Agenda Part 1 1) Drupal 7 as a Content Management System: Linked Data by Default Hands-on: Get familiar with Drupal and it s default RDF mappings 2) Using Drupal 7as a Framework for Content Management Hands-on: Create a custom content type and map it to RDF Page 3

Workshop Agenda Part 2 Produce other RDF Serialization Formats: RDF/XML, Turtle, Ntriples, JSON-LD Create a SPARQL Endpoint from your Drupal Site Cool URIs Create Out-Links with Web Taxonomy Current limitations of RDF/LD support in Drupal 7 Outlook on Drupal 8 Page 4

Drupal as a CMS (Content Management System) ready for RDF and Linked Data Page 5

Why at all linked data enhanced publishing? Differentiate the subjects of your web pages and their attributes Thus, foster data reuse in 3rd party services and applications Mashups Search engines Create meaningful links, adding value for users Page 6

Why use a content management system? Standard tasks (browser compatibility, page templates, responsive css, site navigation, search, form handling, calendar, wysiwyg, revisions, translations, permissions, data management, security) made easy Easy-to-add web 2.0 features (blogging and comments, tags, rating, forums, ) Know-how available outside a single development team Page 7

Why Drupal? More than 1 million sites worldwide 2 % of the web Large institutional sites (whitehouse.gov, amnesty.org, economist.com, examiner.com, louvre.fr) Page 8

Why Drupal? Open & modular architecture Extensible by modules Standards-based Scalable Vibrant open source community, and commercial services, too http://drupal.org/getting-started/before/overview http://de.slideshare.net/scorlosquet/drupal-as-a-semantic-web-platform Page 9

The Drupal Community More than 30,000 developers More than 5,000 contributed modules (Drupal 7, actively maintained) Activities organized through issue queues Community contributed documentation Thematic discussion groups: https://groups.drupal.org/semantic-web https://groups.drupal.org/libraries Planet Drupal (aggregated blog entries): https://drupal.org/planet Page 10

Drupal entity types Node in Drupal jargon From https://drupal.org/node/1261744 Page 11

Nodes: Drupal s basic structure for content Title Author & created/modified date Body May have tags (taxonomy), and/or comments, and/or images Additional features: Revisions, Diffs Translations Page 12

RDF mappings Content types (or bundles of other entity types) are mapped to RDF classes Fields are mapped to RDF properties Defined on a the data layer (independent of the output system) Drupal takes care of inserting it into the chosen HTML layout as RDFa attributes: Page 13

Page 14

Output in RDFa Drupal renders RDF mappings as HTML attributes No frickling in HTML producing code or templates Works out of the box for different Drupal themes (screen designs) In Drupal 7, by default XHTML/RDFa 1.0 Themes for HTML5/RDFa 1.1 available (e.g., Zen) Page 15

Hands-on, part 1: Create Articles Workshop pad: http://etherpad.lobid.org/p/swib13-drupal-ws Page 16

Drupal 7 as a Content Management Framework Page 17

Drupal entity types Node (in Drupal jargon) From https://drupal.org/node/1261744 Page 18

Drupal 7 default RDF schema Page 19 http://openspring.net/blog/2011/05/01/background-research-work-leading-to-rdf-in-drupal-7-released-as-part-of-my-masters

Drupal fields Fields can be defined in Drupal for custom data Drupal fields are different from what we know as database fields Fields are attached to entities Single or multiple occurrence Various technical field types (text, integer, file, ) Custom modules can add their own field types Some field types are supported by input widgets (such as a pop-up calendar for dates) Page 20

Bundles allow for sub-types of an entity Bundles refer to Drupal fields Content type means a bundle for the node entity type Predefined content types are: Basic page (just title and body for static content, such as an About page) Article (with tags and an image for blog articles, news, ) Custom modules can add their own content types, or even entity types Page 21

Hands-on, part 2: Create a project content type Page 22

Hands-on, part 2: Preparations 1. Enable Modules RDF UI Date and Date Popup (with dependencies) Entity Reference 2. Add RDF Namespaces (Configuration > RDF publishing settings > RDF namespaces Tab) schema http://schema.org/ doap http://usefulinc.com/ns/doap# 3. Create a Categories taxonomy Page 23

Hands-on, part 2: Fields and mappings Type: Project (doap:project, schema:createtivework) Fields: Name (doap:name, schema:name, dc:title): (title) Short Description (doap:shortdesc, schema:summary): Long text Started (doap:created, schema:startdate): Date Lead (doap:maintainer, schema:accountableperson): Entity reference Article (rdfs:seealso): Entity reference (Blog Article) Category (doap:category, schema:about, dc:subject): Term reference Page 24

Hands-on, part 2: Add example content Page 25

What did we achieve? Learned about Drupal RDF output produced by default Created a custom content type and attached fields Added arbitrary RDF classes and properties Learned how to interlink content and other entities Page 26

Extending Drupal even further As powerful a Content Mangement Framework, Drupal provides Well defined APIs (database abstraction layer, Field API, Form API, Entity API, ) In particular, RDF Mapping API allows create the mappings programmatically, which we be built through the User Interface Entity API allows building custom entities with arbitrary properties even residing in remote databases requires substantial programming skills Page 27

Coffee break Page 28

Selected Linked Data-related Drupal stuff What I introduced up to now, is quit well production ready (and working on hundred thousands of sites, as RDF is enabled by default). Same is true for the field subsystem, for entity references, etc. However, much less Drupal sites deliberately work with RDF, and the module I now will introduce are often in beta or even early alpha state Page 29

Produce other RDF serialization formats Serialize Drupal RDF data with rdfx and restws modules in RDF/XML Turtle N-Triples Add JSON-LD module * currently does not work with PostgreSQL for a workarround, see http://drupal.org/node/1999754#comment-7438562 Page 30

Hands-on: Serialization formats Page 31

Providing a SPARQL endpoint for your site SPARQL is like SQL a general purpose query language for RDF data Let you select data from all over your site in flexible and unforseen ways Let even combine you data from your site and from others in a single query Page 32

Hands-on: SPARQL Page 33

SPARQL: Some restrictions However, somebody who wants to query the store, has to know, or to figure out somehow, that there are articles and projects, which are interlinked by rdfs:seealso in which direction of the rdfs:seealso connection was created that projects actually have a schema:about property Page 34

SPARQL: Production-ready? An open SPARQL endpoint on a production server is like an open SQL interface: performance and security issues A much finer tunable module combination for SPARQL queries was announced on the Semantic Web Drupal group: Limits for processing time and number of results Selected indexing, batches of index jobs see really good step-by-step description at https://drupal.org/node/2028111 Even then, for the regular pages your users should get on your site, you should better use the Drupal Views module. Page 35

Cool URIs for Linked Data Cool URIs don't change Tim Berners-Lee, http://www.w3.org/provider/style/uri No technology-dependent parts More on Linked-Data-URIs: Chapter 2 of Bizer/Heath: Linked Data (2011) http://linkeddatabook.com/editions/1.0/ Page 36

Cool URIs for Drupal require work 1) Drupal s out-of-the-box default URI http://drupal-lod/?q=node/25 2) with the Clean URLs feature enabled This has already be done by the TurnKey Linux Drupal 7 installation http://drupal-lod/node/25 3) with the (core) Path module enabled and an alias defined http://drupal-lod/project/zbw-labs Also good for seach engines! For more on Drupal support for redirects: check Global Redirect module (https://drupal.org/project/globalredirect) Page 37

Hands-on: Cool URIs Page 38

Even more work if... 1) You have a multilingual site, and want to have only one URI for a project, e.g., instead of http://zbw.eu/labs/de/project/zbw-labs http://zbw.eu/labs/en/project/zbw-labs just http://zbw.eu/labs/project/zbw-labs 2) Or you want, by the rules, to destinguish between the thing itself (the project) and the web page (about the project) Page 39

Linked Data URIs by the textbook No httprange-14 conformant standard solution in Drupal known to me yet workarrounds: Add code to set the about attribute to the generic (languageagnostic) URI of the entity (for multilingual sites) (code example in http://groups.drupal.org/node/247058#comment-798823) Or add code to set the about attribute to the page URI extended with a fragment identifier (e.g., #resource so called hash URI ) Page 40

Web Taxonomy: Using vocabularies from the web Autocomplete widget for Drupal fields, powered by vocabularies maintained elsewhere Local taxonomy works as a proxy for the web taxonomy terms in use Page 41

Web Taxonomy: Using vocabularies from the web Prerequisites: a already built plugin for the vocabulary (experimental examples for VIAF, STW, Dbpedia, Agrovoc, GND economists) or a web-accessible autosuggest service which delivers terms and their URIs (may be JSON, SPARQL results or even SOAP) a custom coded plugin to access the service Page 42

Plugin example: Economics Taxonomies Third party thesauri, such as STW Thesaurus for Economics, can be re-used for indexing a collection Code downloadable and installable from https://drupal.org/sandbox/jneubert/1447918 Page 43

Hands-on: Web taxonomy Page 44

Current limitations of RDF/LD support in Drupal 7 Page 45

Nested RDF structures only with custom code Workarround example: Git repository URI in DOAP ontology demands a separate node, e.g., <> a schema:creativework, doap:project; doap:repository [ a doap:gitrepository; doap:location "http://github.com/some/id.git" ]; Create field_gitrepository and map to doap:location Create a custom template file for the field (field--field_gitrepository-- lproject.tpl.php) <div rel="doap:repository" class="field-items"<?php print $content_attributes;?>> <div about="[_:repos]" typeof="doap:gitrepository"> <?php foreach ($items as $delta => $item):?> <div class="field-item"<?php print $item_attributes[$delta];?>><?php print render($item);?></div> <?php endforeach;?> </div> Page 46 </div> </div>

Further limitations in Drupal 7 RDFa support currently works for single entities pages with multiple entities (search results, term pages, views, etc.) are not supported RDFa output may break under certain special conditions (http://drupal.org/node/1778226) Page 47

Outlook to Drupal 8 Drupal base functionalities refactored for using Symphony framework Aimed at an extended service-oriented architecture design goal: Each piece of content gets its own URL (http://www.unleashedmind.com/en/blog/sun/drupal-8-the-path-forward) Web services based on HAL (Hypertext application language) Configuration in files (version control, portability) Multilingual unified and improved Page 48

Outlook to Drupal 8 (cont.) Date, Views, Entity Reference, modules in core Wysiwyg and in-place editing out of the box RDF Solely use RDFa 1.1 lite (@property, determined by attribute placement, instead of @rel/@rev) https://drupal.org/node/1780090 Default mappings based almost completely on schema.org (see https://drupal.org/node/1784234) Page 49

Page 50 Stephane Corlosquet, https://groups.drupal.org/node/309513

To sum up Linked data publishing via a CMS, in particular Drupal, is a valid option If your data can be mapped to an essentially flat RDF data structure, linked data can be added mostly by site builders, without much additional effort Sometimes research is required on how to solve problems, and at times glue code has to be written But: most of the code for your web application is already there, and is supported by a large and helpful Open Source community Page 51

Thank you! Joachim Neubert ZBW Leibniz Information Centre for Economics j.neubert@zbw.eu http://zbw.eu/labs Page 52