IS-ENES – WP 3

D 3.1 – Report on v.E.R.C. Portal Setup and Status

Abstract:

Grant Agreement Number: 228203 Proposal Number: FP7-INFRA-2008-1.1.2.21 Project Acronym: IS-ENES Project Co-ordinator: Dr Sylvie JOUSSAUME

Document Title: Report on v.E.R.C. Portal Setup and Status Deliverable: 3.1 Document Id N°: Version: 1.0 Date: 07.09.2010 Status:

Filename: Report on v.E.R.C. portal setup and status Authors: K. Ronneberger, T. Weigel, S. Kindermann, J. Biercamp

Project Classification: Public

Approval Status Document Manager Verification Authority Project Approval

Status: Final version

This document is produced under the EC contract 228203. It is the property of the IS-ENES project and shall not be distributed or reproduced without the formal approval of the IS-ENES General Assembly

REVISION TABLE

Modified Modified Version Date Comments Pages Sections 0,5 Aug, 18 Initial Version 1.0 Sep, 8 Revised version; reviewers: M. Juckes & G. Riley

Status: Final version

This document is produced under the EC contract 228203. It is the property of the IS-ENES project and shall not be distributed or reproduced without the formal approval of the IS-ENES General Assembly

Table of Contents

1 INTRODUCTION...... 1 2 PORTAL REQUIREMENTS AND ARCHITECTURE...... 2 2.1 REQUIREMENTS 2 2.2 PORTAL TECHNOLOGY AND ARCHITECTURE 2 3 CURRENT DEPLOYMENT SETUP OF THE V.E.R.C...... 4 3.1 PRODUCTION SERVER 1 3.2 ERROR RECOVERY 5 3.3 DEPLOYMENT PROCESS 5 4 STATUS AND FUNCTIONALITY OF THE V.E.R.C...... 6 4.1 STRUCTURE AND LAYOUT OF THE PORTAL 6 4.2 CONTRIBUTING CONTENT TO THE PORTAL 7 4.2.1 Presenting models and tools 8 4.2.2 Integrating Community Contributions 10 4.2.3 Hosting of “seemingly independent” 10 4.3 EXTENDING THE FRAMEWORK 11 4.3.1 Using Plone as a frontend for Pylons Web services 11 4.3.2 Bringing AJAX to Plone 12 4.4 INTER-CONNECTING CONTENT 12 4.4.1 The IS-ENES Search and Browse Facility 12 4.4.2 The “related-content-portlet” 13 4.5 INTEGRATING EXTERNAL SERVICES 14 4.5.1 Integration of the Data Portal 14 4.5.2 Integration of further services 15 5 SUMMARY AND/OR OUTLOOK ...... 16 6 ACRONYMS ...... 17

Status: Final version

This document is produced under the EC contract 228203. It is the property of the IS-ENES project and shall not be distributed or reproduced without the formal approval of the IS-ENES General Assembly

Executive Summary

This document describes the development and setup process as well as the status of the first version of the v.E.R.C. (virtual Earth system Resource Center) portal. As the portal is intended to become a community tool the focus in development and setup is placed in user-friendliness and usability as well as sustainability and easy maintenance. The portal is based on the /Plone framework, a well established and maintained open source content management and software, which has been extended and adapted to “Earth system modelling”-specific needs by own developments. The portal has been deployed and setup and can be accessed at the preliminary address http://plone.dkrz.de This first version of the portal acts as a skeleton, which outlines the possibilities and services offered by v.E.R.C.. In a next step it will be filled with content and tested by users from the Earth system modelling community, to outline the further course of development.

Title: Report on v.E.R.C. Portal Setup and Status Version: 1.0 1 INTRODUCTION

The v.E.R.C portal shall provide a platform for an integration and dissemination of tools and data for the sake of the Earth system modelling (ESM) community as well as potential external users, e.g. the impact community. A prototype of the portal has been set up, featuring a tentative content tree that reflects the principal pillars of the Earth System Modelling infrastructure: The models, the data, the computing facilities and the modelling community itself. This document focuses on conceptual and technical design issues and on the implementation of the underlying framework for the portal and the services deployed through it. Approaches to enable and foster community building and community involvement are highlighted. To ensure that the portal really meets the needs of the ENES community, it is essential to establish it as a community tool. This means that the portal had to be set up in a way so that the presented information, downloads, and services are not only comfortably accessible and usable, but also easily contributed to, extended and managed by the community. Based on an analysis of these requirements and an evaluation of the suitability of available technology choices the Zope/Plone1 framework was selected as the technological framework for the portal. Zope/Plone is well established and maintained open source content management and web framework software. As a first step add-ons were developed, that extend the framework to meet the needs of the community. These add-ons support easy contribution of content, specific to the Earth system community and provide an automatic way to highlight connections between different pieces of information presented through the portal and guide a potential user through its contents. As a demonstration how external services can be integrated into this framework, the data portal services for the distributed ESM archive, developed and maintained in SA2/JRA4, were implemented. The “generation 0” version of the portal is deployed and accessible at http://plone.dkrz.de, future generations will be accessible at an enes.org subdomain.

1 http://www.plone.org

Status: revised version 1

This document is produced under the EC contract 228203. It is the property of the IS-ENES project consortium and shall not be distributed or reproduced without the formal approval of the IS-ENES General Assembly

Title: Report on v.E.R.C. Portal Setup and Status Version: 1.0 2 PORTAL REQUIREMENTS AND ARCHITECTURE

The Portal design started with requirements collection and analysis as well as an evaluation of available technology choices. The results are collected in two IS-ENES internal documents: • IS-ENES service specification2: requirements collection of the individual IS-ENES work packages on the portal • IS-ENES NA2 delivery plan3: portal requirements and first architecture with evaluation of some technology choices

The following section summarizes the key requirements motivating the technology chosen as well as the overall portal architecture.

2.1 REQUIREMENTS

• The portal makes content as well as services accessible to users, thus on the one hand it acts as a content management system and on the other hand as an integration framework for generic (web) services. In particular, the services developed within the IS-ENES project, which, e.g. provide access to the distributed ESM data archive, have to be integrated. • Managing portal content is a community effort, thus easy to use web-based content management has to be supported. This also implies support for flexible, role-based user access rights and editing workflow management. • The portal should provide a long term community building and integration perspective, thus the underlying technology framework should provide sustainability. The framework development should best be based on a large open source developer community. Additionally, the possibility should exist to get commercial support from companies that are specialised in providing services around this framework. • The portal should enable rapid prototyping and feature development to be able to flexibly react on user as well as service integration requirements. • The portal is developed as an every-day-tool for earth system modellers and should accordingly provide an appropriate level of service. We aim for guaranteed availability of approx. 95% during European office hours and approx. 75% outside office hours. Thus the setup and the underlying framework should be modular and easily maintainable.

2.2 PORTAL TECHNOLOGY AND ARCHITECTURE

A large variety of content management systems and web frameworks is available based on different technology and programming languages. To enable short development cycles the technology evaluation concentrated on scripting language (e.g. Python, PHP, Ruby, ..) based frameworks. Given the fact that Python is the most often used scripting language in the European climate community and that development efforts in the European Metafor4 project as well as the international ESG-CET heavily rely

2 https://is.enes.org/the-project/internal_collaboration/na2/isenes_jra4_tasks_v1_0.pdf/view 3 https://is.enes.org/the-project/internal_collaboration/na2/isenes_NA2_wp_v1_1_JoB.doc/view 4 http://metaforclimate.eu Status: revised version 2

This document is produced under the EC contract 228203. It is the property of the IS-ENES project consortium and shall not be distributed or reproduced without the formal approval of the IS-ENES General Assembly

Title: Report on v.E.R.C. Portal Setup and Status Version: 1.0 on Python, Python is a logical choice for the IS-ENES portal and the underlying web framework. As a result of the technology evaluation the open source content management system Plone was chosen as well as its underlying ZOPE5 framework. The following facts characterize the main arguments for Plone: • Plone is one of the largest open source projects (in top 2% of all open source projects worldwide) • There are many commercial service and solution providers for Plone (more then 300 providers in 57 countries) • Plone has the best security track record of any major content management system • The Plone community provides and maintains a large collection of add-on products for Plone

During the development phase of specific IS-ENES Plone add-ons, especially services based on advanced Web 2.0 features and AJAX (see 4.4), a pure Plone/ZOPE web platform was shown to be too restrictive and inflexible. Additionally the integration of modern web service gateway interface (WSGI) based middleware components is difficult. Related projects (e.g. the Metafor EU FP7 project) are in the phase of developing functionality based on WSGI python middleware, which has to be integrated into the IS-ENES portal in the future. As a result of these additional requirements, the portal framework was enriched with a modern WSGI compatible web framework (Pylons6), which will enable easy addition and integration of externally developed services and middleware components in the future. The resulting architecture of the portal framework is described in the next chapter.

5 http://www.zope.org 6 http://pylonshq.com

Status: revised version 3

This document is produced under the EC contract 228203. It is the property of the IS-ENES project consortium and shall not be distributed or reproduced without the formal approval of the IS-ENES General Assembly

Title: Report on v.E.R.C. Portal Setup and Status Version: 1.0 3 CURRENT DEPLOYMENT SETUP OF THE V.E.R.C.

Zope/Plone Internet HTTP Server Caching proxy (apache) (Squid)

WSGI application (e.g. Pylons)

Search service Triple Store Database (Tomcat) (Sesame) (PostgreSQL)

Figure 1 Component architecture of the v.E.R.C. portal 3.1 PRODUCTION SERVER The v.E.R.C. production server is deployed on a virtual machine running the CentOS7 on a server at DKRZ. Virtual machine based deployment enables easy migration and restart in case of system (e.g. hardware) problems. The basic architectural components are (see Figure 1): • HTTP Server: The Apache server acts as the central frontend to the web. Incoming HTTP requests are forwarded to the different internal components like a caching proxy server (Squid) deployed as a frontend to the Plone server and WSGI applications deployed in the Pylons web framework. Through this setup, all services are available at the same Internet domain name. • Zope/Plone: A standard Plone installation already includes the required Zope and a Python interpreter and works out-of-the-box. The Zope/Plone system is set up as a “ZEO Cluster” (Zope Enterprise Objects), allowing multiple Zope instances shared access to a central Zope Database. As yet, the current configuration consists of only one Zope instance. But in case of strongly increasing user requests, additional instances and corresponding load-balancing can be easily added. • WSGI application: Pylons is attached to the Apache server as a WSGI application. Supporting WSGI enables the easy integration of other WSGI middleware components (e.g. security handlers) in the future. The Metafor security middleware components are being developed in the form of WSGI components. • and Sesame: Semantic information is stored in a RDF database (a sesame8 triple store), running as a Servlet in an Apache Tomcat instance. Sesame offers various ways to store the bulk RDF data. In the current v.E.R.C. configuration, Sesame stores its information in flat files using native Java access methods. Only the native store offers RDFS inferencing out of the box, which is required by the search facilities. • Database Management System: Whereas Plone content management is based on its internal

7 http://www.centos.org 8 http://www.openrdf.org

Status: revised version 4

This document is produced under the EC contract 228203. It is the property of the IS-ENES project consortium and shall not be distributed or reproduced without the formal approval of the IS-ENES General Assembly

Title: Report on v.E.R.C. Portal Setup and Status Version: 1.0 storage system (the ZODB), some Plone deployed functionalities need to access conventional relational databases. This is enabled based on modern Object-Relational mapping technology (SQLAlchemy9). In the current deployment of the v.E.R.C portal a Postgres10 database is used to enable search functionality in the data portal part (see 4.5.1). In the future the database will also be used to enable user-specific information management by e.g. storing “shopping basket”-like content. • Caching Proxy: Squid11 acts as the local web request cache for the Zope/Plone subsystem, speeding up the content serving process in the production environment, thus providing scalability to future usage scenarios. The rules and terms for caching are configured via the freely available Plone Add-on product “CacheFu”12.

3.2 ERROR RECOVERY

Rapid recovery in case of failures is provided on the one hand by a XEN13 virtual machine based deployment of the production system (providing complete system snapshots). On the other hand the Plone/Zope internal database of the production server, containing all information to restore the current state of the portal, is packed once a month and backed up daily.

3.3 DEPLOYMENT PROCESS Current and future development of software components for the v.E.R.C., most importantly Plone add-on products and Pylons projects, follows a three-step approach. 1. Development and testing on the developer’s local machine or a local virtual machine. The environment on the local machines is a stripped-down version of the production and test servers. For example, the Apache HTTP server and the virtual hosting are not installed, and only some of the other in-house developments may be active. 2. When a component has been tested successfully on the local machine, it may be deployed on a specific test server. The test server is an up-to-date clone of the production server (i.e. the virtual machine), so that binaries of all in-house developments are present in their latest stable version. Thus, it can be used as a platform for integration testing. Although the infrastructure of Zope and Pylons offers automatic Unit Testing, in most cases manual tests are required as user interaction with the portal’s web sites cannot be adequately emulated. 3. Once a component works well with every other component on the test server, it may be deployed on the production server. Updates for software components (except for urgent bug fixes) are bundled and deployed in cycles to minimize downtime of the v.E.R.C. portal.

3.4 GOVERNANCE To guarantee quality of services and content of the portal, during the IS-ENES project, design decisions will be discussed within the verc-portal-team. Additionally, work-package leader telephone conferences will be used to resolve issues. Beyond the IS-ENES project the final authority for the portal content will probably rest with the ENES board. A management plan will be developed before the end of the IS-ENES project.

9 http://www.sqlalchemy.org 10 http://www.postgresql.org 11 http://www.squid-cache.org 12 http://plone.org/products/cachefu 13 http://www.xen.org

Status: revised version 5

This document is produced under the EC contract 228203. It is the property of the IS-ENES project consortium and shall not be distributed or reproduced without the formal approval of the IS-ENES General Assembly

Title: Report on v.E.R.C. Portal Setup and Status Version: 1.0 4 STATUS AND FUNCTIONALITY OF THE V.E.R.C.

A standard Plone site already offers a variety of useful functions and possibilities. Still, to adapt it to our needs different kind of customizations are necessary, ranging from changes in the layout over supporting and adding content to extending the standard functionality and adding external services. Adding content to the site is fundamentally different from extending the functionality of Plone. While the former is achieved through interaction with the web interface and typically performed by users and editors, the latter involves the engineering of standardized add-on components, so-called Plone Products. Plone Products are independent from particular Plone sites and thus reusable. The underlying technology is based on the Python setuptools14, the standardized system to encapsulate Python libraries. Among other things, setuptools resolves package dependencies and retrieves missing packages automatically from the central Python repositories. The automated configuration process offered by setuptools is also seamlessly integrated with Zope, so that installed products can be inspected, and re- or uninstalled through the Zope management . A large collection of existing products is available from the Plone.org site itself. The v.E.R.C. uses existing extensions e.g. to supply discussion forums, rich text articles or certain system features such as the cache configuration tool. All our following V.E.R.C-specific adaptations of the Plone Site are implemented in Plone Products to optimize reusability and maintenance. We use the web interface only for user interactions with the portal.

4.1 STRUCTURE AND LAYOUT OF THE PORTAL The structure and layout of the portal reflect the four main general objectives of the IS-ENES project: To foster • community building (‘community’), • model development (‘models’), • dissemination of model results (‘data’) • high-end simulations (‘computing’). In these sections information, services, downloads and community interactions to these topics and subtopics shall be collected, supported and motivated. To intuitively support this structure, each section is characterized by a different colour scheme. A schematic representation of this concept builds the interactive entrance to the v.E.R.C. portal (see Figure 2 or http://plone.dkrz.de ).

14 http://pypi.python.org/pypi/setuptools

Status: revised version 6

This document is produced under the EC contract 228203. It is the property of the IS-ENES project consortium and shall not be distributed or reproduced without the formal approval of the IS-ENES General Assembly

Title: Report on v.E.R.C. Portal Setup and Status Version: 1.0

Figure 2: Schematic view of v.E.R.C. sections and user services

4.2 CONTRIBUTING CONTENT TO THE PORTAL As stated earlier, in Plone, the complexity of HTML programming, content versioning, and permission management etc. is largely hidden from the common user. Adding, editing and managing content is done through the web via an intuitive web-interface, offering drop-down menus for available options and a WYSIWYG editor to create and edit the content. To publish information, specific classes called Content Types exist, ranging from simple pages, pictures or files over news items to complex types, such as questionnaires, registration forms and discussion forums. This differentiation of contributed content is useful in two ways; On the one hand it allows for a comprehensive and standardized content specific representation of the entered information, on the other hand it enables filtering of the content to highlight and present only specific types of content. The news portlet15 is a good example for the latter. It offers the user the immediate view on (and access to) all the latest news published on the site (see http://plone.dkrz.de, or Figure 3). A similar portlet presents upcoming events.

15 A portlet is a pluggable user interface software component that is managed and displayed in a web portal. It can be seen as a module of the portal layout that allows for presenting certain information or services more prominently to the user.

Status: revised version 7

This document is produced under the EC contract 228203. It is the property of the IS-ENES project consortium and shall not be distributed or reproduced without the formal approval of the IS-ENES General Assembly

Title: Report on v.E.R.C. Portal Setup and Status Version: 1.0

Figure 3 The news portlet informs the user about the latest news, published in the portal directly on its frontpage

4.2.1 Presenting models and tools In order to support the community to contribute content specific to Earth system modelling (such as their models and tools) on the one hand, and to provide comprehensive, standardized, and thus inter-comparable representations of these contents on the other hand we extended the available list of content types by the following newly created types: • Earth system model – describing a model, which represents the entire Earth system • Component model – describing a model, which represents a certain component or process of the Earth system • Tool – describing a software tool, that is used in or for Earth system modelling When creating content by using one of these content types, the user submits a detailed query form (see Figure 4), which requests the most basic information about the entity, such as the model/tool name, the responsible contact person and institute, representative publications and basic technical information (such as e.g. the components of an Earth system model).

Status: revised version 8

This document is produced under the EC contract 228203. It is the property of the IS-ENES project consortium and shall not be distributed or reproduced without the formal approval of the IS-ENES General Assembly

Title: Report on v.E.R.C. Portal Setup and Status Version: 1.0

Figure 4 The query form for the creation and editing of content of the type “Earth system model” As examples the forms have been filled for the ESM COSMOS (see http://plone.dkrz.de/models/earthsystem-models/cosmos or Figure 5) as well as the software tool CDO (http://plone.dkrz.de/computing/software-tools/cdo ) in the initial version of the v.E.R.C. Information on the other models and tools shall be entered by the responsible groups in the next phase. Of course this procedure can also be used for new models and tools to be adapted by the community in the future. Mechanisms are being evaluated (developed) to keep this information up to date once it has been submitted to the portal; e.g. via an ATOM feed that collects the information of the available webpages of the software components. All content entered in this way is automatically integrated in the IS-ENES Search and Browse Facility (see 4.4).

Status: revised version 9

This document is produced under the EC contract 228203. It is the property of the IS-ENES project consortium and shall not be distributed or reproduced without the formal approval of the IS-ENES General Assembly

Title: Report on v.E.R.C. Portal Setup and Status Version: 1.0

Figure 5 The view of the cosmos page, created by means of the content type “Earth system model”

4.2.2 Integrating Community Contributions

4.2.2.1 Information on related activities To allow for an easy way to present projects and other activities related to earth system modelling another additional content type called “scientific project” has been implemented. Partners of IS-ENES as well as external users use this to present their activity in a convenient and standardized way. Again, the information is sampled via a simple query form, presented through the portal and automatically included in the IS-ENES Search and Browse Facility (see 4.4). That way a visitor to the portal who is, for example, reading pages on a specific component model will automatically be provided with links to activities that make use of this model (similar to “cross-selling”, as for example expressed in the “you may also be interested in” functionality of online shops).

4.2.2.2 Discussion Forum The option to include discussion forums is implemented in order to foster community interaction via Ploneboard16, a Plone specific add-on. Already, in the development phase, a discussion forum is provided to discuss the structure and functionality of the portal (this is accessible from the Community section). Once the portal is publicly available it will be used for information exchange within the ESM community.

4.2.3 Hosting of “seemingly independent” websites For projects and activities that do not have or do not want to maintain their own webserver and content management system, the v.E.R.C. portal offers a basic web hosting service. All the newly created content types listed in 4.2.1 and 4.2.2.1 can either be published as simple content of the portal, or as an “independent web site within the v.E.R.C.”. The choice is made via a simple checkbox in the query form and can be changed back and forth as desired.

16 http://plone.org/products/ploneboard/

Status: revised version 10

This document is produced under the EC contract 228203. It is the property of the IS-ENES project consortium and shall not be distributed or reproduced without the formal approval of the IS-ENES General Assembly

Title: Report on v.E.R.C. Portal Setup and Status Version: 1.0 The hosted websites appear as completely independent Plone sites with all its possibilities. All kinds of Plone content types can be added, managed and edited in the familiar fashion. The navigation tree, the Plone search and the news- and events portlets include only those items which are published in and belong to the website. Only a small button, leading back to the main portal as well as the general design of the site (whose logo and title can be replaced), remind of its belonging to the portal. From the portal side, however, all information, news items etc. will appear as any other content published in the portal. This means, via the Plone search within the portal, users will find all content of these hosted websites, and news published on these websites will appear in the news portlet of the portal along with any other news item published in the portal. In contrast, the Plone search within a hosted website and its news portlet only cover content published in and thus relevant to the hosted website. As an example for the web hosting service, a simple web page for the ScalES (“Scalable Earth System Models” project funded by the German government) has been included in the community branch of the v.E.R.C. (see http://plone.dkrz.de/community/projects/scales or Figure 6). In the next step, the public website of the OASIS coupler will be transferred jointly by DKRZ (running the portal) and CERFACS (responsible for OASIS) to the v.E.R.C.

Figure 6: A view on the hosted website of the Scales project, created by means of the content type “scientific project”. The logo(s), the portal title and the navigation tree have been replaced by the project-specific elements.

4.3 EXTENDING THE PLONE FRAMEWORK The previously described extensions of Plone functionality are more or less standard customizations that solely use features, components and functions provided and supported by the Plone framework. Yet, some of the requirements on the v.E.R.C. are not realizable in the Zope/Plone framework or can only be implemented in an unsatisfactory way. Thus, the following functionality requires the extension of the Zope/Plone framework itself by additional components.

4.3.1 Using Plone as a frontend for Pylons Web services Support for web services using pure Zope/Plone is rather sparse. Although a technique called External Methods can be used to deploy web services17,18, using it for this task suffers a number of disadvantages.

17 https://www.dkrz.de/redmine/projects/verc-portal/wiki/HowToBuildPlonePlugins

Status: revised version 11

This document is produced under the EC contract 228203. It is the property of the IS-ENES project consortium and shall not be distributed or reproduced without the formal approval of the IS-ENES General Assembly

Title: Report on v.E.R.C. Portal Setup and Status Version: 1.0 Most importantly, installation of such web services cannot be fully automated using Plone Products. This turned out to be a major maintenance issue as the number of web services increased. The v.E.R.C. thus relies on Pylons to deploy web services. We developed a workable design pattern to attach web services to Plone in general. In our solution, we implemented a separate Plone Product to provide a user-friendly view on a Pylons web service. Such a Plone Product typically contains web page templates and a programmatic logic in Python to interpret user input and construct web service requests. The Python module also analyses the web service response and feeds it back to the website templates. In the v.E.R.C., this design pattern has been successfully used to implement the portlet displaying “related content” (see 4.4.2). It can be seen as a blueprint for the integration of other web service based extensions.

4.3.2 Bringing AJAX to Plone The default scenario underlying Plone and the previously explained web service views is that of static web pages. Dynamic web 2.0 pages which process and forward user input immediately require a combination of client-side JavaScript, running in the user’s browser, with asynchronous communication between browser and webserver (AJAX). Plone offers a framework to enable dynamic pages called Kinetic Style Sheets (KSS), which however lacks support for flexible web service integration. Therefore we implemented an AJAX-based solution for the v.E.R.C. It is a combination of native Plone techniques (page templates and JavaScript registry services) with the more generic web services available in Pylons. In line with current web development trends, we also decided to use JSON instead of XML as transport technology. Important advantages of JSON are reduced code complexity and faster processing by both client and server, and less communication overhead.

4.4 INTER-CONNECTING CONTENT One of the essential added values we intend to provide in the v.E.R.C. portal is to automatically create inter- connections and cross-references between the presented information. This means that the user should be guided to find exactly the content he is interested in without having to fight his way through information irrelevant to him. To offer this guidance the following two types of additional navigation have been developed and implemented in the portal.

4.4.1 The IS-ENES Search and Browse Facility As an addition to the conventional navigation of Plone, the IS-ENES search and browse facility is developed to provide access and advanced information discovery to ESM content in the portal. So far, the facility is used for content which is created with one of the content types presented in section 4.2.1 and 4.2.2.1. Whenever a user creates or edits such content, a separate Plone product harvests the form fields and stores some of the collected information in the triple store. The triple store is based on a conceptual model that defines certain information classes (i.e. “Organization”, “Component Model” etc.) and their relationships (e.g. “has members” ,“employs”, “uses” etc.). Thus the information is not just stored, but also structured and interconnected by means of a predefined logic (a formalised common understanding based on a conceptual model). The underlying conceptual model can be modified with minimal effort to incorporate new content types. The information in the triple store is used to populate a generic search and browse interface. Figure 7 shows an example screenshot of the interface which we will now use to explain the way a user performs a search: The general idea is that a search is constructed in the form of a grammatically simple sentence. In contrast to the free-text search (realized in the Plone search), where the user enters free sentences, in the semantic search (offered by the IS-ENES search and browse facility) such sentences will be built by the user with the portal’s own vocabulary. Such queries produce much more precise results than a free-text search may achieve. Guided browsing is supported in the same interface: by selecting and deselecting instances from the lists at the bottom of each box, the user will be guided through the available content. Each selection the user makes causes the displayed information to be immediately updated. In the example figure, the EC-Earth model has

18 https://www.dkrz.de/redmine/projects/verc-portal/wiki/SBATutorial Status: revised version 12

This document is produced under the EC contract 228203. It is the property of the IS-ENES project consortium and shall not be distributed or reproduced without the formal approval of the IS-ENES General Assembly

Title: Report on v.E.R.C. Portal Setup and Status Version: 1.0 been selected. Consequently, instead of displaying a list of all component models in the v.E.R.C., the list is limited to only those component models used by EC-Earth and the Earth system components described in these models. This works in other directions as well: Deselecting EC-Earth (that is, selecting the “any” wildcard) and selecting “atmospheric chemistry” in the rightmost column will provide the user with all component models simulating the “atmospheric chemistry” and all Earth system models using any of these component models.

Figure 7 The IS-ENES search and Browse facility (see description in the text)

4.4.2 The “related-content-portlet” Additionally to the IS-ENES search and browse facility, a further “cross-selling”-like guidance is offered to the user once she accesses one of the v.E.R.C.-specific content types. The “related-content-portlet” (see Figure 8) - placed beside each page of v.E.R.C.-specific content - displays information published in the portal that is related to the currently displayed ESM content. It is fed from the same database as the search facility and makes use of the same conceptual model, to select the relevant information. Clicking on any of the presented information, leads the user to the IS-ENES search and browse interface to guide her further in her specific question.

Figure 8 Related- content-portlet for EC-EARTH

Status: revised version 13

This document is produced under the EC contract 228203. It is the property of the IS-ENES project consortium and shall not be distributed or reproduced without the formal approval of the IS-ENES General Assembly

Title: Report on v.E.R.C. Portal Setup and Status Version: 1.0 4.5 INTEGRATING EXTERNAL SERVICES As motivated previously the Zope/Plone framework was chosen because of its implementation in Python, which enables relatively easy and smooth integration of internal python based services as well as proxies to external services. As a first and important sample case, the data services developed so far in JRA4 and SA2 of the IS-ENES project have been integrated into the v.E.R.C. portal.

4.5.1 Integration of the Data Portal The aim of the integrated data portal part is to provide access to the emerging distributed ESM data archive by providing users with information on data (metadata) as well as data access pointers. In collaboration with the SA2 and JRA4 IS-ENES packages the following Plone products were developed in order to integrate the basic services of the distributed ESM archive into the portal: • Distributed data browser: Data in the emerging distributed CMIP5 data repository is managed by so-called “data nodes” exposing web accessible and browsable catalogues providing information on the stored data products. These web access points are integrated into a Portal page, allowing users to browse the distributed catalogues from a single entry point. • Data search: To provide users a central search service across the distributed data nodes a search facility based on a simple database was developed and integrated as a Plone product. The database stores the information on available data products. A data catalogue harvester updates this information regularly based on the information of the data node catalogues. The architecture of the data portal is illustrated in Figure 9.

Status: revised version 14

This document is produced under the EC contract 228203. It is the property of the IS-ENES project consortium and shall not be distributed or reproduced without the formal approval of the IS-ENES General Assembly

Title: Report on v.E.R.C. Portal Setup and Status Version: 1.0

Figure 9 The v.E.R.C data portal architecture

4.5.2 Integration of further services The developments done to integrate specific data browse and search facilities provide a blueprint for future service integration into the v.E.R.C. portal in the IS-ENES project. Discussions of the integration of the evaluation portal, developed in JRA3, and services and tools, developed in JRA1/JRA2, have begun.

Status: revised version 15

This document is produced under the EC contract 228203. It is the property of the IS-ENES project consortium and shall not be distributed or reproduced without the formal approval of the IS-ENES General Assembly

Title: Report on v.E.R.C. Portal Setup and Status Version: 1.0 5 SUMMARY AND/OR OUTLOOK

A first version of the v.E.R.C. portal, containing the basic features and services has been developed, implemented and set up at the preliminary address http://plone.dkrz.de. As the portal is intended to act as a community tool, the focus of the development activities lies on enhancing the usability and usefulness of this web portal for the ENES community. For this, the adding and presenting of ESM-specific content has been optimized not only to be easily manageable and user-friendly for the editor, but also to make optimal use of the entered information in the portal. Not only the information itself is stored, but also its interconnecting logic, so that interconnections and cross-reference between the published information can be highlighted and used to guide the user according to her specific interest. A hosting services of “seemingly independent” websites is offered to support small community activities in presenting their work on the one hand, and use and connect this information in the portal on the other hand, strengthening the community interaction and interconnection. Furthermore, the data services developed so far in JRA4 have been seamlessly integrated in the portal. Browsing and searching of the CMIP5 data, stored in distributed data nodes in Europe, is enabled and supported. In the course of these developments and integration activities, blueprints have been extracted to show how to integrate further external services, those being developed, for instance, in JRA3 and JRA1/2, or even, in future, from users external to the IS-ENES project. In the next step, this first version of the portal will be used and tested by project and community members in order to evaluate the usefulness of this tool in everyday life and to find out about issues with the current system or additional requirements. The further development and refinement of the vERC will be guided by the experiences and feedback from this testing.

Status: revised version 16

This document is produced under the EC contract 228203. It is the property of the IS-ENES project consortium and shall not be distributed or reproduced without the formal approval of the IS-ENES General Assembly

Title: Report on v.E.R.C. Portal Setup and Status Version: 1.0 6 ACRONYMS

AJAX: Asynchronous JavaScript and XML, enabling technology for flexible web client-server applications Atom Feed: The Atom Syndication Format is an XML language used for web feeds, while the Atom Publishing Protocol (AtomPub or APP) is a simple HTTP-based protocol for creating and updating web resources. CDO: Climate Data Operators CMIP5: Coupled Model Intercomparison Project Phase 5 CMS: Content Management System COSMOS: COmmunity earth System MOdelS ENES: European Network for the Earth System Modelling ESG-CET: The Earth System Grid - Center for Enabling Technologies synonymous with ESG JSON: JavaScript Object Notation Plone: An open source content management system based on ZOPE Pylons: A flexible python based web framework supporting WSGI RDF: Resource Description Framework Triple Store: A database for RDF data Web 2.0: The recent trend for website design and web applications emphasizing information sharing, collaboration, social networking, interoperability and user-centered design. WSGI: Web Service Gateway Interface WYSIWYG editor: What-you-see-is-what-you-get editor ZOPE: Z Object Publishing Environment – an open source, python based, web application server ZODB: Zope Database

Status: revised version 17

This document is produced under the EC contract 228203. It is the property of the IS-ENES project consortium and shall not be distributed or reproduced without the formal approval of the IS-ENES General Assembly