Steve McKeever wrote: > Hi Andrew, > For the Progress in Biophysics focused issue I need to say something > about both PCEnv and the CellML API. David Nickerson has sent me the > links to the API files but there doesn't seem to be much usable > documentation. Any suggestions? The CellML API documentation is currently inline in the IDL (i.e. the interface is supposed to be self-documenting). It would be useful to also produce a document (similar to the W3C DOM specification) that moves this into a formatted document, but we don't have anything like that yet.
The best link for the API specification would be: https://svn.physiomeproject.org/svn/physiome/CellML_DOM_API/trunk/interfaces/CellML_APISPEC.idl This is the product of collaboration with the CellML community to produce an API which everyone is happy with. Efforts have been made to make the comments in the IDL produce a specification which is as unambiguous as possible. If you can find anything in there which you think is ambiguous, or which is written in confusing language, please bring it up on the [email protected] mailing list, so it can be cleared up. Note that the CellML API is divided roughly into modules: Core: The above IDL file. This contains everything needed to work with CellML documents by traversing through them. CellML Events: https://svn.physiomeproject.org/svn/physiome/CellML_DOM_API/trunk/interfaces/CellML_events.idl . This allows event consumers to register to receive notifications when certain parts of the underlying CellML model gets changed. The above two modules are the only 'mandatory' modules in the CellML DOM API implementation written at the Bioengineering Institute, others must be turned on with --enable- flags at configure time. CellML Context: https://svn.physiomeproject.org/svn/physiome/CellML_DOM_API/trunk/interfaces/CellML_Context.idl . This keeps track of a hierarchy of models, as well as generalised annotation data, and the tools / services which are open. This allows multiple tools to inter-operate on a single system, with a single list of open models. CCGS: https://svn.physiomeproject.org/svn/physiome/CellML_DOM_API/trunk/interfaces/CCGS.idl . This service generates C code for a CellML model. CIS: https://svn.physiomeproject.org/svn/physiome/CellML_DOM_API/trunk/interfaces/CIS.idl . This service integrates CellML models (representing systems of ODEs). I have developed implementations of all of the above interfaces. I have also implemented the W3C DOM level 2 (core and events), and W3C MathML DOM, because these are included by reference from the CellML API specification, and this code is also in the CellML_DOM_API source tree. The implementation: 1) Is implemented using a mapping called the Physiome C++ Mapping (PCM). This mapping could do with more documentation (there isn't much yet). You can look at the tests in https://svn.physiomeproject.org/svn/physiome/CellML_DOM_API/trunk/tests/CellMLTest.cpp for an example of the mapping. The code which maps IDLs into C++ can be found in https://svn.physiomeproject.org/svn/physiome/simple_interface_generators/trunk/omniidl_be/simple_cpp/cxxheadergen.py (which calls methods from omniORB's omniidl framework, as well as from other files in the same directory). 2) Can be accessed across CORBA, because there is a PCM <=> CORBA C++ mapping bridge. This is used to allow PCEnv to access the CellML API, and is also used to provide the "Procedural code" service on the CellML website (for an example, see http://www.cellml.org/models/beard_2005_version01/pmr_view_model_code). Regarding PCEnv: The PCEnv manual is primarily targeted at users. You can see it by downloading the latest binary snapshot (traverse down from ftp://ftp.bioeng.auckland.ac.nz/pub/physiome/pcenv/snapshots, the subdirectory you go into depends on what platform you are running), and accessing Manual on the Help menu of PCEnv. You could alternatively grab the manual https://svn.physiomeproject.org/svn/physiome/pce/trunk/chrome/content/help/manual.html, although the stylesheet reference will be wrong so the page will look different. Best regards, Andrew _______________________________________________ cellml-discussion mailing list [email protected] http://www.cellml.org/mailman/listinfo/cellml-discussion
