From Developer Documents
Jump to navigation Jump to search


The org.simantics.graph feature provides a textual graph database source editing environment that integrates into the Eclipse IDE.

The feature adds a new project nature and builder for Java/Plug-in projects to support development of .pgraph partial graph source files. The environment will compile all partial graphs with in a project into a single transferable graph / Simantics applications will then be able to integrate this transferable graph into handled databases.

The environment also allows you to add the graph compilation nature to any project from the project's context menu Configure/Add graph compilation.



Utilities creating, browsing and editing transferable graphs.
Importing transferable graphs to Simantics database and exporting fragments of the database as a transferable graph.
Translates textual graph format to transferable graphs. Additionally generates resource files.
Eclipse editor, builder and nature for textual graph format and transferable graphs.


The graph development environment is distributed using an update site at

Release notes

Changed graph compiler to generate graph .tg files in Binary Container Format with the format descriptor graph and version 1. The extensions field was also moved to the front of the datatype. See Transferable Graph for information on the current format and converting old TG files.
Removed hardcoded references to Layer0 ontology version 1.0 from the compiler. Now the Layer0 version number is read from the org.simantics.layer0 plugin manifest.
Improved resource classes: the ontology resource changes are no longer listened in the first query that asked the resource class
New syntactic sugar ==> for RequiresValueType
Fixed a bug that prevented graph compiler from making most of the validation checks
Databoard serialization format changed
Removed console
Support for lists. L0.list is template for new lists, L0.orderedSet for old ordered sets.
New syntax >--, -->, <--
Finds some new errors (for example DIA.DefinedElement is now an error, if DIA is not used anywhere else)
Fixed URIs in Resource files (escape of whitespace)
Added extensions-field to tg format
Moved to trove3
Fixed bug in parsing range annotations in datatypes
Started complete validation of Layer0 definitions (added preference page for graph compiler)
Added outline to graph editor
Added content assist to graph editor
  • Content assists is opened with Ctrl-Space or writing '.'
  • A proposal is selected with Enter or writing '.'
Added Open declaration (F3) action.
Optimized graph compilation time
Added support for annotations in data types (for example unit).
Supports loading literal data from external files (the file name given relative to the directory containing the graph file)
  • @L0.loadBytes "filename"
  • @L0.loadString "filename"
  • @L0.loadDataValue "filename"
Check for the number of template arguments
Changed endianness of transferable graphs.
Fix: When templates with literals were applied, the literal values were put to wrong resources.
Source files are sorted in order to generate identical tgs for identical source files (not necessarily enough, there may be some identity hash maps).
Deprecated resources are marked deprecated in resource files.
Fix: Compiler closes handles to files
Reading input files in UTF-8
Feature: loads also from target platform
Feature: New notation Foo."Bar"
Fixed bug in loading from dependencies
Fixed bug in automatic creation of inverses for relations whose superrelations have also generated inverses
Feature: Reporting missing URI for relations whose inverse has a URI
Fixed bug in locating lexing errors
Some optimizations in parser