SBOL file format is written as SBOL:Core:rdf:xml. We chose to strictly define the serialization, so that it can be:
The SBOL file format (SBOL:Core:rdf:xml) is used to express instances of the Core data model for storage and transmission. The format is defined as a specific XML serialization compatible with RDF/XML. As an XML serialization it is defined by an XML schema. Tools which directly read SBOL at the XML level depend on the predicable order and structure defined by the SBOL schema. However, as SBOL files are also valid RDF documents, SBOL can be read by any RDF tool and interpreted as a graph. For more about SBOL semantics, see the section about interpreting SBOL as RDF below.
You can see how SBOL format looks in the example in Figure 1 (Example with markup) below.
example as text on a separate page.
The XML schema (XSD) specifies the constraints which define a valid SBOL:Core:rdf:xml document. It provides the constraints on the structure and the types of XML elements which are valid in SBOL. The structure is defined in terms of the order and nesting of allowed elements. The types are defined to those allowed by the Core specification.
The SBOL Schema is found in two files
rdf.xsd - defines the base elements including those needed to make the XML file a valid RDF file
sbol.xsd - defines the use of the elements in SBOL
The schema was written by Dr. Evren Sirin, with contributions by Michal Galdzicki
You can use the schema to validate your own SBOL files by using an XML Schema processor. These are a part of most XML aware tools, such as NetBeans or Eclipse. For example, I use xmllint in the libxml2-utils package for ubuntu linux.
This tools uses libxml2 to do the parsing.
The Serialization FAQ is a collection of questions which others have asked
libSBOL is a software library to help serialize the SBOL object model as RDF/XML. There are two implementations in development, libSBOLj using the Java language, and libSBOLc using the C language.
The SBOL converter is one example of how SBOL:core:rdf:xml can be generated
SBOL:Core:rdf). The interpretation of the SBOL file format, SBOL:Core:rdf:xml, is possible because the SBOL data model is implemented using W3C Semantic Web standards. Such interpretation allows the use of standard parsers and query languages to access the encoded information. RDF/XML syntax may be parsed directly from the file form, or can be accessed using a query protocol (i.e. SPARQL).
SBOL:Core:rdf is currently being interpreted as providing individual (ie, instance) data for an OWL-based definition of SBOL. For this interpretation, we build on the definition of SBOL:Core:owl which defines SBOL Classes (i.e. DnaComponent, SequenceAnnotation, Collection, etc), the object properties, relationships between them (ie. [has]annotation, [has]subComponent, [has]component, etc), and data properties (i.e. displayId, bioStart, nucleotides, etc). The OWL definitions provide both structure and definition for the data. Data encoded using OWL is provided in RDF/XML syntax which allows the use of standard parsers and query languages to access the encoded information.
For more detailed information, please read the following documentation and examples:
An in-depth explanation of mapping Parts Registry data to SBOL:Core:rdf
Repository which demonstrates the use of SPARQL queries on SBOL data from the Parts Registry.
2008-2009 Development of the SBOL standard began with a format called PoBoL, which used RDF/OWL.
2009-Jan 2011 As the project grew, we renamed the project to SBOL and the RDF/OWL form to "SBOL Semantic". This format was produced by libSBOLpy and libSBOLj
2011 As we considered our serialization options, we briefly referred to SBOL Semantic as SBOL:Core:rdf generated by libSBOLrdf, and the XML format as SBOL:Core:xml generated by libSBOLxml.
2012 Finally, we decided on one serialization format which can now be generated by libSBOLj, libSBOLc, and the Registry -> SBOL converter.