Initiatives‎ > ‎

Serialization

SBOL file format is written as SBOL:Core:rdf:xml. We chose to strictly define the serialization, so that it can be: 

  • Read consistently
  • Validated
    • Structurally using the SBOL XML Schema 
    • Semantically using SBOL ontology in OWL

SBOL file format

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 Serialization with Markup

Figure 1. SBOL format is serialized as RDF/XML. The document is declared as an XML document and is a valid RDF document, enclosed by RDF tags. The document begins with a namespaces section which defines which namespaces are used, and the rest of the document is composed of the SBOL elements found in the file. Here a typical DnaComponent is defined with displayId, name, description, and a DnaSequence. The optional SequenceAnnotations follow, including an example of a nested DnaComponent definition. You can view this example as text on a separate page.


SBOL Schema

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

Validate

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.

Usage:
 xmllint --schema ../schema/rdf.xsd --schema ../schema/sbol.xsd example_sbol_file.xml

This tools uses libxml2 to do the parsing.

Validation Service

To use the online validator service, please click here.

Frequently Asked Questions

The Serialization FAQ is a collection of questions which others have asked

libSBOL - software libraries to read & write SBOL

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.

Part Registry XML -> SBOL Converter

The SBOL converter is one example of how SBOL:core:rdf:xml can be generated


Interpreting SBOL as RDF

As SBOL is provided in RDF/XML syntax, it can be interpreted as an RDF graph (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:

Turtle RDF Primer for SBOL

A guide on how to write SBOL as RDF by hand, in a Turtle syntax

SBOL:Core:rdf HOWTO

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.

About naming history

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.
Subpages (1): Example
Comments