libSBOL  2.3.3
Classes | Public Attributes | Public Member Functions | Protected Member Functions | List of all members
Document Class Reference

Detailed Description

Read and write SBOL using a Document class. The Document is a container for Components, Modules, and all other SBOLObjects.

Classes

class  iterator
 Iterate through TopLevel objects in a Document. More...
 

Public Attributes

URIProperty persistentIdentity
 The persistentIdentity property is OPTIONAL and has a data type of URI. This URI serves to uniquely refer to a set of SBOL objects that are different versions of each other. An Identified object MUST be referred to using either its identity URI or its persistentIdentity URI.
 
TextProperty displayId
 The displayId property is an OPTIONAL identifier with a data type of String. This property is intended to be an intermediate between name and identity that is machine-readable, but more human-readable than the full URI of an identity. If the displayId property is used, then its String value SHOULD be locally unique (global uniqueness is not necessary) and MUST be composed of only alphanumeric or underscore characters and MUST NOT begin with a digit.
 
VersionProperty version
 If the version property is used, then it is RECOMMENDED that version numbering follow the conventions of semantic versioning, particularly as implemented by Maven. This convention represents versions as sequences of numbers and qualifiers that are separated by the characters “.” and “-” and are compared in lexicographical order (for example, 1 < 1.3.1 < 2.0-beta). For a full explanation, see the linked resources.
 
URIProperty wasDerivedFrom
 The wasDerivedFrom property is OPTIONAL and has a data type of URI. An SBOL object with this property refers to another SBOL object or non-SBOL resource from which this object was derived. If the wasDerivedFrom property of an SBOL object A that refers to an SBOL object B has an identical persistentIdentity, and both A and B have a version, then the version of B MUST precede that of A. In addition, an SBOL object MUST NOT refer to itself via its own wasDerivedFrom property or form a cyclical chain of references via its wasDerivedFrom property and those of other SBOL objects. For example, the reference chain “ A was derived from B and B was derived from A” is cyclical.
 
ReferencedObject wasGeneratedBy
 An Activity which generated this ComponentDefinition, eg., a design process like codon-optimization or a construction process like Gibson Assembly.
 
TextProperty name
 The name property is OPTIONAL and has a data type of String. This property is intended to be displayed to a human when visualizing an Identified object. If an Identified object lacks a name, then software tools SHOULD instead display the object’s displayId or identity. It is RECOMMENDED that software tools give users the ability to switch perspectives between name properties that are human-readable and displayId properties that are less human-readable, but are more likely to be unique.
 
TextProperty description
 The description property is OPTIONAL and has a data type of String. This property is intended to contain a more thorough text description of an Identified object.
 
URIProperty identity
 The identity property is REQUIRED by all Identified objects and has a data type of URI. A given Identified object’s identity URI MUST be globally unique among all other identity URIs. The identity of a compliant SBOL object MUST begin with a URI prefix that maps to a domain over which the user has control. Namely, the user can guarantee uniqueness of identities within this domain. For other best practices regarding URIs see Section 11.2 of the SBOL specification doucment.
 

Public Member Functions

 Document ()
 Construct a Document. The Document is a container for Components, Modules, and all other SBOLObjects.
 
template<class SBOLClass >
void add (SBOLClass &sbol_obj)
 Register an object in the Document. More...
 
template<class SBOLClass >
void add (std::vector< SBOLClass * > sbol_objects)
 Register an object in the Document. More...
 
template<class SBOLClass >
SBOLClass & get (std::string uri)
 Retrieve an object from the Document. More...
 
template<class SBOLClass >
std::vector< SBOLClass * > getAll ()
 Retrieve a vector of objects from the Document. More...
 
std::string write (std::string filename)
 Serialize all objects in this Document to an RDF/XML file. More...
 
void read (std::string filename)
 Read an RDF/XML file and attach the SBOL objects to this Document. More...
 
void readString (std::string &sbol)
 Convert text in SBOL into data objects. More...
 
std::string writeString ()
 Convert data objects in this Document into textual SBOL.
 
void append (std::string filename)
 Read an RDF/XML file and attach the SBOL objects to this Document. More...
 
std::string request_comparison (Document &diff_file)
 Perform comparison on Documents using the online validation tool. More...
 
void clear ()
 Delete all properties and objects in the Document.
 
void generate (raptor_world **world, raptor_serializer **sbol_serializer, char **sbol_buffer, size_t *sbol_buffer_len, raptor_iostream **ios, raptor_uri **base_uri)
 Generates rdf/xml. More...
 
std::string validate ()
 Run validation on this Document via the online validation tool. More...
 
std::string exportToFormat (std::string language="", std::string output_path="")
 Convert this SBOL Document to GenBank, FASTA, or GFF3.
 
std::string importFromFormat (std::string language, std::string input_path)
 Import GenBank, FASTA, or GFF3 to an SBOL Document.
 
int size ()
 Get the total number of objects in the Document, including SBOL core object and custom annotation objects.
 
std::string summary ()
 Get a summary of objects in the Document, including SBOL core object and custom annotation objects.
 
SBOLObjectfind (std::string uri)
 Search recursively for an SBOLObject in this Document that matches the uri. More...
 
std::vector< std::string > getNamespaces ()
 
void addNamespace (std::string ns, std::string prefix)
 Add a new namespace to this Document. More...
 
void close (std::string uri="")
 Delete all objects in this Document and destroy the Document.
 
virtual rdf_type getTypeURI ()
 
std::string getClassName (std::string type)
 
SBOLObjectfind_property (std::string uri)
 Search this object recursively to see if it contains a member property with the given RDF type. More...
 
std::vector< SBOLObject * > find_property_value (std::string uri, std::string value, std::vector< SBOLObject *> matches={})
 Search this object recursively to see if it contains a member property with the given RDF type and indicated property value. More...
 
std::vector< SBOLObject * > find_reference (std::string uri)
 Search this object recursively to see if it contains a member property with the given RDF type and indicated property value. More...
 
int compare (SBOLObject *comparand)
 Compare two SBOL objects or Documents. More...
 
std::string getPropertyValue (std::string property_uri)
 Get the value of a custom annotation property by its URI. More...
 
std::vector< std::string > getPropertyValues (std::string property_uri)
 Get all values of a custom annotation property by its URI. More...
 
std::vector< std::string > getProperties ()
 Gets URIs for all properties contained by this object. More...
 
void setPropertyValue (std::string property_uri, std::string val)
 Set and overwrite the value for a user-defined annotation property. More...
 
void addPropertyValue (std::string property_uri, std::string val)
 Append a value to a user-defined annotation property. More...
 
void setAnnotation (std::string property_uri, std::string val)
 Set the value for a user-defined annotation property. More...
 
std::string getAnnotation (std::string property_uri)
 Get the value of a custom annotation property by its URI. More...
 
virtual void close ()
 Use this method to destroy an SBOL object that is not contained by a parent Document. More...
 

Protected Member Functions

Identifiedcopy (Document *target_doc=NULL, std::string ns="", std::string version="")
 Copy an object and automatically increment its version. More...
 
template<class ExtensionClass >
void register_extension_class (std::string ns, std::string ns_prefix, std::string class_name)
 Register an extension class and its namespace, so custom data can be embedded into and read from SBOL files. More...
 

Member Function Documentation

◆ add() [1/2]

void add ( SBOLClass &  sbol_obj)

Register an object in the Document.

Parameters
sbol_objThe SBOL object you want to serialize
Template Parameters
SBOLClassThe type of SBOL object

◆ add() [2/2]

void add ( std::vector< SBOLClass * >  sbol_objects)

Register an object in the Document.

Parameters
sbol_objectsA list of pointers to the SBOL objects you want to serialize
Template Parameters
SBOLClassThe type of SBOL object

◆ addNamespace()

void addNamespace ( std::string  ns,
std::string  prefix 
)

Add a new namespace to this Document.

Parameters
nsThe namespace, eg. http://sbols.org/v2#
prefixThe namespace prefix, eg. sbol

◆ addPropertyValue()

void addPropertyValue ( std::string  property_uri,
std::string  val 
)
inherited

Append a value to a user-defined annotation property.

Either a literal or URI value

◆ append()

void append ( std::string  filename)

Read an RDF/XML file and attach the SBOL objects to this Document.

New objects will be added to the existing contents of the Document

Parameters
filenameThe full name of the file you want to read (including file extension)

◆ close()

void close ( )
virtualinherited

Use this method to destroy an SBOL object that is not contained by a parent Document.

If the object does have a parent Document, instead use doc.close() with the object's URI identity as an argument. Recurse through child objects and delete them.

◆ compare()

int compare ( SBOLObject comparand)
inherited

Compare two SBOL objects or Documents.

The behavior is currently undefined for objects with custom annotations or extension classes.

Parameters
comparandA pointer to the object being compared to this one.
Returns
1 if the objects are identical, 0 if they are different

◆ copy()

Identified& copy ( Document target_doc = NULL,
std::string  ns = "",
std::string  version = "" 
)
protectedinherited

Copy an object and automatically increment its version.

If the optional version argument is specified, it will be used instead of incrementing the copied object's version. An object may also be copied into a new document and a new namespace, assuming compliant URIs.

Template Parameters
SBOLClassThe type of SBOL object being copied
Parameters
new_docThe new copies will be attached to this Document. NULL by default.
nsThis namespace will be substituted for the current namespace (as configured by setHomespace) in all SBOL-compliat URIs.
versionA new version
Returns
The full URI of the created object.

◆ find()

SBOLObject * find ( std::string  uri)

Search recursively for an SBOLObject in this Document that matches the uri.

Parameters
uriThe identity of the object to search for
Returns
A pointer to the SBOLObject, or NULL if an object with this identity doesn't exist

◆ find_property()

SBOLObject * find_property ( std::string  uri)
inherited

Search this object recursively to see if it contains a member property with the given RDF type.

Parameters
uriThe RDF type of the property to search for.
Returns
A pointer to the object that contains a member property with the specified RDF type, NULL otherwise

◆ find_property_value()

vector< SBOLObject * > find_property_value ( std::string  uri,
std::string  value,
std::vector< SBOLObject *>  matches = {} 
)
inherited

Search this object recursively to see if it contains a member property with the given RDF type and indicated property value.

Parameters
uriThe RDF type of the property to search for.
valueThe property value to match
Returns
A vector containing all objects found that contain a member property with the specified RDF type

◆ find_reference()

vector< SBOLObject * > find_reference ( std::string  uri)
inherited

Search this object recursively to see if it contains a member property with the given RDF type and indicated property value.

Parameters
uriA URI, either an ontology term or an object reference, to search for
Returns
A vector containing all objects found that contain the URI in a property value

◆ generate()

void generate ( raptor_world **  world,
raptor_serializer **  sbol_serializer,
char **  sbol_buffer,
size_t *  sbol_buffer_len,
raptor_iostream **  ios,
raptor_uri **  base_uri 
)

Generates rdf/xml.

Author
KC generates rdf/xml

◆ get()

SBOLClass & get ( std::string  uri)

Retrieve an object from the Document.

Parameters
uriThe identity of the SBOL object you want to retrieve
Template Parameters
SBOLClassThe type of SBOL object

◆ getAll()

std::vector<SBOLClass*> getAll ( )

Retrieve a vector of objects from the Document.

Template Parameters
SBOLClassThe type of SBOL objects

◆ getAnnotation()

std::string getAnnotation ( std::string  property_uri)
inherited

Get the value of a custom annotation property by its URI.

Synonymous with getPropertyValue

Parameters
property_uriThe URI for the property
Returns
The value of the property or SBOL_ERROR_NOT_FOUND

◆ getClassName()

std::string getClassName ( std::string  type)
inherited
Returns
Parses a local class name from the RDF-type of this SBOL Object

◆ getNamespaces()

std::vector< std::string > getNamespaces ( )
Returns
A vector of namespaces Get namespaces contained in this Document

◆ getProperties()

std::vector< std::string > getProperties ( )
inherited

Gets URIs for all properties contained by this object.

This includes SBOL core properties as well as custom annotations. Use this to find custom extension data in an SBOL file.

Returns
A vector of URIs that identify the properties contained in this object

◆ getPropertyValue()

std::string getPropertyValue ( std::string  property_uri)
inherited

Get the value of a custom annotation property by its URI.

Parameters
property_uriThe URI for the property
Returns
The value of the property or SBOL_ERROR_NOT_FOUND

◆ getPropertyValues()

std::vector< std::string > getPropertyValues ( std::string  property_uri)
inherited

Get all values of a custom annotation property by its URI.

Parameters
property_uriThe URI for the property
Returns
A vector of property values or SBOL_ERROR_NOT_FOUND

◆ getTypeURI()

rdf_type getTypeURI ( )
virtualinherited
Returns
The uniform resource identifier that describes the RDF-type of this SBOL Object

◆ read()

void read ( std::string  filename)

Read an RDF/XML file and attach the SBOL objects to this Document.

Existing contents of the Document will be wiped.

Parameters
filenameThe full name of the file you want to read (including file extension)

◆ readString()

void readString ( std::string &  sbol)

Convert text in SBOL into data objects.

Parameters
sbolA string formatted in SBOL

◆ register_extension_class()

void register_extension_class ( std::string  ns,
std::string  ns_prefix,
std::string  class_name 
)
protectedinherited

Register an extension class and its namespace, so custom data can be embedded into and read from SBOL files.

Template Parameters
ExtensionClassThe new class
Parameters
nsThe extension namespace, eg, http://myhome.org/my_extension#. It's important that the namespace ends in a forward-slash or hash
ns_prefixA shorthand symbol for the full namespace as it will appear in the output file, eg, my_extension

◆ request_comparison()

std::string request_comparison ( Document diff_file)

Perform comparison on Documents using the online validation tool.

This is for cross-validation of SBOL documents with libSBOLj. Document comparison can also be performed using the built-in compare method.

Returns
The comparison results

◆ setAnnotation()

void setAnnotation ( std::string  property_uri,
std::string  val 
)
inherited

Set the value for a user-defined annotation property.

Synonymous with setPropertyValue If the value is a URI, it should be surrounded by angle brackets, else it will be interpreted as a literal value

◆ setPropertyValue()

void setPropertyValue ( std::string  property_uri,
std::string  val 
)
inherited

Set and overwrite the value for a user-defined annotation property.

Either a literal or URI value

◆ validate()

std::string validate ( )

Run validation on this Document via the online validation tool.

Returns
A string containing a message with the validation results
Author
KC

◆ write()

std::string write ( std::string  filename)

Serialize all objects in this Document to an RDF/XML file.

Parameters
filenameThe full name of the file you want to write (including file extension)
Returns
A string with the validation results, or empty string if validation is disabled

The documentation for this class was generated from the following files:
Inheritance diagram for Document:
Inheritance graph