Description

The BioCASE UI is a search portal that can be used to query European ABCD and Darwincore providers. It has been developed within the Synthesys European project, as a new portal to access European data. The portal is based on the prior work done by the BioCASE interface project. You can also try this portal.

The new BioCASE/EDIT portal provides two kinds of search for the units level:

  • a "simple search" allows you to perform a search based on scientific names
  • an "advanced search" allows you to perform a search based on scientific names, common names, collector names, or family names. It also enables you to restrict your search by choosing institutions, collections, countries, localities and multimedia contents.



Installation


Needs:

  1. some basic system/networking administration knowledge
  2. minor Python knowledges would be a plus
  3. a web server (Apache, IIS ...) (and administration rights) and the mod_python module if you use Apache (with libapache2 for Linux)
  4. a units sample database, structured like the SYNTHESYS slide databases (contact support@biocase.org to get a sample)
  5. a database sample for the auto­suggest feature (optional)

  6. The BioCASE UI requires the following:
    • Python (version >=2.4)
    • Cherrypy, a pythonic web application framework (2.2 <=version <= 3.0)
    • Kid templates are used (version >= 0.9.2)
    • Elementtree and setuptools are required too, and should be automatically installed with Kid
    • psycopg, a python module used to query Postgresql databases
    • pymssql, a python module used to query MS-SQL databases
    • MySQLdb, a python module used to query MySQL databases
    • pyexcelerator, a python module used to generate Excel files
    • libxml and libxslt
    • feedparser, to handle RSS feeds

    • You will also need local databases to query units level data (collection and observation). To get a sample, please contact us (support at biocase dot org).

    Modify the file site.py (in your python path, ie /usr/lib/python2.4/site.py or C:\Python24\site.py): replace the line 364 with encoding = "utf-8" (instead of encoding="ascii")



With the setup script:

Get the portal software sources from our
svn repository .

  1. download source from the svn
  2. rename the folder (choose your own name for the portal) and move it into your favourite directory
  3. open a command line editor, and go to your favourite directory
    Linux/Mac
       run "python setup.py"
    Windows
        run "C:\yourPythonPath\python.exe setup.py"
  4. answer each question to set the different parameters; you will be able to change/correct them in the configuration files if needed
  5. update your web server's configuration file with the proposed configuration lines
        Answer "no" to the question "Please indicate if the portal is for taxonomist" if you don't have a direct acces to the checklist databases
        Answer "no" to the question "Do you have a database with metadata, similar to the CORM database" if you don't have a CORM database of if you do not want to see registry information on the portal
  6. restart your web server
  7. test your installation (URL get displayed at the end of the configuration)

Configuration

The configuration parameters can be changes in the following files - be careful
  • webapp/configfile.cfg cherrypy and application general settings ; you should not change anything here except the URLs of the XSLTs
  • config/admin.ini specifies if the portal is for taxonomists or "normal" users and what SQL-module has to be used (mssql or mysql)
  • config/config.ini mail server properties, portal's name and location, thesaurus configuration file's location
  • config/logconf.ini logging properties
    Thesaurus configuration in webapp/static/xml:
  • references.xml the list of thesaurus with their official names and display names(user friendly), display references. The boolean "reference display='True'" specifies if the thesaurus has to be used for the current portal installation.
  • relations.xml the list of relations known by the different thesaurus, with user friendly names.
  • thesaurusList.xml the list of available thesaurus for the version for taxonomists; type=name of the thesaurus (must match the configuration's file name in TOQE) and the TOQE URL to access the service.
  • thesaurusListSimple.xml the list of available thesaurus for the simple version (author names and concepts will not be displayed); type=name of the thesaurus (must match the configuration's file name in TOQE) and the TOQE URL to access the service.
  • Your Apache configuration file httpd.conf should contain the following lines:

    #######
    #portal
    #The values of PythonInterpreter don't really matter, as long as they're different between the two Location blocks.
    ######
    <Location /appName>
    SetHandler mod_python
    PythonPath "['yourPath/appName']+['yourPath/appName/webapp']+['yourPath/appName/lib']+['yourPath/appName/log']+sys.path" PythonInterpreter appName
    PythonHandler mpcp
    PythonOption wsgi.cleanup cherrypy::engine.stop
    PythonOption cherrysetup serverStarter::configureServer
    PythonOption sys.path 'yourPath/appName/lib'
    PythonAutoReload Off
    PythonDebug Off
    </Location>

    For the suggestion tool:
    Note: PHP must be installed on the server associated to 'anURL'.
    An example of suggest.php can be found in /appName/webapp/static/php/dojotree/

    ProxyRequests off
    ProxyPass /suggest/ http://anURL/php/suggest/suggest.php
    ProxyPassReverse /suggest/ http://anURL/php/suggest/suggest.php

  • Known Problems

    • If you are using Python2.6, you might have to edit the __init__.py file from Kid:

      def import_template(name, encoding=None):
      """Import template by name.
      This is identical to calling `enable_import` followed by an import
      statement. For example, importing a template named foo using the normal
      import mechanism looks like this::

      import kid
      kid.enable_import()
      import foo
      This function can be used to achieve the same result as follows::
      import kid
      foo = kid.import_template('foo')
      This is sometimes useful when the name of the template is available only
      as a string.
      """
      enable_import()
      # mod = __import__(name)
      ## hack for python2.6
      filename = name
      name=os.path.splitext(filename)[0]
      parts=name.split(os.path.sep )
      mod,name=".".join(parts),parts[-1:]
      mod = __import__(mod,globals(),locals(),name)
      components = filename.split('.')
      ###
      # components = name.split('.')
      for comp in components[1:]:
      mod = getattr(mod, comp)
      if encoding:
      mod.encoding = encoding
      return mod
    • The new portal is permanently improved. Update it regularly from the svn.

    It has been tested on Windows XP Professional (SP 2), Debian 3.1 , and Ubuntu 6.06 LTS-8.10.
    As client browsers, Internet Explorer, Mozilla Firefox, Opera and Safari have been found OK.

    Download

    BioCASE portal 2 - with installation script