TOOL

libSBOLj

libSBOLj (Java)

libSBOLj is the reference Java library for the Synthetic Biology Open Language (SBOL), a community standard for exchanging computer-aided designs of engineered biological systems. It is developed and maintained by SynBioDex, the SBOL developers' consortium, and published open-source on GitHub with a Maven-distributed JAR. The library provides the core Java interfaces and their implementations for creating, reading, writing, validating, and comparing SBOL documents, plus a command-line interface for validation and format conversion.

SBOL data is fundamentally a graph. Designs are expressed in RDF, the W3C Resource Description Framework, so an SBOL document is a set of typed, URI-identified objects linked by named properties. In the SBOL 2 data model handled by the classic libSBOLj, the central classes include ComponentDefinition (a genetic part or device), Sequence (its nucleotide or amino-acid composition), ModuleDefinition, Interaction, and later additions such as CombinatorialDerivation, Implementation, and Attachment. libSBOLj 2.x serializes this graph as RDF/XML and validates SBOL 2 documents for structural and URI-compliance rules. Because the model is RDF, it overlaps naturally with the semantic-web ecosystem around RDF/XML, Turtle, and OWL.

Beyond native SBOL, libSBOLj reads and writes GenBank and FASTA, and can convert between SBOL 1 and SBOL 2, making it a practical bridge between legacy sequence-oriented bioinformatics files and the richer SBOL design model. This positions it in the format-conversion landscape alongside other SynBioDex tooling such as libSBOL and pySBOL2, and it interoperates with related systems-biology standards like SBML and the graphical notation of SBGN-ML.

A successor library, libSBOLj3 (a separate project), targets SBOL and takes an explicitly graph-based approach, serializing designs to any RDF format including Turtle, JSON-LD, and N-Triples rather than being tied to RDF/XML. The classic libSBOLj remains focused on SBOL 2 and is the mature, widely cited implementation described in the LibSBOLj 2.0 paper.

Strengths: it is the authoritative, well-validated implementation of SBOL 2, with broad format coverage and easy Maven integration. Limitations: it is Java-only, carries the conceptual overhead of the full SBOL specification and its supporting ontologies, validation of large documents can be resource-intensive, and users targeting SBOL 3 must move to the separate libSBOLj3 codebase.

Graph Formats(Input & Output)

Frequently Asked Questions

What graph file formats does libSBOLj support?

See the list on this page — it shows every format libSBOLj can read, write and display.

How do I import a graph into libSBOLj?

Convert your file to a format libSBOLj can read, then open it in libSBOLj. Use GraphInOut to get a libSBOLj-compatible file in seconds.

How do I convert a file so libSBOLj can open it?

Use the convert links above — upload or paste your graph, pick a format libSBOLj accepts and download the result, right in your browser.