- CDM Web Services
- Building Blocks & Data Flow
- Open Questions
- REST client in php
- Developer Resources
Development and implementation Notes for the CdmDataportal
The CdmDataPortal is being developed as a module for Drupal It runs on XML REST services provided by a CDM CommunityStore. These Webservices are based on the Cdm Remote API. The specific requirements of the CdmDataportal are documented by an inventory of the data access functions of the dataportal prototype.
Requirements to the data portal are documented on the following pages:
Portal-Modifikationen03b.doc (Cichoriea portal specific - only in german, sorry)
The PortalRequirements are gathered by the WP6 exemplar groups, mainly by creating 3 different mockup/prototype sites:
The current mockups for the 3 WP6 exemplar groups can be found here:
- Palmweb http://www.palmweb.org
* DipteraPortal http://cybertaxonomy.eu/dataportal/diptera/
CDM Web Services¶
See CdmApi for the currently implemented services.
The roadmap for the development of the dataportals can be found at CdmDataportalRoadmap
Building Blocks & Data Flow¶
In terms of the Drupal CMS":http://drupal.org/ a page is often diplaying the content of a single "node (= entity of information) or the data of many nodes aggregated in some way.
Blocks are small, self-contained units of information typically displayed in navigation areas or side areas of the page, but can be placed anywhere on the page. They provide small views of information that are embedded in the presentation of other nodes. Modules provide basic blocks used to display their content. Administrators can create new blocks based on existing blocks, or write PHP code to directly query and render content inside a block.
Names List [Page]¶
Page-URL: @ names @
The data portal always represents a specific view on the taxon names. Therefore the dataportal rather shows taxon concepts but just names. The names list may be quite lengthy, so a paging mechanism is required.
Lists all accepted taxa and synonyms as well as hybrid names. Culitvars are generally either accepted names or synonyms of a accepted taxon, thus tey are listed also.
Concept synonyms (sensu cases) are listed optionally
The presentation of excluded taxa is currently under discussion (Please contact Ralf Hand or Eckhard v. Raab-Straube)
Names used by different conceptual taxonomic views (concepts) given in alphabetical order.
Names which are not accepted and which do not have any concept or name relation to a accepted taxon will never occur in the list (state of the art in the Cichorieae Site).
Related accepted names are listed in a subsection (Accordion effect) which is shown after clicking on toggler button alongside the name. To improve performance this will be implemented with AJAX.
Names accepted by the current view:
are boldfaced (depending on the chosen layout theme)
are linked to the specific taxon page.
no expandable subsection
All names which are not accepted by the current view:
- are treated as synonyms and therefore these names are linked to either the according synonym page or to its entry in the synonymity of the accepted taxon.
- expandable subsection shows the accepted taxon.
Taxonomic Tree [Block]¶
Expandable Tree of the taxon hierachie as accepted by the current view.
Alternative conceptual views are indicated in the tree.
Switching to other views is possible
To be implemented using AJAX and some client based caching to avoid roundtrips and to boost performance.
Page-URL: @ taxon @
The taxon page gives detailed information on a taxon, it shows:
Full list of synonyms homotypic synonyms on top, followed by the heterotypic and finally followed by misapplied names. The list is historically ordered.
All facts associated with the very taxon concept and taxon name.
Page-URL: @ synonym @
Name with citations and reference to the valid taxon page.
A block showing statistics on the data. For more details please refer to #12
Where will annotations, comments, etc. be stored?¶
Create a Drupal node for every taxon name & taxon concept and let Drupal store the annotation. The big caveat of this approach is that annotations only will be available from the Drupal Portal. This could be overcome by a Ping mechanism, like the one which is used for Blogs, by which the CdmStore is notified about changes.
Store annotations in the CMD
REST client in php¶
The rest client which queries the CdmWebservices is implemented as a general drupal module. This module (cdm_api) provides a simple to use php api allowing to retrieve data from CdmWebservices which deliver data either in XML or JSON.
Links, taxon names, and other stuff for testing is found in the CDM Dataportal Bookmarks.
Which java script framework should we use in Drupal for dynamic page elements?
jQuery - it's the standard js framework in Drupal
Lightbox effects available as drupal modules:
mootools + moofx - used in the data portal prototype for the Accordion effects in the name list
prototype - used dataportal prototype for the protologue lightbox