Skip to content

objectionary/sodg-maven-plugin

Repository files navigation

logo

EO principles respected here DevOps By Rultor.com We recommend IntelliJ IDEA

mvn-linux PDD status Maven Central codecov Hits-of-Code License

⚠️ Note: This project is currently outdated.
You may need to update dependencies and ensure compatibility with the latest EO versions before using it.
It is not deprecated, but active maintenance is currently paused.

The sodg-maven-plugin builds a graph from an EO program. SODG stands for Surging Object DiGraph.
The primary consumer of SODG graphs is the reo project.
You can find some examples of .sodg files.

To generate these text files, we first use an intermediate XML format:

<i name='ADD'>
  <a>v1</a>
</i>
<i name='ADD'>
  <a>v2</a>
</i>
<i name='BIND'>
  <a>v1</a>
  <a>v2</a>
</i>

Which is equivalent to:

ADD v1
ADD v2
BIND v1, v2

This DSL consists of only three commands:

ADD (one argument) - adds a new node to the graph BIND (two arguments) - creates a directed edge from one node to another PUT (one argument) - attaches data to a node

The sodg-maven-plugin performs the following steps:

  1. Turns .xmir into intermediate XML
  2. Turns XML into a .dot graph (renderable by GraphViz)
  3. Turns XML into .sodg text file (with DSL)
  4. Turns XML into .xe (Xembly) file that, if executed, would generate a graph in XML
  5. Turns XML into .graph.xml, which is a graph as XML

The .sodg file is essentially a sequence of instructions for a virtual machine that parses them. An example of such a machine can be found here. When the graph is built by the virtual machine, it must be possible to execute a program using graph traversing algorithm. Once the graph is built, it can be used to execute a program via a graph traversal algorithm. An example of such an executor isreo.

How to Contribute

Fork repository, make changes, then send us a pull request. We will review your changes and apply them to the master branch shortly, provided they don't violate our quality standards. To avoid frustration, before sending us your pull request please run full Maven build:

mvn clean install -Pqulice

You will need Maven 3.3+ and Java 11+ installed.

About

XMIR to SODG generator, as a Maven plugin

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •