Forums

F.A.Q. F.A.Q.    Register Register    Login Login    Home Home
Search Search
SBML Discussions » libsbml-development » Release of libSBML-3.3.0
Show: Today's Posts  :: Message Navigator
| Subscribe to topic 
Return to the default flat view Create a new topic Submit Reply
AuthorTopic
Sarah Keating


Posts: 413
Registered:
May 2004
Release of libSBML-3.3.0 20 Jan '09 19:16

--------------------
libSBML-3.3.0
--------------------

We are pleased to announce the release of libSBML-3.3.0 which is
available for download from

https://sourceforge.net/project/showfiles.php?group_id=71971&package_id=71670

This release contains the following:

* Dependency changes:

- Configuring and compiling libSBML with Java binding from sources
now requires Java version 1.5.0 or later. This was needed for
supporting virtual functions with covariant return types.

* New features:

- SBML Level 2 Version 4 support is now implemented.

- There is a new validator for checking the consistency of the
internal representation of a model. The need for this grew out of
the following situation. LibSBML classes representing SBML
components internally maintain all variables associated with
attributes from every Level/Version of SBML. This in fact makes
it possible to have an internal representation that is invalid
SBML. For example, one can create a Level 1 compartment in memory
with a 'spatialDimensions' attribute value of 2. This is invalid
for SBML Level 1, but previously, libSBML was only equipped to
catch this at the time the application attempted to write out the
internal representation. Until then, the (invalid) internal
representation could exist and confuse software applications. The
new validator can be called using the SBMLDocument class method
checkInternalConsistency(). As with all validators, errors are
logged in the SBMLErrorLog attached to the SBMLDocument.

- New methods getNumResources() and getResourceURI() are available
for the class CVTerm. These are convenience methods that allow
the user to determine how many resources are stored for the
particular term and to index into the values directly.

- Previously the error reported when the 'level' and 'version'
attributes on an SBMLDocument did not refer to a valid SBML
specification did not make the cause of the error clear. This
error should now be reported more clearly. Thanks to Lucian
Smith for noticing this.

- LibSBML was not reporting the use of invalid attributes on the
ListOfXXX classes as errors. This has now been fixed.

- The MATLAB language binding now correctly identifies the use of
the MathML <csymbol> 'delay' and provides the information to the
user in a similar fashion to <csymbol> 'time'.

- There is a new section in the user documentation for C++,
"Tutorial: Creating a complete model, from start to finish". This
describes the basics of constructing a model from scratch using
the libSBML API.

- [Tracker issue #2376930]
Validation rules 10401 and 10402 had not previously been
implemented. Thanks to Nicolas Rodriguez for reminding us.

- [Tracker issue #2183855]
Added methods to return the severity and category of the SBMLError
class as strings. Since the ErrorId is drawn from an enumeration,
returning the actual ErrorId or corresponding symbol did not see
useful. Instead, a getShortMessage function has been implemented
that returns a very brief description of the error.

- [Tracker issue #2136796]
There is now additional code to check the ordering of assignment
rules in a L1 or L2V1 model.

- [Tracker issue #2114473]
UnitDefinition has a new method, isVariantOfSubstancePerTime(),
which returns true if the unitDefinition is a variant of the SBML
predefined unit of 'substance' per the predefined unit of 'time'.
In other words, it returns true if, when multiplied by a unit of
'second', the resulting UnitDefinition is a variant of
'substance', meaning moles or items (and grams or kilograms from
SBML Level 2 Version 2 onwards) with only arbitrary variations in
scale or multiplier values. The method returns false if the
UnitDefinition is not a variant of 'substance' per 'time'.

- [Tracker issue #2086644]
Validation was crashing when checking the math/units of an
expression using a functionDefinition that had not been properly
defined. The code that caused the crash has been fixed and the
MathML reader now checks that a <math> element or the body of a
<lambda> element use appropriate tags as detailed in the schema
for the subset of MathML supported.

- [Tracker issue #2086608]
Added new methods to the ASTNode class. They are: removeChild(n)
which removes the nth child; replaceChild(n, node) which replaces
the nth child with the given node; and insertChild(n, node) which
inserts the given node into the list of children such that it
becomes the nth child. These methods all return an integer
indicating success (0) or failure (-1). Failure is only reported
if n exceeds the size of the node; invalid ASTNodes resulting from
the operation are not reported.

- [Tracker issue #2015847]
Each ListOfXXX class now has derived "get" methods that return an
object of the expected class. E.g.: ListOfEvents->get() returns
an Event *.

- [Tracker issue #2015847]
The clone method on each SBML component class now returns a
pointer to the appropriate class instead of the SBase * previously
returned.

- [Tracker issue #1862805]
The ListOf class has a new method "void ListOf::clear(bool
doDelete = true)". When doDelete is true, all the items in the
ListOf are cleared and deleted; doDelete is false, the items are
cleared from the ListOf but not deleted and the user is
responsible for deleting the items.

* Bug fixes:

- LibSBML could be built without an underlying XML parser if
--with-libxml=no is given whereas neither --with-expat nor
--with-xerces given when running the configure script, which
generated broken shared libraries.
Thanks to Giuseppe Aprea for reporting this problem.

- LibSBML was failing to check that the value of the
'spatialDimensions' attribute on a <compartment> was correct.
This is in fact a schema error. Thanks to Norihiro Kikuchi for
spotting this.

- The code that checks for AssignmentCycles was failing to check
for an assignment that referred to the subject of that assignment,
e.g., an assignment rule with variable "c" and math "2 * c", was
not returning an error. This is now fixed.

- The code that checks for AssignmentCycles was failing to check
for an assignment to a compartment that referred to the a species
concentration within that compartment. This is an implicit
reference to the compartment itself, since the concentration of
the species depends on the compartment value. This is now fixed.

- The SBMLWriter::writeSBML() function could create a zip file in
which an SBML file was stored with its path name. Thanks to
Florian Kamm for reporting this bug.

- A missing 'level' or 'version' attribute on <sbml> was not being
correctly reported.

- Fixed a memory leak in the assignment operator of the ListOf
class. Thanks to Sven Sahle for reporting this problem.

- [Tracker issue #2498694]
Fixed a typo in documentation. Thanks to Sven Sahle for reporting
this.

- [Tracker issue #2442566]
LibSBML incorrectly restricted the number of 'modified' date
elements that could be added to a ModelHistory element. This has
now been changed.

- [Tracker issue #2418883]
The SBML_formulaToString function was crashing if the ASTNode
passed to it was NULL. The code now catches this and returns an
empty string. Thanks to Lucian Smith for reporting this.

- [Tracker issue #2219230]
LibSBML-2.3.4 enabled a user to write an xml comment containing
information on the program being used to write the file. This
used functions setProgramName and setProgramVersion on the
SBMLWriter class. Whilst the documentation for libSBML-3.2
described this functionality; it was not in fact implemented.
This has been remedied.

- [Tracker issue #2209773]
libSBML couldn't be built with the Xerces 3.0.0 due to
incompatible API changes in Xerces 3. Fixed.

- [Tracker issue #2209729]
Fixed a problem where libSBML built with Xerces on Linux could
crash due to Xerces dereferencing a null pointer when parsing some
invalid SBML files. Thanks to Jordan Atlas for reporting this.

- [Tracker issue #2189194]
Fixed a crash when using bzip2-based compression. Thanks to
Florian Kamm for reporting this bug and providing a patch.

- [Tracker issue #2188734]
The sequence "&amp;" (a predefined entity reference of ampersand)
in an attribute value was wrongly converted to "&amp;#38;" when
libSBML used libxml2 as the underlying XML parser. This is now
fixed. Thanks to Chen Li for reporting this bug.

- [Tracker issue #2187684]
The unit checking code was not correctly interpreting the units of
a reaction id used as a ci element in a math expression. This is
fixed and tested.

- [Tracker issue #2157800]
When <csymbol> 'time' was used in a functionDefinition, it was not
being correctly considered as a numerical value. Fixed.

- [Tracker issue #2146714]
syncAnnotation() functions in SBase, Model, and SpeciesReference
class could internally delete an old annotation object (XMLNode*)
in an SBase object. This could lead to an invalid pointer to an
already deleted annotation object when syncAnnotation() functions
were internally invoked from getAnnotation() function. This is
now fixed. Thanks to Ralph Gauges for reporting the problem.

- [Tracker issue #2138670]
Conversion of an L1 model to L2 previously always produced
parameters and compartments with their 'constant' attributes set
to 'true'. Now the libSBML conversion code checks whether
parameters and compartments are the subject of rules, and if so,
sets their 'constant' attribute to 'false'. Thanks to Ralph
Gauges for reporting the problem.

- [Tracker issue #2136530]
When adding a child to an XMLNode marked as an 'end' node, the
XMLNode remained marked as an 'end' node. This caused incorrect
XML to be written out. This is now fixed. Thanks to Ralph Gauges
for reporting the bug.

- [Tracker issue #2130568]
The check for AssignmentCycles incorrectly reported non-existant
loops in some situations. This is now fixed. Thanks to Kieran
Smallbone for reporting it.

- [Tracker issue #2129044]
The writeRootFunction in the MathML writer was failing to output a
root function correctly when it had only one child; i.e., the
default degree value of 2 was being used. This is now fixed.
Thanks to Ralph Gauges for spotting this.

- [Tracker issue #2114500]
The Octave language binding failed to build under Cygwin. This is
now fixed.

- [Tracker issue #2086644]
The validation code would crash when checking the math/units of an
expression using a functionDefinition that had not been properly
defined. The code that caused the crash has been fixed.

- [Tracker issue #2082584]
Fixed a memory leak reported by Jonathan Cooper.

* Other changes:

- The Lisp binding code has been disabled from the configuration and
build systems because it no longer functions (and has not been for
quite some time). The code is still in the distribution because
we hope someone, someday will help get it working again.

- The configuration system now will automatically disable support
for reading/writing compressed SBML if the 'configure' script
cannot find the necessary libraries (zlib and bzip2). There is
also a configuration flag, --enable-compression, that can be used
to enable/disable both compression libraries in one go.

- The allowable values for an integer have been restricted to the
range of the standard 32-bit signed integer values (2147483647 to
-2147483648), as per the SBML specification.

- The Java API documentation has been substantially improved. Many
methods previous exposed should not have been, and many methods
lacked documentation due to glitches in the software used to
generate the Java documentation from the C++ source files. This
release corrects almost all of these errors. The Java docs are
now much closer to the intended API, although a few glitches
remain. A number of classes still remain poorly documented in
both the Java and C++ API documentation.

- There is now a mailing list (libsbml-team@caltech.edu) for the
core libSBML developers separate from the SBML Team mailing list.
People are still encouraged to post questions to the
sbml-interoperability and libsbml-development mailing lists, but
this new list allows us to advertise a direct contact address in
the libSBML documentation.

- [Tracker issue #2182856]
A CVTerm uses the 'metaid' attribute of the object it describes as
a reference. Since adding a CVTerm to an object that has no
'metaid' creates an empty <rdf:about> element, the addCVTerm
function will no longer add a CVTerm to an object that has no
'metaid' attribute set.

- [Tracker issue #2175098]
Unit validation was producing a 'dimensionless' unit with an
'exponent' of -1 and then failing to consider it equivalent to a
'dimensionless' unit with an 'exponent' of 1. The underlying code
no longer assigns an exponent of -1 to a 'dimensionless' unit and
the comparison code no longer considers the 'exponent' attribute
when comparing 'dimensionless' units. Thanks to Lukas Endler for
reporting this.

- [Tracker issue #2118126]
The getDerivedUnitDefinition() method always returned NULL for a
local parameter. Andreas Draeger requested that it return a
unitDefinition derived from the units attribute. This has now
been implemented.

- [Tracker issue #2082682]
The unit checking code was not dealing correctly with expressions
containing MathML <root> except in cases where exact integers were
involved. The code now reports situations where it is unable to
check the unit consistency due to non-integral exponents. Thanks
to Jonathan Cooper for reporting the problem.

***********************************************************************************

Please report any problems you encounter using libSBML either to the
mailing list libsbml-team@caltech.edu or using the issue tracker
for libSBML at

https://sourceforge.net/tracker/?group_id=71971&atid=942737

Thanks

Akiya, Mike and Sarah

____________________________________________________________
To manage your libsbml-development list subscription, visit
https://utils.its.caltech.edu/mailman/listinfo/libsbml-development

For a web interface to the libsbml-development mailing list, visit
http://sbml.org/Forums/

For questions or feedback about the libsbml-development list,
contact sbml-team@caltech.edu

      

SubjectPosterDate
Read Message   Release of libSBML-3.3.0  Sarah Keating20 Jan '09 19:16
Previous Topic:Conversion between levels/versions of SBML
Next Topic:Astnode can't be exported to SBML
Go to forum:
-=] Back to Top [=-

Powered by FUDforum. (Copyright Advanced Internet Designs Inc.)

Please use our issue tracking system for any questions or suggestions about this website.