A Meta-Plugin for Bespoke Data Management in WordPress



Similar documents
Baan Service Master Data Management

BaanERP. BaanERP Windows Client Installation Guide

Configuring Additional Active Directory Server Roles

Engineering Data Management

ODBC. Getting Started With Sage Timberline Office ODBC

Domain 1: Designing a SQL Server Instance and a Database Solution

Domain 1: Configuring Domain Name System (DNS) for Active Directory

Desktop Management. Desktop Management Tools

PUBLIC RELATIONS PROJECT 2016

(VCP-310)

A Flexible Web-Based Publication Database

Domain 1: Identifying Cause of and Resolving Desktop Application Issues Identifying and Resolving New Software Installation Issues

Domain 1 - Describe Cisco VoIP Implementations

CCH Accountants Starter Pack

BaanERP 5.0c. EDI User Guide

Document Control Solutions

CREATIVE MARKETING PROJECT 2016

E-Plex Enterprise Access Control System

Confidence Intervals for One Mean

Modified Line Search Method for Global Optimization

Open M/SQL Developer Guide

WebLogic Workshop Application Development Basics

Enhancing Oracle Business Intelligence with cubus EV How users of Oracle BI on Essbase cubes can benefit from cubus outperform EV Analytics (cubus EV)

In nite Sequences. Dr. Philippe B. Laval Kennesaw State University. October 9, 2008

Authentication - Access Control Default Security Active Directory Trusted Authentication Guest User or Anonymous (un-authenticated) Logging Out

client communication

HP Asset Manager. Software version: Service Asset and Configuration Management

INDEPENDENT BUSINESS PLAN EVENT 2016

A Data-Centric Design Methodology for Business Processes

RUT - Development manual

Business Rules-Driven SOA. A Framework for Multi-Tenant Cloud Computing

TruStore: The storage. system that grows with you. Machine Tools / Power Tools Laser Technology / Electronics Medical Technology

Making training work for your business

Your organization has a Class B IP address of Before you implement subnetting, the Network ID and Host ID are divided as follows:

SECTION 1.5 : SUMMATION NOTATION + WORK WITH SEQUENCES

optimise your investment in Microsoft technology. Microsoft Consulting Services from CIBER

Design and Implementation of a Publication Database for the Vienna University of Technology

Project Deliverables. CS 361, Lecture 28. Outline. Project Deliverables. Administrative. Project Comments

iprox sensors iprox inductive sensors iprox programming tools ProxView programming software iprox the world s most versatile proximity sensor

Creating And Designing A Successful Portfolio Item Model By Owner

INVESTMENT PERFORMANCE COUNCIL (IPC)

Agency Relationship Optimizer

Neolane Reporting. Neolane v6.1

CS100: Introduction to Computer Science

EUROCONTROL PRISMIL. EUROCONTROL civil-military performance monitoring system

hp calculators HP 12C Statistics - average and standard deviation Average and standard deviation concepts HP12C average and standard deviation

Vladimir N. Burkov, Dmitri A. Novikov MODELS AND METHODS OF MULTIPROJECTS MANAGEMENT

INVESTMENT PERFORMANCE COUNCIL (IPC) Guidance Statement on Calculation Methodology

Neolane Leads. Neolane v6.1

Creating an Agile BI Environment

QUADRO tech. PST Flightdeck. Put your PST Migration on autopilot

CCH CRM Books Online Software Fee Protection Consultancy Advice Lines CPD Books Online Software Fee Protection Consultancy Advice Lines CPD

Analyzing Longitudinal Data from Complex Surveys Using SUDAAN

*The most important feature of MRP as compared with ordinary inventory control analysis is its time phasing feature.

CCH Accounts Production

Security Functions and Purposes of Network Devices and Technologies (SY0-301) Firewalls. Audiobooks

facing today s challenges As an accountancy practice, managing relationships with our clients has to be at the heart of everything we do.

Unicenter TCPaccess FTP Server

Merging graph-like object structures

ContactPro Desktop for Multi-Media Contact Center

The Drupal-Powered Enterprise

Supply Chain Management

Hypergeometric Distributions

Safety Requirements engineering and Proof of implementation

Conversion Instructions:

Supply Chain Management

e-trader user guide Introduction

A Software System for Optimal Virtualization of a Server Farm 1

HP Asset Manager SAM Best Practice package

PUBLIC RELATIONS PROJECT 2015

Rainbow options. A rainbow is an option on a basket that pays in its most common form, a nonequally

Message Exchange in the Utility Market Using SAP for Utilities. Point of View by Marc Metz and Maarten Vriesema

Tradigms of Astundithi and Toyota

Introducing Rational Suite

Ideate, Inc. Training Solutions to Give you the Leading Edge

STUDENTS PARTICIPATION IN ONLINE LEARNING IN BUSINESS COURSES AT UNIVERSITAS TERBUKA, INDONESIA. Maya Maria, Universitas Terbuka, Indonesia

BEA elink Adapter for Kenan Arbor/BP. User Guide

Domain 1 Components of the Cisco Unified Communications Architecture

InventoryControl. The Complete Inventory Tracking Solution for Small Businesses

CHAPTER 3 DIGITAL CODING OF SIGNALS

where: T = number of years of cash flow in investment's life n = the year in which the cash flow X n i = IRR = the internal rate of return

QUADRO tech. FSA Migrator 2.6. File Server Migrations - Made Easy

Department of Computer Science, University of Otago

A Secure Implementation of Java Inner Classes

Skytron Asset Manager

One Goal. 18-Months. Unlimited Opportunities.

Baan Finance Accounts Payable

GOOD PRACTICE CHECKLIST FOR INTERPRETERS WORKING WITH DOMESTIC VIOLENCE SITUATIONS

How To Solve The Homewor Problem Beautifully

FPO. A global telecom s strategy. for Canada

On-Premise CRM to Salesforce Migration - Benefits, Challenges and Best Practices

A Balanced Scorecard

Supply Chain Manager User s Manual

IT Support n n support@premierchoiceinternet.com. 30 Day FREE Trial. IT Support from 8p/user

DAME - Microsoft Excel add-in for solving multicriteria decision problems with scenarios Radomir Perzina 1, Jaroslav Ramik 2

Chapter 10 Computer Design Basics

Introducing Your New Wells Fargo Trust and Investment Statement. Your Account Information Simply Stated.

3G Security VoIP Wi-Fi IP Telephony Routing/Switching Unified Communications. NetVanta. Business Networking Solutions

Biology 171L Environment and Ecology Lab Lab 2: Descriptive Statistics, Presenting Data and Graphing Relationships

Transcription:

A Meta-Plugi for Bespoke Data Maagemet i WordPress Stefaia Leoe, Alexadre de Spidler, ad Moira C. Norrie Istitute for Iformatio Systems, ETH Zurich CH-8092 Zurich, Switzerlad {leoe despidler orrie}@if.ethz.ch Abstract. WordPress is a powerful ad extesible platform for webbased iformatio publishig ad maagemet. While the WordPress core is targeted to the publicatio of chroologically ordered textual articles typical of blogs, users have developed plugis as well as themes to support the data maagemet requiremets of specific domais such as e-commerce or e-learig. However, the creatio of such plugis requires developmet skills ad effort. We preset a meta-plugi that automatically geerates bespoke plugis for data maagemet based o user-defied ER models. We illustrate the approach usig a example of creatig a WordPress site for maagig iformatio about courses. Keywords: Wordpress, Meta-Plugi, Data Maagemet Platform Itroductio WordPress is a powerful iformatio maagemet ad publishig platform that allows ed-users to set up their web sites by selectig ad adaptig shared themes. Through the admiistrator iterface, users ca customise their theme of choice as well as authorig cotet, uploadig media ad itegratig a wide variety of plugis. The success of the approach is reflected by the large umber of over 50 millio olie web sites based o WordPress. Although WordPress is commoly associated with bloggig sites, owadays it is widely used as a geeral iformatio maagemet ad publishig system. Examples iclude museums 2, corporate websites 3 ad more domai-specific applicatios, such as olie stores 4 ad e-learig systems 5. However, while Word- Press provides a powerful ifrastructure for web publishig, the core data model is very limited sice it is based o a simple pages ad posts paradigm for the publicatio of semi-structured text ad embedded media. The WordPress core model ad fuctioality ca be exteded through plugis. Thousads of plugis have bee developed by the commuity with examples http://e.wordpress.com/stats 2 http://wordpress.org/showcase/the-toledo-museum-of-art 3 http://wordpress.org/showcase/atlatic-southeast-airlies 4 http://kartellstorela.com 5 http://testdatei.schatzverlag.ch

2 Stefaia Leoe, Alexadre de Spidler, Moira C. Norrie icludig a e-commerece plugi 6 ad the Buddypress 7 plugi for the desig of social etworkig sites. Plugis ca easily be shared amog the user commuity, but users with very specific data maagemet requiremets may have to develop their ow plugis which requires kowledge of PHP as well as a detailed uderstadig of the WordPress platform ad its ier workigs. To simplify the task for ed-users, we show how the cocept of a metaplugi ca be used to geerate bespoke plugis for data maagemet. The metaplugi allows ed-users to specify a ER model i the WordPress admiistrator iterface ad automatically geerates a plugi based o this model. This eables users to profit from the ifrastructure provided by WordPress, while beig able to tailor the uderlyig model to their eeds rather tha havig to work aroud the limitatios of a core model origially desiged for bloggig sites. Sectio 2 discusses support for ed-user developmet of data-itesive web sites. The core model of WordPress is preseted i Sect. 3 ad a extesio to support ER models i Sect. 4. I Sect. 5, we detail the cocept of meta-plugis ad demostrate their use i Sect. 6. Cocludig remarks are give i Sect. 7. 2 Backgroud Nowadays, may professioal as well as private web sites are developed by sigle users, either as ed-users or developers with a small amout of techical kowledge combied with some desig skills. I lie with research o ed-user developmet, it is therefore importat to cosider how to make web iformatio systems ot oly easy to use, but also easy to develop []. Withi the web egieerig research commuity, model-drive approaches to web site developmet such as [2 4] have bee advocated strogly. These methodologies offer systematic approaches based o models defiig the structural, avigatioal ad presetatio aspects of a web iformatio system. I the case of WebML [2], a developer desigs a ER data model, followed by avigatio ad presetatio models. The associated tool Web Ratio 8 ca the geerate ad deploy the applicatio. While model-drive approaches are powerful ad ca geerate complex web sites with little or o programmig by the developer, they are ot targeted at ed-user developmet sice they still require detailed kowledge of the models ad how the web fuctios. Rather, they were aimed at supportig teams of developers where there should be a clear separatio of cocers betwee database developers, web architects, programmers ad desigers. Ed-users typically use a platform that offers documet-based cotet publishig ad allows users to desig their web sites by cofigurig the cotet ad structure of the site i terms of geeral publishig uits ad presetatio styles. Popular platforms iclude WordPress ad Drupal 9. 6 http://wordpress.org/exted/plugis/wp-e-commerce 7 http://buddypress.org 8 http://www.webratio.com 9 http://drupal.org

A Meta-Plugi for Bespoke Data Maagemet i WordPress 3 I the case of WordPress, the core model was targeted at bloggig sites ad the cotet is orgaised i terms of the two basic textual publishig uits posts ad pages that ca be eriched with media. Further, WordPress users ca employ a desig-by-example approach [5] by selectig oe of may web site themes developed ad shared by the user commuity. This combiatio of a simple model ad desig-by-example eables users to set up a bloggig site ad start producig cotet withi miutes. A major beefit of such a platform is that both the cofiguratio ad cotet of a web site ca be updated dyamically. While Drupal is less bloggig-specific, so called distributios provide pre-cofigured istallatios with similar support for settig up web sites. WordPress features a plugi mechaism with which the origial bloggig model ca be exteded i terms of additioal etity types, maagemet operatios ad user iterface widgets. A similar mechaism is preset i Drupal, allowig developers to budle reusable applicatio compoets ito modules. As a result, the developmet of web applicatios ot oly cosists of extedig ad cofigurig a basic iitial site with existig plugis or modules, but also optioally icludes the developmet of such extesios. Web iformatio systems usually have a data maagemet compoet ad some researchers have addressed the problem of ed-user developmet of dataitesive web sites. WYSIWYG applicatio editors [6, 7] have bee proposed to allow ed-users to specify custom data. For example, the editor preseted i [6] supports a top-dow approach where a user specifies the presetatio layer by creatig forms represetig domai etities. Based o these forms, a ER graph is extracted ad the correspodig database schema is created automatically alog with the presetatio views. Visual mashup editors such as MashMaker [8] ad Mash-o-matic [9] have bee desiged to create web iformatio systems by itegratig existig data sources. However, they do ot provide the basic ifrastructure to facilitate the desig of ew web iformatio systems. Drupal offers a module that supports the defiitio of custom data types, together with the geeratio of user iterfaces to maage data. Similar support is provided i WordPress through plugis 0. However, i both cases, custom data types are ot explicitly represeted i the database back-ed. WordPress plugis typically make use of a sigle key-value table per data type istace to attach attributes to idividual etities i a semi-structured maer. I Drupal, attribute declaratios ad values are represeted o a meta level usig two tables, oe cotaiig all declaratios ad aother cotaiig all values with refereces to the etities cotaiig these values. Note that the WordPress plugi refereced does ot support the associatio of etities. Drupal etities may referece each other by meas of dedicated attributes cotaiig etity idetifiers. This effectively realises a sigle geeric relatioship costruct rather tha eablig custom relatioships with costraits over source ad target etities. Furthermore, sice geeric relatioships are ot explicitly represeted i the database, referetial itegrity must be maitaied as part of the applicatio code. 0 e.g. Ultimate Post Type Maager: http://wordpress.org/exted/plugis/ultimatepost-type-maager

4 Stefaia Leoe, Alexadre de Spidler, Moira C. Norrie These approaches make it much more difficult to write applicatio-specific queries tha i the usual represetatio of ER models ad may lead to poor performace. Moreover, it is difficult to reuse ad exted custom types as the applicatio evolves ad to itegrate custom data with exteral systems. While plugis ad modules offer geeral extesio mechaisms ad developers could customise how they represet applicatio data, such extesios require programmig skills ad a deep uderstadig of the platform-specific programmig model. Cosequetly, their developmet is ot a suitable optio for ed-users. We decided to ivestigate ways i which platforms such as WordPress ad Drupal could be exteded to support the developmet of web iformatio systems with applicatio-specific data maagemet requiremets. I web iformatio system developmet, data requiremets are typically modelled usig a structured data model such as ER. The geeral idea is similar to the work i [0], where they itroduce a domai-specific laguage to support the geeratio of corporate web sites o top of popular wiki software. The approach that we adopted was to build o the powerful cocept of plugis i WordPress ad produce a meta-plugi that ca geerate data maagemet plugis based o user-defied ER models. 3 WordPress Data Model I this sectio, we will have a detailed look at the cocepts supported by Word- Press ad its core data model. Note that, although the mai cocepts ad termiology are itroduced i a documet describig the WordPress Sematics, the details of the core data model ca oly be established by examiig the uderlyig database as well as extractig bits ad pieces from various articles i the WordPress documetatio []. Figure gives a coceptual overview of the WordPress core cocepts ad how they relate to each other. Image Tag Category paret Video Media m attached m m Post User authors Commets Publishig Uit Page paret Fig. : ER model of WordPress cocepts WordPress distiguishes betwee static ad dyamic cotet usig two types of publishig uit pages for static cotet ad posts for dyamic cotet. Whe http://codex.wordpress.org/wordpress Sematics

A Meta-Plugi for Bespoke Data Maagemet i WordPress 5 desigig a web site, pages are typically used for cotet that a fixed locatio withi a web site ad chages rarely. I the case of a bloggig site, this could be iformatio about the author. A page a title, cotet ad date. Cotet may be pure text, which is ofte eriched with HTML for structurig, or may also embed media, such as images, videos ad audio files. Pages are usually accessed over a avigatio meu ad ca exhibit ested structures. I cotrast, posts are used to publish ew cotet. Although the cotet of a idividual post is usually static, the collectio of posts is dyamic ad ofte preseted i reverse chroological order with oly the latest posts beig visible i promiet positios such as the home page. This meas that the locatio of a post withi a web site chages over time ad it becomes less ad less visible to the users. Similar to pages, a post a title, cotet ad date. Both pages ad posts may have commets, which ca be cofigured by the developer. To structure ad orgaise posts, users ca tag them or assig them to specific categories. Both tags ad categories are user-defied. While tags represet a flat, user-defied taxoomy, categories typically have a hierarchical structure. The categories may be used to provide further avigatioal structures withi a web site by creatig correspodig meu items ad showig oly posts belogig to that category o the associated web page. Details of the structure ad layout is cotrolled by the selected theme. While Fig. shows the view of the WordPress model preseted to ed-users, the iteral metamodel that would be used by the developers of plugis is somewhat differet as idicated i Fig. 2. We have based this developer model o the OMG Meta Object Facility (MOF) [2], where a model is represeted by meas of metamodel cocepts, model cocepts ad data. The first thig to ote is that while the ed-user model distiguishes the cocepts of posts ad pages, iterally these are both istaces of a geeral PostType i the M-2 metamodel. For the sake of clarity, we have therefore labelled the correspodig classes for these publishig uits as BlogPost ad Page i the developer model. A PostType defies a ame ad a list of attributes where Attribute is defied by a ame ad a type. The data model o level M- represets the WordPress core data model. Here, we focus o the various post types sice this is the extesio poit for data maagemet plugis. We have therefore shaded out the parts of the core model dealig with other cocepts such as taxoomies ad users o the left of the figure ad will ot deal with them i detail. WordPress actually offers five default post types for publishig cotet, which iclude attachmets (ay media file), revisios ad avigatio meus as well as pages ad blog posts []. Furthermore, developers are free to create customised post types for publishig cotet that is structured differetly. The desig of customised post types is doe programmatically ad WordPress offers a umber of methods i their API for the creatio ad registratio of such custom types. Techically, the desig of custom types is ecapsulated ad realised as plugis, which defie the data types as well as the associated behaviour ad presetatio. Plugis will be discussed i more detail i Sect. 5.

6 Stefaia Leoe, Alexadre de Spidler, Moira C. Norrie PostType Name List<Attribute> Name Type Attribute M-2 Metamodel Commet User commet authors IstaceOf TypeIstace Taxoomy Hierarchical Taxoomy Flat Taxoomy BlogPost Page Attachmet Course Label Paret IstaceOf Category IstaceOf Tag LabelL Date Title Cotet Excerpt Status Commet_cout Date Title Cotet Excerpt Status Commet_cout Paret Image Default PostTypes Title Descriptio Lecturer Locatio Time Custome PostTypes IstaceOf IstaceOf IstaceOf IstaceOf M- Model Tag: Web 2.0 BlogPost: Web 2.0 is a old buzzword User: Bill M-0 Data Fig. 2: WordPress developer model I the cetre of Fig 2, we show three of the five default post types, amely BlogPost, Page ad Attachmet. There are some iterestig differeces betwee pages ad blog posts that ca also be see i the model. Note that oly blog posts ca be associated with tags ad categories while oly pages ca be ested. O the M-0 level, we idicate actual data istaces such as a blog post about Web 2.0 with a image of a tag cloud as a attachmet. The article bee writte by a user amed Bill ad tagged with the term Web 2.0. Now cosider the case where a developer might wat to publish some structured data o a web site. For example, they might have the task of creatig a WordPress site to publish ad maage iformatio about courses offered by a uiversity. Rather tha tryig to maage the data about courses as text cotaied withi pages or posts, a developer could create a plugi defiig a custom post type Course as show i Fig 2. This post type is specifically targeted at publishig iformatio about uiversity courses, specifies attributes such as title, descriptio, time ad locatio ad is ivolved i a relatioship associatig courses with their lecturers. Our goal was to eable ed-users to create such plugis i the admiistrator iterface without requirig detailed kowledge of the iteral WordPress model or programmig effort. We did this by extedig the metamodel ad the cre-

A Meta-Plugi for Bespoke Data Maagemet i WordPress 7 atig a meta-plugi that could geerate plugis automatically based o a ER model defied by the ed-user through a form-style iterface. We will first detail the extesio to the metamodel before describig the meta-plugi. 4 WordPress Core Extesio for Supportig ER models Havig itroduced the WordPress core data model, we will ow show how the model ca be exteded based o user-defied ER models. We will preset the extesios usig the example of the course maagemet system. Assume the ER model for the system is as show i Figure 3. holds Lecturer Course m assists Teachig Assistat Lecture Exercise Sessio teaches Slides Exercise Sheet Exercise Solutio Attachmet Fig. 3: ER model of uiversity course maagemet Each course oe or more lecturers ad oe or more teachig assistats. A course a umber of lectures with associated slides. Each lecture may have a exercise sessio ad, for each exercise sessio, there are exercise sheets ad solutios. Also, a exercise sessio is taught by oe or more teachig assistats. Figure 3 also idicates how certai cocepts of the ER model relate to cocepts i the WordPress core model. Slides, exercise sheets ad solutios are sub-etities of Attachmet which is shaded to idicate that this is a cocept of the core WordPress model show i Fig. 2. Figure 4 shows the exteded WordPress model usig MOF. O the metamodel level M-2, we have itroduced a umber of ew cocepts which complemet the core cocepts post type ad attribute with other cocepts of the ER metamodel. The PostType correspods to a etity type ad defies a umber of attributes. A EtitySet is used to maage etities of a specific PostType. Etity sets ca be related to other etity sets via -ary relatioships. A Relatioship defies a ame ad list of attributes as well as cardialities. While we amed the cardialities source ad target, it is simply a amig covetio sice relatioships are ot directed. These cocepts are used to istatiate a ER model o the M- level.

8 Stefaia Leoe, Alexadre de Spidler, Moira C. Norrie Cardiality micardiality maxcardiality Name Type Attribute PostType Name List<Attribute> IstaceOf EtitySet 0.. 0.... Name Members Relatioship Name List<Attribute> List<Cardiality> M-2 Metamodel TypeIstace IstaceOf Taxoomy Author List<Commet> Page BlogPost Custome PostTypes Attachmet Course Lecture Slides Title Course Number Title Date Title Image Default PostTypes MemberType MemberType MemberType EtitySets ad Relatioships Lecture Slides Courses Lectures Slides IstaceOf MemberOf MemberOf MemberOf M- Model Course: Iroductio to Databases Lecture: Itroductio Slides: Itroductio Slides M-0 Data Fig. 4: WordPress model with course extesio The WordPress data model for our course maagemet system is show o the M- level. For the sake of space, we oly show the additioal cocepts correspodig to the part of the ER model cotaied with the dashed lie i Fig. 3, i.e. courses, lectures ad slides. We also omit other parts of the core model such as the users ad taxoomies. Three ew post types Course, Lecture ad Slides have bee itegrated ito the WordPress model, with the type Slides as a subtype of Attachmet. Istaces of these types are maaged i the correspodig etity sets, amely Courses, Lectures ad Slides, as idicated by the MemberType associatio betwee post types ad etity sets. These etity sets are all istaces of the EtitySet o level M-0. The relatioships defied i the ER model ca be represeted usig regular relatioships betwee the etity sets. Note, however, that ER relatioships that defie attributes may be represeted as etities i their ow right that associate two etity sets. O the M-0 level, data objects are show. O the left, there is a course istace with the title Itroductio to Databases. The course a associated lecture object which represets the itroductory lecture of the course ad is associated to the itroductio slides o the right. These objects are istaces of the ewly defied post types ad members of the correspodig etity sets, as idicated by the IstaceOf ad MemberOf associatios.

5 Meta-Plugi A Meta-Plugi for Bespoke Data Maagemet i WordPress 9 We ow itroduce i detail the otio of a WordPress meta-plugi, which is a plugi that geerates ew plugis. The idea is similar to that of template-based programmig, for example i C++ [3] or XSLT [4]. The meta-plugi itroduces a ew data desig process ito the WordPress core. Istead of oly beig able to create pages ad posts, a user ca use the meta-plugi to defie a ER model specifyig applicatio data etities ad associatios. From the specified ER model, the meta-plugi geerates a bespoke plugi that the user simply to istall to create a data-backed for their web site. The geerated plugi will allow applicatio data to be created ad maipulated based o the defied structure. Of course, the plugi ca be used i combiatio with the powerful plug--play ifrastructure provided by Word- Press. This meas that the structure provided by the geerated plugi ca be exteded with additioal pages ad posts to refie the desig, either usig stadard WordPress fuctioality or by istallig additioal plugis. Sice all data etities are realised as post type istaces, they ca also be classified by meas of categories ad tags without additioal developmet effort. For the look-ad-feel, we rely o WordPress themes, which ca be used ad adapted by the user. Wordpress Core Wordpress Database Meta-Plugi geerates Bespoke Plugi Plugi Applicatio Logic maages Plugi Data M-2 Metamodel M- Model M-0 Data Fig. 5: Meta-plugi, plugi ad data Figure 5 gives a overview of our extesio. The WordPress metamodel extesio o level M-2 of Fig. 4 bee realised as a meta-plugi that exteds the WordPress core with ER modellig capabilities ad allows users to defie ER models through a graphical user iterface. Based o these user-defied ER models, the meta-plugi automatically geerates bespoke plugis that realise the user-defied ER models o the M- level. Agai, the geerated plugi exteds the WordPress core model, i this case, however, with a bespoke data model. I our example, that would be support for course maagemet. The bespoke plugi cosists of applicatio logic ad also a extesio to the WordPress database to maage the data of the geerated plugi. I our example, this would be data about courses, exercises, lecturers, assistats etc. The geerated applicatio logic offers fuctioality to create, maipulate ad also view this data. The meta-plugi as well as the geerated plugis are realised as regular WordPress plugis that ca be istalled through the WordPress admiistrator

0 Stefaia Leoe, Alexadre de Spidler, Moira C. Norrie iterface, i.e. the dashboard. Oce istalled, the meta-plugi exteds the Word- Press dashboard with fuctioality for ER modellig. More cocretely, it creates a meu item ER Modellig, with sub-meus to view ad create etity types, etity sets ad relatioships betwee them, as show i the meu bars o the left of Figs. 6 (a) ad (b). Usig these meus, the user ca create their ER model: Fig. 6 (a) shows the iterface for creatig a ew etity type ad Fig. 6 (b) for creatig a relatioship. I the curret example, a umber of etity sets have already bee created ad the user ca select the source ad target etity sets of the relatioship from the drop-dow meus. Oce the user defied a ER model, they ca trigger the geeratio process of the bespoke plugi usig the Geerate Plugi meu. The user to provide a plugi ame ad a descriptio. The geeratio of a bespoke plugi is the triggered. (a) (b) Fig. 6: Meta-plugi screeshots 6 Bespoke Plugi Geeratio As part of its plugi mechaism, WordPress offers a umber of hooks, which allow users to iject additioal fuctioality, data structures ad presetatio ito executio eviromet of the WordPress core. Hooks are plugi lifecycle evets such as their istallatio or uistallatio, as well as admiistrative or ed-user activities icludig the creatio, maipulatio, retrieval, selectio, display ad deletio of posts, pages or plugi-specific data. Typically, plugi code icludes fuctios for creatig ad deletig database tables, for isertig ad selectig table data ad the assigmet of these fuctios to particular hooks. To istall a plugi, the files cotaiig the plugi code eed to be uploaded ito the target WordPress platform through the dashboard. The availability of the plugi is the displayed to the user ad ca be activated. As a result

A Meta-Plugi for Bespoke Data Maagemet i WordPress of the activatio, the additioal fuctioality, data structures ad presetatio facilities become part of WordPress ad are available for immediate use. The meta-plugi preseted previously is a plugi capable of geeratig files which costitute bespoke plugis. The code cotaied i these files is created usig parametrised code templates istatiated with iformatio from the ER models. The geerated plugi ecapsulates fuctios for the creatio of custom types ad database relatios correspodig to the ER model, the extesio of the dashboard with fuctioality to create data accordig to the model ad fuctioality to preset this data. We will ow describe how these fuctios are boud to the WordPress hooks. O plugi istallatio, custom types ad database relatios eed to be created, ad the dashboard exteded with data creatio ad maagemet fuctioality. First, a fuctio is geerated, which uses the custom type registratio facility i order to register each etity type. As a result of such a registratio process, the dashboard is automatically exteded with the fuctioality to maage etity type istaces. The, for each etity type, etity set ad relatioship, fuctios cotaiig CREATE TABLE ad DROP TABLE statemets are geerated. $plugi.= "<?php $posttyperegistratio; register_activatio_hook(_file_, ".$."_activate ); fuctio ".$."_activate(){ global \$wpdb; \$wpdb->query( CREATE TABLE ".$tableame."( ID INT(6) PRIMARY KEY NOT NULL AUTO_INCREMENT, post_id BIGINT(20), ".$attributes."); ); }?>" <?php register_post_type( Course,$args); register_activatio_hook(_file_, coursemgt_activate ); fuctio coursemgt_activate(){ global $wpdb; $wpdb->query( CREATE TABLE course( ID INT(6) PRIMARY KEY NOT NULL AUTO_INCREMENT post_id BIGINT(20), title VARCHAR(45) ot ull, descriptio VARCHAR(256), locatio VARCHAR(45); ); }?> Fig. 7: Parameterised PHP Template Fig. 8: Geerated PHP File Figure 7 shows a excerpt of the PHP template used to geerate these fuctios. Upo template istatiatio, variable $posttyperegistratio is replaced by a code sippet that registers all the etity types defied i the ER model as custom types. The, a parametrised fuctio ivocatio of the activatio fuctio registratio is executed, where the activatio fuctio ame is passed as a strig, followed by a parametrised CREATE TABLE statemet.

2 Stefaia Leoe, Alexadre de Spidler, Moira C. Norrie I Fig. 8, we show a excerpt of the resultig code for our course maagemet plugi example. First, the course custom type is registered, followed by the registratio of the activate fuctio with the activatio hook. O plugi activatio, the fuctio coursemgt activate() is ivoked ad, as a first step, a database table for the course etity is created. Below, there is a excerpt of the relatioal model i the uderlyig Word- Press database after the activatio. The first relatio WP posttype is the Word- Press relatio used to store all post type istaces, be it pages, posts or custom post type istaces. The followig relatios Course, Sessio ad HasSessio have bee created upo plugi activatio. Wheever a ew etity, e.g. a course, is created, WordPress automatically geerates a ew tuple for the WP posttype relatio. I additio, our plugi creates a tuple i the Course relatio cotaiig all the course data values, with a foreig key to the WP posttype tuple. WP posttype (postid, title, cotet, date, posttype id, ) Course (courseid, postid, descriptio,) Lecture (sessioid, postid, title, date, ) HasLecture (id, courseid, sessioid) The relatio Lecture is used to maage lecture tuples ad, aalogously to the Course relatio, it defies the postid as a foreig key. The HasLecture relatio represets the relatioship betwee courses ad lectures. Note that, i the curret implemetatio, cardiality costraits are hadled i the applicatio logic ad, therefore, every ER relatioship is realised as a M:N relatioship. Moreover, etity sets are curretly represeted by all the tuples of a relatio ad, hece, a course etity is automatically a member of the Courses etity set. The coursemgt activate fuctio also cotais code that exteds the dashboard with a ew meu item ad sub-meus that offer support for the creatio ad maipulatio of etities, as well as the fuctioality to associate etities from oe etity set to etities from aother etity set as defied i the ER model. I the screeshot i Fig. 9, the admiistrator iterface of the geerated course maagemet plugi is show. The screeshot shows the iterface to create a ew course, by specifyig course title, course descriptio ad locatio. I additio, the iterface offers the possibility to relate the curret etity to other etities accordig to the data model. I the curret example, the geerated iterface offers the possibility to associate courses to lecturers ad assistats directly. Each time a ew etity is created, fuctios that are registered to the save post hook are ivoked. I our case, a fuctio save etity ifo is registered, which checks for the istace s post type, ad creates a etry i the correspodig database table. For each post type, code is geerated that specifies how the post type is displayed. I order to display data, the plugi registers a fuctio to the the post hook, which is ivoked whe data is loaded. The registered fuctio checks for the post type of the istace that is to be displayed. Based o that, the appropriate data is retrieved from the correspodig database table ad displayed

A Meta-Plugi for Bespoke Data Maagemet i WordPress 3 Fig. 9: Course maagemet admi Fig. 0: Course maagemet example accordig to the presetatio defied for that specific custom post type. Etity sets are curretly represeted as pages cotaiig a list of etities. Users ca click o ay etity to see a detailed view of the etity with all the attribute values. Also, for relatioships defied betwee etities, we provide liks i the etity detail view to avigate from oe etity to a associated oe. For the layout of the applicatio, the user ca use the regular WordPress themes to defie the look ad feel of their applicatio. Give the use of the the post hook, templates are kept completely idepedet of the post types. The screeshot i Fig. 0 shows the geerated course maagemet web site, i this case for the courses of our research group. Liks have bee created from the selected course to the lecturer ad assistat. Table provides a complete overview of all WordPress hooks ad meta- as well as bespoke plugi fuctios assiged to them. 7 Coclusio We have preseted a approach that complemets the rich web iformatio publishig ifrastructure provided by WordPress with support for applicatiospecific data maagemet requiremets. We pla to further ivestigate how the desig process ca be facilitated ad eriched, for example by itroducig the otio of compoet themes customised to a specific post type that ca be geerated ad composed to a overall theme. Havig tighteed the otio of relatioships withi WordPress, we are also begiig to distiguish kids of relatioships such as geeralisatio ad iclusio relatioships. Furthermore, we pla to exploit the fact that etity types, etity sets ad relatioships could be tagged ad categorised i WordPress. I this way, it would ot oly be possible to ehace WordPress with ER modellig capabilities, but also to ehace the ER model with WordPress cocepts.

4 Stefaia Leoe, Alexadre de Spidler, Moira C. Norrie Table : WordPress hooks ad high-level plugi fuctioality descriptios Hook Fuctioality Meta-Plugi Display admiistratio iterface Add support for the defiitio of etity types (admi meu) ad relatioships Bespoke Plugi Istallatio Create database relatios realisig the ER model (register activatio hook) Display admiistratio iterface Add support for the maagemet of etities (admi meu) ad relatioships Create post (save post) Isert attribute values ad relatioship tuples ito correspodig database relatios Display post (the post) Retrieve ad display data from correspodig database relatios Uistallatio Drop relatios created durig istallatio (register deactivatio hook) Refereces. Lieberma, H., Patero, F., (Eds.), V.W.: Ed User Developmet (Huma- Computer Iteractio Series). Spriger (2006) 2. Ceri, S., Fraterali, P., Bogio, A.: Web Modelig Laguage (WebML): A Modelig Laguage For Desigig Web Sites. Computer Networks 33(-6) (2000) 3. Heicker, R., Koch, N.: A UML-based Methodology for Hypermedia Desig. I: Proc. Itl. Cof. o the Uified Modellig Laguage (UML 2000). (2000) 4. Vdovják, R., Frăsicar, F., Hoube, G.J., Bara, P.: Egieerig Sematic Web Iformatio Systems i Hera. Joural of Web Egieerig (-2) (2003) 5. Lee, B., Srivastava, S., Kumar, R., Brafma, R., Klemmer, S.R.: Desigig with Iteractive Example Galleries. I: Proc. ACM Itl. Cof. o Huma-Computer Iteractio (CHI 200). (200) 6. Yag, F., Gupta, N., Botev, C., Churchill, E.F., Levcheko, G., Shamugasudaram, J.: WYSIWYG Developmet of Data Drive Web Applicatios. Proc. VLDB Edow. () (2008) 7. Karger, D.R., Ostler, S., Lee, R.: The Web Page as a WYSIWYG Ed-User Customizable Database-backed Iformatio Maagemet Applicatio. I: Proc. ACM Symposium o User Iterface Software ad Techology (UIST 2009). (2009) 8. Eals, R., Brewer, E., Garofalakis, M., Shadle, M., Gadhi, P.: Itel Mash Maker: joi the web. SIGMOD 36(4) (2007) 9. Murthy, S., Maier, D., Delcambre, L.: Mash-o-Matic. I: Proc. DocEg. (2006) 0. Díaz, O., Puete, G.: A DSL for Corporate Wiki Iitializatio. I: Proc. Itl. Cof. o Advaced Iformatio Systems Egieerig (CAiSE 20). (20). Wordpress.org: Wordpress Documetatio (202) http://codex.wordpress.org. 2. OMG: Meta Object Facility (MOF) Core Specificatio Versio 2.0 (2006) http://www.omg.org/cgi-bi/doc?formal/2006-0-0. 3. Prata, S.: C++ Primer Plus. 5th ed. SAMS (2005) 4. Grossiklaus, M., Norrie, M.C., Büchler, P.: Metatemplate Drive Multi-Chael Presetatio. I: Proc. Workshop o Multi-chael ad Mobile Iformatio Systems (WISEW 2003). (2003)