Skip to content

Latest commit

 

History

History
145 lines (92 loc) · 7.98 KB

README.md

File metadata and controls

145 lines (92 loc) · 7.98 KB

Research Object checklist evaluation service

Author: Graham Klyne (graham.klyne@zoo.ox.ac.uk)

The Research Object checklist evaluation service is a web server that performs checklist evaluation of Research Objects. See http://www.wf4ever-project.org/wiki/display/docs/RO+checklist+evaluation+API and http://www.wf4ever-project.org/wiki/display/docs/Checklist+traffic+light+API for more details.

Installation and deployment

Dependencies

  • Python 2.7.x
  • Linux/Unix type system. This software has not been tested under Windows, but may work.
  • Python pip utility
  • git command line tool (depending on the installation option used).
  • Commands are tested to run in a bash shell environment.
  • The sample scripts and example commands are written to run in a bash shell environment.
  • Pyramid web application framework (http://www.pylonsproject.org), installation of which is covered below. Development and testing has ben done with Pyramid version 1.4.2, but will hopefully also work with later versions.
  • Various other Python packages that are located and installed by the pip and setup.py utilities.

Installation overview

Installation instructions assume a terminal interface and a bash command shell.

The first step for installing the checklist service is to install RO Manager. Then some additional supporting code needs to be installed, and the web service deployed and activated.

In the instructions that follow:

  • software is the name of a directory where the Python virtual enviroment will be installed.
  • pyenv is the name of python virtual environmewnt used. This is also used to name a subdirectory of software that holds the virtual environment files.
  • workspace is the name of a workspace directory where the RO Manager software package is extracted (i.e., the ro_manager package is a subdirectory of this).

RO Mananger

This is just a summary of the RO Manager installation. More detailed explanations can be found in https://github.com/wf4ever/ro-manager/blob/master/src/README.md. The installation method suggested here uses git to pull the software from Github rather than installation from PyPI usimng pip. Either can be used, but with the suggested approach, it is easier to locate the shell scripts used to start the web service, the service log file, etc.

If not already existing, create the new virtual environment:

cd _software_
pip install virtualenv
virtualenv _pyenv_

Once created, to activate this environment (using name of enviroment used in the original virtualenv command:

source _pyenv_/bin/activate

Install the RO Manager software package from github:

cd _workspace_
git clone https://github.com/wf4ever/ro-manager.git ro-manager
cd ro-manager/src
python setup.py build
python setup.py install
ro-manager-test

Checklist evaluation web service instalation and deploymemt

First, ensure that the appropriate Python virtual environment is active; e.g.

source _pyenv_/bin/activate

The checklist evaluation service uses the Pyramid web application development framework (http://www.pylonsproject.org), which is installed thus:

pip install pyramid

To activate the checklist web service, go to the RO Manager source directory and issue the command shown:

cd _workspace_/ro-manager/src
source roweb/runroweb.sh

Wait for a couple of seconds, then:

cat roweb/roweb.log

The log file should be empty. If it is not, it usually contains error messages about a failure to start the web service.

At this point, the checklist service should to ready to receive HTTP requests on port 8080. Try starting a browser on the local machine, and displaying the page at http://localhost:8080 to confirm this.

Testing the deployed service

Using a browser on the local machione, browse to:

http://localhost:8080/evaluate/trafficlight_html?RO=http://sandbox.wf4ever-project.org/rodl/ROs/Y2Demo/&minim=http://sandbox.wf4ever-project.org/rodl/ROs/Y2Demo-test/workflow-experiment-checklist.rdf&purpose=ready-to-release

The browser should display a page looking something like this:

Checklist demo display

Checklist service source code overview

+- ro-manager  (top level of github project from https://github.com/wf4ever/ro-manager/)
   |
   +- src
   |  |
   |  +- MiscUtils (miscellaneous supporting utility functions code)
   |  +- iaeval (main checklist evaluation code)
   |  +- rocommand (main RO Mananger code, includes modukles for accessing Research Object)
   |  +- rowebv (web application to service checklist API and invoke the checklist service)
   |  |         (also has presentation logic for generating "traffic light" display)
   |  |
   |  +- checklist (mkminim utility to creare Minim models from spreadsheet description)
   |  +- roverlay (Overlay RO service)
   |  +- samples (sample code for developmenbt testing)
   |  +- spike (exploratory code snippets)
   |
   +- doc (user documentation for RO Mananger)
   |
   +- Minim (contains ontology for Minim model used to describe checklists)
   |
   +- Checklists (sample checklists used for testing, etc.)

The checklist web service main program is src/roweb/rowebservices.py, where function evaluate_rdf invokes the main checklist evaluation logic; functions evaluate_trafficlight_html and evaluate_trafficlight_json invoke checklist evaluation, but return HTML and JSON for trespectiuvely for a traffic light display. These functions all end up calling real_evaluate (via evaluate) to perform the actual checklist evaluation, which in turn calls checklist evaluation code from the iaeval package.

Creating checklist descriptions

Related Publications

  • Matthew Gamble, Jun Zhao, Graham Klyne, Carole Goble. MIM: A Minimum Information Model Vocabulary and Framework for Scientific Linked Data. IEEE eScience 2012 Chicago, USA October, 2012
  • Jun Zhao, Graham Klyne, Piotr Holubowicz, Raúl Palma, Stian Soiland-Reyes, Kristina Hettne, José Enrique Ruiz, Marco Roos, Kevin Page, José Manuel Gómez-Pérez, David De Roure, Carole Goble. RO-Manager: A Tool for Creating and Manipulating Research Objects to Support Reproducibility and Reuse in Sciences. The Second Linked Science Workshop at ISWC Boston, USA November, 2012
  • Kevin Page, Raúl Palma, Piotr Holubowicz, Graham Klyne, Stian Soiland-Reyes, Don Cruickshank, Rafael González Cabero, Esteban García, David De Roure Cuesta, Jun Zhao, José Manuel Gómez-Pérez. From workflows to Research Objects: an architecture for preserving the semantics of science. The Second Linked Science Workshop at ISWC Boston, USA November, 2012
  • Jun Zhao, Graham Klyne, Matthew Gamble and Carole Goble. A Checklist-Based Approach for Quality Assessment of Scientific Information. LISC2013: 3rd International Workshop on Linked Science at ISWC 2013 in Sydney (http://linkedscience.org/events/lisc2013/)

Acknowledgement

Wf4Ever project

This software has been developed by University of Oxford as part of the Wf4Ever project.


Creative Commons License
This work is licensed under a Creative Commons Attribution 2.0 UK: England & Wales License.