public class CVTerm extends java.lang.Object
This class of objects is defined by libSBML only and has no direct equivalent in terms of SBML components. This class is not prescribed by the SBML specifications, although it is used to implement features defined in SBML.
The SBML Level 2 and Level 3 specifications define a simple
format for annotating models when (a) referring to controlled vocabulary
terms and database identifiers that define and describe biological and
biochemical entities, and (b) describing the creator of a model and the
model's modification history. This SBML format is a concrete syntax that
conforms to the guidelines of MIRIAM ('Minimum
Information Requested in the Annotation of biochemical Models',
Nature Biotechnology, vol. 23, no. 12, Dec. 2005). The format uses
a subset of W3C RDF (Resource Description Format). In order
to help application developers work with annotations in this format,
libSBML provides several helper classes that provide higher-level
interfaces to the data elements these classes include CVTerm
,
ModelCreator
, ModelHistory
, RDFAnnotationParser
, and Date
.
The SBML annotation format consists of RDF-based content placed inside an
<annotation>
element attached to an SBML component such
as Species
, Compartment
, etc. A small change was introduced in SBML
Level 2 Version 5 and SBML Level 3 Version 2 to permit
nested annotations: lower Versions of the SBML specifications did not
explicitly allow this. We first describe the different parts of SBML
annotations in XML form for SBML Level 2 below Version 5 and
SBML Level 3 below Version 2:
<SBML_ELEMENT +++ metaid="meta id" +++> +++ <annotation> +++ <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:dcterm='http://purl.org/dc/terms/' xmlns:vcard='http://www.w3.org/2001/vcard-rdf/3.0#' xmlns:bqbiol='http://biomodels.net/biology-qualifiers/' xmlns:bqmodel='http://biomodels.net/model-qualifiers/' > <rdf:Description rdf:about="#meta id"> HISTORY <RELATION_ELEMENT> <rdf:Bag> <rdf:li rdf:resource="URI" /> ... </rdf:Bag> </RELATION_ELEMENT> ... </rdf:Description> +++ </rdf:RDF> +++ </annotation> +++ </SBML_ELEMENT>
In the template above, the placeholder
SBML_ELEMENT stands for
the XML tag name of an SBML model component (e.g., model
,
reaction
, etc.) and the placeholder
meta id
stands for the element's meta identifier, which is a field available
on all SBML components derived from the SBase
base object class.
The dotted
portions are optional, the symbol
+++ is a placeholder
for either no content or valid XML content that is not defined by
this annotation scheme, and the ellipses
...
are placeholders for zero or more elements of the same form as the
immediately preceding element. The optional content
HISTORY
is a creation and modification history in libSBML, this is stored
using ModelHistory
objects.
The placeholder RELATION_ELEMENT refers to a BioModels.net qualifier element
name. This is an element in either the XML namespace
'http://biomodels.net/model-qualifiers'
(for model
qualifiers) or 'http://biomodels.net/biology-qualifiers'
(for
biological qualifier). Note that these namespace URIs are only labels,
and not actual Web locations, which means you cannot visit an address such
as 'http://biomodels.net/model-qualifiers'
in your browser or
try to have your application access it.
The URI is a required data value that uniquely identifies a resource and data within that resource to which the annotation refers. Again, being URIs, these do not refer to physical Web locations nevertheless, applications will often want a means of finding the resource to which a given URI refers. Providing the facilities for this task is the purpose of MIRIAM Resources, described in detail online at http://biomodels.net/miriam) and also in the paper 'MIRIAM Resources: tools to generate and resolve robust cross-references in Systems Biology', BMC Systems Biology, 58(1), 2007.
Finally, the following is the same template as above, but this time showing the nested content permitted by the most recent SBML specifications (SBML Level 2 Version 5 and Level 3 Version 2):
<SBML_ELEMENT +++ metaid="meta id" +++> +++ <annotation> +++ <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:dcterm='http://purl.org/dc/terms/' xmlns:vcard='http://www.w3.org/2001/vcard-rdf/3.0#' xmlns:bqbiol='http://biomodels.net/biology-qualifiers/' xmlns:bqmodel='http://biomodels.net/model-qualifiers/' > <rdf:Description rdf:about="#meta id"> HISTORY <RELATION_ELEMENT> <rdf:Bag> <rdf:li rdf:resource="URI" /> NESTED_CONTENT ... </rdf:Bag> </RELATION_ELEMENT> ... </rdf:Description> +++ </rdf:RDF> +++ </annotation> +++ </SBML_ELEMENT>
The placeholder
NESTED_CONTENT
refers to other optional RDF elements such as
'bqbiol:isDescribedBy'
that describe a clarification or
another annotation about the
RELATION_ELEMENT
in which it appears. Nested content allows one to, for example, describe
protein modifications on species, or to add evidence codes for an
annotation. Nested content relates to its containing
RELATION_ELEMENT,
not the other way around. It qualifies it, but does not change its
meaning. As such, ignoring a
NESTED_CONTENT
does not affect the information provided by the containing
RELATION_ELEMENT.
For more information about SBML annotations in general, please refer to Section 6 in the SBML Level 2 (Versions 2&ndash4) or Level 3 specification documents.
CVTerm
Annotations that refer to controlled vocabularies are managed in libSBML
using CVTerm
objects. The relation-resource pairs discussed in the
previous section are the 'controlled vocabulary' terms that CVTerm
is
designed to store and manipulate. A set of RDF-based annotations attached
to a given SBML <annotation>
element are read by
RDFAnnotationParser
and converted into a list of these CVTerm
objects.
Each CVTerm
object instance stores the following components of an
annotation:
CVTerm
class is concerned). Qualifiers are used in
MIRIAM to indicate the nature of the relationship between the object
being annotated and the resource. In CVTerm
, the qualifiers can be
manipulated using the methods CVTerm.getQualifierType()
,
CVTerm.setQualifierType(int)
, and related methods.
CVTerm
class, the
resource component can be manipulated using the methods
CVTerm.addResource(String)
and
CVTerm.removeResource(String)
.
Note that a CVTerm
contains a single qualifier, but possibly more than
one resource. This corresponds to the possibility of an annotation that
points to multiple resources, all of which are qualified by the same
BioModels.net qualifier. The CVTerm
object class supports this by
supporting a list of resources.
Detailed explanations of the qualifiers defined by BioModels.net can be found at http://co.mbine.org/standards/qualifiers.
Constructor and Description |
---|
CVTerm()
Creates an empty
CVTerm , optionally with the given
qualifier type . |
CVTerm(CVTerm orig)
Copy constructor creates a copy of a
CVTerm object. |
CVTerm(int type)
Creates an empty
CVTerm , optionally with the given
qualifier type . |
CVTerm(XMLNode node)
|
Modifier and Type | Method and Description |
---|---|
int |
addNestedCVTerm(CVTerm term)
|
int |
addResource(java.lang.String resource)
Adds a resource reference to this
CVTerm object. |
CVTerm |
cloneObject()
Creates and returns a deep copy of this
CVTerm object. |
void |
delete()
Explicitly deletes the underlying native object.
|
boolean |
equals(java.lang.Object sb)
Equality comparison method for CVTerm.
|
int |
getBiologicalQualifierType()
Returns the biological qualifier type of this
CVTerm object. |
SWIGTYPE_p_List |
getListNestedCVTerms()
|
int |
getModelQualifierType()
Returns the model qualifier type of this
CVTerm object. |
CVTerm |
getNestedCVTerm(long n)
|
long |
getNumNestedCVTerms()
|
long |
getNumResources()
Returns the number of resources for this
CVTerm object. |
int |
getQualifierType()
Returns the qualifier type of this
CVTerm object. |
XMLAttributes |
getResources()
Returns the resource references for this
CVTerm object. |
java.lang.String |
getResourceURI(long n)
Returns the value of the nth resource for this
CVTerm object. |
int |
hashCode()
Returns a hashcode for this CVTerm object.
|
boolean |
hasRequiredAttributes()
Predicate returning
true if all the required elements for this
CVTerm object have been set. |
CVTerm |
removeNestedCVTerm(long n)
|
int |
removeResource(java.lang.String resource)
Removes a resource URI from the set of resources stored in this
CVTerm
object. |
int |
setBiologicalQualifierType(int type)
Sets the biology qualifier
type of this
CVTerm object. |
int |
setBiologicalQualifierType(java.lang.String qualifier)
Sets the biology qualifier
type code of this
CVTerm object. |
int |
setModelQualifierType(int type)
Sets the model qualifier type
of this
CVTerm object. |
int |
setModelQualifierType(java.lang.String qualifier)
Sets the model qualifier
type value of this
CVTerm object. |
int |
setQualifierType(int type)
Sets the qualifier code of this
CVTerm object. |
public CVTerm(int type)
CVTerm
, optionally with the given
qualifier type
.
The SBML Level 2 and Level 3 specifications define a simple
format for annotating models when (a) referring to controlled
vocabulary terms and database identifiers that define and describe
biological and other entities, and (b) describing the creator of a
model and the model's modification history. The annotation content is
stored in <annotation>
elements attached to
individual SBML elements. The format for storing the content inside
SBML <annotation>
elements is a subset of W3C RDF
(Resource Description
Format) expressed in XML. The CVTerm
class provides a programming
interface for working directly with controlled vocabulary term ('CV
term') objects without having to deal directly with the XML form.
When libSBML reads in an SBML model containing RDF annotations, it
parses those annotations into a list of CVTerm
objects, and when
writing a model, it parses the CVTerm
objects back into the
appropriate SBML <annotation>
structure.
This method creates an empty CVTerm
object. The possible qualifier
types usable as values of type
are MODEL_QUALIFIER
and BIOLOGICAL_QUALIFIER
. If an explicit value for type
is not given, this
method defaults to using UNKNOWN_QUALIFIER
. The qualifier
type can be set later using the
CVTerm.setQualifierType(int)
method.
Different BioModels.net qualifier elements encode different types of relationships. Please refer to the SBML specification or the BioModels.net qualifiers web page for an explanation of the meaning of these different qualifiers.
type
- a qualifier type.
public CVTerm()
CVTerm
, optionally with the given
qualifier type
.
The SBML Level 2 and Level 3 specifications define a simple
format for annotating models when (a) referring to controlled
vocabulary terms and database identifiers that define and describe
biological and other entities, and (b) describing the creator of a
model and the model's modification history. The annotation content is
stored in <annotation>
elements attached to
individual SBML elements. The format for storing the content inside
SBML <annotation>
elements is a subset of W3C RDF
(Resource Description
Format) expressed in XML. The CVTerm
class provides a programming
interface for working directly with controlled vocabulary term ('CV
term') objects without having to deal directly with the XML form.
When libSBML reads in an SBML model containing RDF annotations, it
parses those annotations into a list of CVTerm
objects, and when
writing a model, it parses the CVTerm
objects back into the
appropriate SBML <annotation>
structure.
This method creates an empty CVTerm
object. The possible qualifier
types usable as values of type
are MODEL_QUALIFIER
and BIOLOGICAL_QUALIFIER
. If an explicit value for type
is not given, this
method defaults to using UNKNOWN_QUALIFIER
. The qualifier
type can be set later using the
CVTerm.setQualifierType(int)
method.
Different BioModels.net qualifier elements encode different types of relationships. Please refer to the SBML specification or the BioModels.net qualifiers web page for an explanation of the meaning of these different qualifiers.
type
- a qualifier type.
public CVTerm(XMLNode node)
CVTerm
from the given XMLNode
.
The SBML Level 2 and Level 3 specifications define a simple
format for annotating models when (a) referring to controlled
vocabulary terms and database identifiers that define and describe
biological and other entities, and (b) describing the creator of a
model and the model's modification history. The annotation content is
stored in <annotation>
elements attached to
individual SBML elements. The format for storing the content inside
SBML <annotation>
elements is a subset of W3C RDF
(Resource Description
Format) expressed in XML. The CVTerm
class provides a programming
interface for working directly with controlled vocabulary term ('CV
term') objects without having to deal directly with the XML form.
When libSBML reads in an SBML model containing RDF annotations, it
parses those annotations into a list of CVTerm
objects, and when
writing a model, it parses the CVTerm
objects back into the
appropriate SBML <annotation>
structure.
This method creates a CVTerm
object from the given XMLNode
object
node
. XMLNode
is libSBML's representation of a node in an XML tree of
elements, and each such element can be placed in a namespace. This
constructor looks for the element to be in the XML namespaces
'http://biomodels.net/model-qualifiers'
(for
model qualifiers) and
'http://biomodels.net/biology-qualifiers'
(for
biological qualifier), and if they are, creates CVTerm
objects for
the result.
public void delete()
In general, application software will not need to call this method directly. The Java language binding for libSBML is implemented as a language wrapper that provides a Java interface to libSBML's underlying C++/C code. Some of the Java methods return objects that are linked to objects created not by Java code, but by C++ code. The Java objects wrapped around them will be deleted when the garbage collector invokes the corresponding C++ finalize()
methods for the objects. The finalize()
methods in turn call the CVTerm.delete()
method on the libSBML object.
This method is exposed in case calling programs want to ensure that the underlying object is freed immediately, and not at some arbitrary time determined by the Java garbage collector. In normal usage, callers do not need to invoke CVTerm.delete()
themselves.
public boolean equals(java.lang.Object sb)
Because the Java methods for libSBML are actually wrappers around code
implemented in C++ and C, certain operations will not behave as
expected. Equality comparison is one such case. An instance of a
libSBML object class is actually a proxy object
wrapping the real underlying C/C++ object. The normal ==
equality operator in Java will only compare the Java proxy objects,
not the underlying native object. The result is almost never what you
want in practical situations. Unfortunately, Java does not provide a
way to override ==
.
The alternative that must be followed is to use the
equals()
method. The equals
method on this
class overrides the default java.lang.Object one, and performs an
intelligent comparison of instances of objects of this class. The
result is an assessment of whether two libSBML Java objects are truly
the same underlying native-code objects.
The use of this method in practice is the same as the use of any other
Java equals
method. For example,
a.equals(
b)
returns
true
if a and b are references to the
same underlying object.
equals
 in class java.lang.Object
sb
- a reference to an object to which the current object
instance will be comparedtrue
if sb
refers to the same underlying
native object as this one, false
otherwisepublic int hashCode()
hashCode
 in class java.lang.Object
public CVTerm cloneObject()
CVTerm
object.
CVTerm
object.public int getQualifierType()
CVTerm
object.
The RDF element used in the SBML format for referring to external entities
is <rdf:Description>
, with a
<rdf:Bag>
element inside of it containing one or more
<rdf:li>
elements. The following template illustrates
the structure:
<rdf:Description rdf:about="#meta id">   HISTORY   <RELATION_ELEMENT>     <rdf:Bag>     <rdf:li rdf:resource="resource URI" />     ...     </rdf:Bag>   </RELATION_ELEMENT>   ... </rdf:Description>In the template above, the placeholder meta id stands for the element's meta identifier, which is a field available on all SBML components derived from the
SBase
base object class. The dotted portions are
optional, and the ellipses ... are placeholders for zero or more elements of the same
form as the immediately preceding element.
The placeholder
RELATION_ELEMENT refers to a BioModels.net qualifier
element name. This is an element in either the XML namespace
'http://biomodels.net/model-qualifiers'
(for model
qualifiers) or 'http://biomodels.net/biology-qualifiers'
(for biological qualifier). The present method returns a code
identifying which one of these two relationship namespaces is being
used any other qualifier in libSBML is considered unknown (as far as
the CVTerm
class is concerned). Consequently, this method will return
one of the following values:
The specific relationship of this CVTerm
to the enclosing SBML object
can be determined using the CVTerm
methods such as
CVTerm.getModelQualifierType()
and
CVTerm.getBiologicalQualifierType()
. Callers will typically want to
use the present method to find out which one of the other two
methods to call to find out the specific relationship.
UNKNOWN_QUALIFIER
(the default).
CVTerm.getResources()
,
CVTerm.getModelQualifierType()
,
CVTerm.getBiologicalQualifierType()
public int getModelQualifierType()
CVTerm
object.
The RDF element used in the SBML format for referring to external entities
is <rdf:Description>
, with a
<rdf:Bag>
element inside of it containing one or more
<rdf:li>
elements. The following template illustrates
the structure:
<rdf:Description rdf:about="#meta id">   HISTORY   <RELATION_ELEMENT>     <rdf:Bag>     <rdf:li rdf:resource="resource URI" />     ...     </rdf:Bag>   </RELATION_ELEMENT>   ... </rdf:Description>In the template above, the placeholder meta id stands for the element's meta identifier, which is a field available on all SBML components derived from the
SBase
base object class. The dotted portions are
optional, and the ellipses ... are placeholders for zero or more elements of the same
form as the immediately preceding element.
The placeholder
RELATION_ELEMENT refers to a BioModels.net qualifier
element name. This is an element in either the XML namespace
'http://biomodels.net/model-qualifiers'
(for model
qualifiers) or 'http://biomodels.net/biology-qualifiers'
(for biological qualifier). Callers will typically use
CVTerm.getQualifierType()
to find out the type of qualifier relevant to this
particular CVTerm
object, then if it is a model qualifier, use the
present method to determine the specific qualifier.
Annotations with model qualifiers express a relationship between an annotation resource and the modeling concept represented by a given object in the model. The diagram below illustrates the relationship in this case:
The set of known model qualifiers is, at the time of this libSBML
release, the following:
Any other BioModels.net qualifier found in the model is considered
unknown by libSBML and reported as
BQM_UNKNOWN
.
BQM_UNKNOWN
(the default).public int getBiologicalQualifierType()
CVTerm
object.
The RDF element used in the SBML format for referring to external entities
is <rdf:Description>
, with a
<rdf:Bag>
element inside of it containing one or more
<rdf:li>
elements. The following template illustrates
the structure:
<rdf:Description rdf:about="#meta id">   HISTORY   <RELATION_ELEMENT>     <rdf:Bag>     <rdf:li rdf:resource="resource URI" />     ...     </rdf:Bag>   </RELATION_ELEMENT>   ... </rdf:Description>In the template above, the placeholder meta id stands for the element's meta identifier, which is a field available on all SBML components derived from the
SBase
base object class. The dotted portions are
optional, and the ellipses ... are placeholders for zero or more elements of the same
form as the immediately preceding element.
The placeholder
RELATION_ELEMENT refers to a BioModels.net qualifier element
name. This is an element in either the XML namespace
'http://biomodels.net/model-qualifiers'
(for model
qualifiers) or 'http://biomodels.net/biology-qualifiers'
(for biological qualifier). Callers will typically use
CVTerm.getQualifierType()
to find out the type of qualifier relevant to
this particular CVTerm
object, then if it is a biological qualifier,
use the present method to determine the specific qualifier.
Annotations with biological qualifiers express a relationship between an annotation resource and the biological concept represented by a given object in the model. The diagram below illustrates the relationship in this case:
The set of known biological qualifiers is, at the time of this
libSBML release, the following:
BQB_IS
BQB_HAS_PART
BQB_IS_PART_OF
BQB_IS_VERSION_OF
BQB_HAS_VERSION
BQB_IS_HOMOLOG_TO
BQB_IS_DESCRIBED_BY
BQB_IS_ENCODED_BY
BQB_ENCODES
BQB_OCCURS_IN
BQB_HAS_PROPERTY
BQB_IS_PROPERTY_OF
BQB_HAS_TAXON
Any other BioModels.net qualifier found in the model is considered
unknown by libSBML and reported as
BQB_UNKNOWN
.
BQB_UNKNOWN
(the default).public XMLAttributes getResources()
CVTerm
object.
The RDF element used in the SBML format for referring to external entities
is <rdf:Description>
, with a
<rdf:Bag>
element inside of it containing one or more
<rdf:li>
elements. The following template illustrates
the structure:
<rdf:Description rdf:about="#meta id">   HISTORY   <RELATION_ELEMENT>     <rdf:Bag>     <rdf:li rdf:resource="resource URI" />     ...     </rdf:Bag>   </RELATION_ELEMENT>   ... </rdf:Description>In the template above, the placeholder meta id stands for the element's meta identifier, which is a field available on all SBML components derived from the
SBase
base object class. The dotted portions are
optional, and the ellipses ... are placeholders for zero or more elements of the same
form as the immediately preceding element.
The resource
URI values shown in the template above are stored internally in
CVTerm
objects using an XMLAttributes
object. Each attribute stored
inside the XMLAttributes
will have the same name (specifically,
"rdf:resource
") but a different value, and the
value will be a
resource URI shown in the XML template above.
A valid CVTerm
entity must always have at least one resource and
a value for the relationship qualifier.
XMLAttributes
that store the resources of this CVTerm
.
CVTerm.getQualifierType()
,
CVTerm.addResource(String resource)
,
CVTerm.getResourceURI(long n)
public long getNumResources()
CVTerm
object.
The RDF element used in the SBML format for referring to external entities
is <rdf:Description>
, with a
<rdf:Bag>
element inside of it containing one or more
<rdf:li>
elements. The following template illustrates
the structure:
<rdf:Description rdf:about="#meta id">   HISTORY   <RELATION_ELEMENT>     <rdf:Bag>     <rdf:li rdf:resource="resource URI" />     ...     </rdf:Bag>   </RELATION_ELEMENT>   ... </rdf:Description>In the template above, the placeholder meta id stands for the element's meta identifier, which is a field available on all SBML components derived from the
SBase
base object class. The dotted portions are
optional, and the ellipses ... are placeholders for zero or more elements of the same
form as the immediately preceding element.
The fragment above illustrates that there can be more than one
resource referenced by a given relationship annotation (i.e., the
resource
URI values associated with a particular RELATION_ELEMENT). The present
method returns a count of the resources stored in this CVTerm
object.
XMLAttributes
of this CVTerm
.
CVTerm.getResources()
,
CVTerm.getResourceURI(long n)
public java.lang.String getResourceURI(long n)
CVTerm
object.
The RDF element used in the SBML format for referring to external entities
is <rdf:Description>
, with a
<rdf:Bag>
element inside of it containing one or more
<rdf:li>
elements. The following template illustrates
the structure:
<rdf:Description rdf:about="#meta id">   HISTORY   <RELATION_ELEMENT>     <rdf:Bag>     <rdf:li rdf:resource="resource URI" />     ...     </rdf:Bag>   </RELATION_ELEMENT>   ... </rdf:Description>In the template above, the placeholder meta id stands for the element's meta identifier, which is a field available on all SBML components derived from the
SBase
base object class. The dotted portions are
optional, and the ellipses ... are placeholders for zero or more elements of the same
form as the immediately preceding element.
The fragment above illustrates that there can be more than one resource
referenced by a given relationship annotation (i.e., the resource URI
values associated with a particular RELATION_ELEMENT). LibSBML stores
all resource URIs in a single CVTerm
object for a given relationship.
Callers can use CVTerm.getNumResources()
to find out how many resources
are stored in this CVTerm
object, then call this method to retrieve the
nth resource URI.
n
- the index of the resource to query.
XMLAttributes
of this CVTerm
.
CVTerm.getNumResources()
,
CVTerm.getQualifierType()
public int setQualifierType(int type)
CVTerm
object.
type
- the qualifier type.
CVTerm.getQualifierType()
public int setModelQualifierType(int type)
CVTerm
object.
type
- the model qualifier type.
CVTerm.getQualifierType()
,
CVTerm.setQualifierType(int)
MODEL_QUALIFIER
, then the
then the model qualifier type
will default to BQM_UNKNOWN
.
public int setBiologicalQualifierType(int type)
CVTerm
object.
type
- the biology
qualifier type.
CVTerm.getQualifierType()
,
CVTerm.setQualifierType(int)
BIOLOGICAL_QUALIFIER
,
then the biology qualifier type
will default to BQB_UNKNOWN
.
public int setModelQualifierType(java.lang.String qualifier)
CVTerm
object.
qualifier
- the string representing a model qualifier.
CVTerm.getQualifierType()
,
CVTerm.setQualifierType(int)
MODEL_QUALIFIER
,
then the model qualifier type
will default to BQM_UNKNOWN
.
public int setBiologicalQualifierType(java.lang.String qualifier)
CVTerm
object.
qualifier
- the string representing a biology qualifier.
CVTerm.getQualifierType()
,
CVTerm.setQualifierType(int)
BIOLOGICAL_QUALIFIER
,
then the biology qualifier type code
will default to BQB_UNKNOWN
.
public int addResource(java.lang.String resource)
CVTerm
object.
The SBML Level 2 and Level 3 specifications define a simple
format for annotating models when (a) referring to controlled
vocabulary terms and database identifiers that define and describe
biological and other entities, and (b) describing the creator of a
model and the model's modification history. The annotation content is
stored in <annotation>
elements attached to
individual SBML elements. The format for storing the content inside
SBML <annotation>
elements is a subset of W3C RDF
(Resource Description
Format) expressed in XML. The CVTerm
class provides a programming
interface for working directly with controlled vocabulary term ('CV
term') objects without having to deal directly with the XML form.
When libSBML reads in an SBML model containing RDF annotations, it
parses those annotations into a list of CVTerm
objects, and when
writing a model, it parses the CVTerm
objects back into the
appropriate SBML <annotation>
structure.
The specific RDF element used in this SBML format for referring to
external entities is <rdf:Description>
, with a
<rdf:Bag>
element containing one or more
<rdf:li>
elements. Each such element refers to a
data item in an external resource the resource and data item are
together identified uniquely using a URI. The following template
illustrates the structure:
<rdf:Description rdf:about="#meta id"> HISTORY <RELATION_ELEMENT> <rdf:Bag> <rdf:li rdf:resource="resource URI" /> ... </rdf:Bag> </RELATION_ELEMENT> ... </rdf:Description>
In the template above, the placeholder meta id stands for the
element's meta identifier, which is a field available on all SBML
components derived from the SBase
base object class. The dotted portions are
optional, and the ellipses ... are placeholders for zero or
more elements of the same form as the immediately preceding element.
The placeholder
RELATION_ELEMENT refers to a BioModels.net qualifier element
name. This is an element in either the XML namespace
'http://biomodels.net/model-qualifiers'
(for model
qualifiers) or 'http://biomodels.net/biology-qualifiers'
(for biological qualifier).
The resource
URI is a required data value that uniquely identifies a
resource and data within that resource to which the annotation refers.
The present method allows callers to add a reference to a resource URI
with the same relationship to the enclosing SBML object. (In other
words, the argument to this method is a resource URI as shown in the
XML fragment above.) Resources are stored in this CVTerm
object
within an XMLAttributes
object.
The relationship of this CVTerm
to the enclosing SBML object can be
determined using the CVTerm
methods such as
CVTerm.getModelQualifierType()
and CVTerm.getBiologicalQualifierType()
.
resource
- a string representing the URI of the resource and data
item being referenced e.g.,
'http://www.geneontology.org/#GO:0005892'
.
CVTerm.getResources()
,
CVTerm.removeResource(String resource)
,
CVTerm.getQualifierType()
,
CVTerm.getModelQualifierType()
,
CVTerm.getBiologicalQualifierType()
public int removeResource(java.lang.String resource)
CVTerm
object.
resource
- a string representing the resource URI to remove
e.g., 'http://www.geneontology.org/#GO:0005892'
.
CVTerm.addResource(String resource)
public boolean hasRequiredAttributes()
true
if all the required elements for this
CVTerm
object have been set.
CVTerm
are:
public long getNumNestedCVTerms()
public CVTerm getNestedCVTerm(long n)
public SWIGTYPE_p_List getListNestedCVTerms()
CVTerm
object.public int addNestedCVTerm(CVTerm term)
CVTerm
object to the list of nested CVTerm
objects within this CVTerm
object.
term
- the CVTerm
to assign.
public CVTerm removeNestedCVTerm(long n)