Wodel for industrial automation

Explore IEC 61499 models through controlled mutation

Wodel4diac extends Wodel, a model mutation domain-specific language (DSL), to model-based engineering workflows in Eclipse 4diac. Researchers can describe changes to models and produce variants of IEC 61499 function-block applications for mutation-based experimentation, testing research, and fault-injection studies.

It is an Eclipse/EMF research prototype. Generated variants must be inspected and validated for the intended 4diac application; mutation alone does not guarantee IEC 61499 conformance, behavioral correctness, runtime safety, or deployability.

Target IDEEclipse 4diac 3.3.0
JavaJDK 21
PlatformEclipse · EMF · Xtext

Latest integration snapshot

October 2026 — Eclipse 4diac 3.3.0 target

This release updates the Wodel4diac integration target from Eclipse 4diac 3.2.0 to 3.3.0 and refreshes the accompanying Wodel source and documentation. It brings the 4diac integration into the current Wodel research ecosystem, while retaining the distinction between stable Wodel core capabilities and experimental components.

4diac integration

Mutation workflows over supported 4diac-related EMF models, with adaptation and post-processing components for IEC 61499 applications.

Wodel mutation infrastructure

The Wodel DSL, mutation engine, registries, metrics, validation, comparison, and extension points included in the repository.

Experimental AI assistant

The wodel.ai.assistant bundle contains LLM-backed assistance and tasks for Wodel-oriented workflows. Review generated content before use.

The supplied source snapshot includes these components, but it does not establish which individual implementation changes were introduced after July 2026. Eclipse 4diac 3.3.0 is the target platform, not the OSGi version of every Wodel feature.

For new capabilities in the underlying IDE and FORTE runtime, see the official Eclipse 4diac 3.3 release announcement. Those upstream 4diac features are not being claimed as Wodel4diac implementations.

How Wodel4diac fits into your workflow

01Prepare models

Select an IEC 61499-related model and the compatible metamodel, using the supported Eclipse workspace integration.

02Specify mutation

Write a Wodel .mutator program describing metamodel-specific changes and generation settings.

03Generate variants

Execute the Wodel mutation engine and retain mutation traces, registry information, and model results.

04Convert and validate

Use the 4diac post-processor where applicable, then inspect and validate the resulting resources in 4diac.

The implementation includes conversion paths for operational-semantics .opsem resources. Some current workspace-oriented utilities reference a project named MutationTestingApp and its network_traces and mutants directories; adapt those assumptions before using a different project layout.

Requirements and compatibility

ComponentRequirement / note
Target IDEEclipse 4diac IDE 3.3.0 with the relevant 4diac features installed.
JavaJDK 21 for the supplied Wodel4diac project configuration.
Modeling stackEclipse Plug-in Development Environment (PDE), EMF, Xtext, and required plug-in dependencies.
Optional toolsSome semantic checking/model-finding workflows use additional tools, such as eFinder and a constraint backend.

Compatibility is described for the supplied integration source. The 4diac 3.3.0 target does not imply that every optional bundle, solver, or AI task has been exhaustively tested on every operating system.

Installation

Option A — Install from an Eclipse p2 update site

  1. Open an Eclipse 4diac 3.3.0 environment containing the required modeling features.
  2. Choose Help → Install New Software… and add the repository URL below.
  3. Select the available Wodel4diac features, complete dependency resolution, and restart Eclipse.
  4. Confirm installed bundles in Help → About Eclipse IDE → Installation Details.
https://gomezabajo.github.io/Wodel4diac/update-site/

Publication requirement: the update-site URL works as an Eclipse installer only when the published folder contains exported p2 repository metadata and the relevant feature/plug-in JARs. The GitHub Pages source archive alone does not include those artifacts. Check the published repository before advertising the new version as downloadable.

Option B — Build from source

git clone https://github.com/gomezabajo/Wodel4diac.git
cd Wodel4diac
  1. Configure Eclipse 4diac IDE 3.3.0 with JDK 21 and the necessary PDE/EMF/Xtext dependencies.
  2. Use File → Import → Existing Projects into Workspace to import the required plug-in and feature projects.
  3. Resolve the target platform and launch a runtime Eclipse application with the necessary bundles.
  4. Export the relevant PDE features and update site before distributing installable packages.

Previously advertised standalone Windows and Ubuntu archives have not been verified for the 3.3.0 target and are therefore not linked as current installers. Use the official 4diac distribution with a verified Wodel4diac update site or build from source.

Getting started with the Wodel DSL

Create a Wodel project with a .mutator file, select a model/metamodel pair, and configure mutation blocks. The example below is adapted from the repository's finite-automata examples; it demonstrates Wodel syntax and is not a ready-to-run IEC 61499 program.

generate 10 mutants
in "data/out/"
from "data/model/"
metamodel "/[@**@]/data/model/DFAAutomaton.ecore"

with blocks {
  dtr "Delete transition" {
    remove one Transition
  }
  mfs "Set final state to non-final" {
    modify one State where {isFinal = true} with {reverse(isFinal)}
  }
  rts "Set transition target to a new final state" {
    s = create State with {name = 'f', isFinal = true}
    modify target tar from one Transition to s
  }
}

For 4diac, replace the automata metamodel and its classes/features with the types accepted by the selected IEC 61499 model adapter. Generate and inspect mutants first; do not deploy altered control applications without appropriate validation.

See the Wodel examples and the repository README for further details.

Main components

ModulePurpose
wodel.fordiacFeature defining the 4diac-specific extension.
wodel.postprocessor.fordiac4diac post-processing and operational-semantics conversion.
wodel.runWodel execution integration and model-conversion helpers.
wodel.core, wodel.dsls.wodel*Mutation language, editor, and core functionality.
wodel.registry*, wodel.footprintsMutation metadata and footprint information.
wodel.semantic.*, wodel.syntactic.*Model validation, comparison, and related extensions.
wodel.ai.assistantExperimental AI-assisted workflows.
wodel.wodeledu, wodel.wodeltestRelated educational and mutation-testing tooling.
wodel.updatesitePDE repository definition; installable p2 artifacts require export/publication.

Wodel ecosystem

Wodel4diac is an IEC 61499 integration within a wider family of model-based engineering tools:

AI assistant Experimental

The wodel.ai.assistant plug-in contains task infrastructure, chat-related functionality, and an LLM client for Wodel-oriented assistance. Its source includes support for user-supplied API credentials; do not commit keys to repositories, and review all proposed model or mutator changes before running them.

Availability of the source bundle does not guarantee that every task is packaged by the update site or supported by a stable user interface in Eclipse 4diac 3.3.0.

Troubleshooting

PDE update-site export fails on apitooling.apigeneration

Verify that Eclipse PDE API Tools and its Ant tasks are installed and available to the build. Restart Eclipse, clean the affected plug-in (for example wodel.semantic.comparison.dfa), regenerate its PDE build scripts if appropriate, and retry the export.

Resources unexpectedly resolve below bin/

The runtime class code-source location may be a compiled output directory. Resolve the actual project root from a validated configuration file or project descriptor, not the first ancestor containing a copied data directory.

An older release is still offered by the update site

Verify the exported features/, plugins/ and p2 metadata are deployed at the public URL. Refresh Eclipse's software-site information and inspect installed bundle versions.

Generated model output cannot be opened in 4diac

Check the model/metamodel combination, the registered post-processor, the Eclipse workspace/project assumptions and any required .opsem conversion. Generated variants require validation and are not automatically executable FORTE applications.

Citing Wodel

If you use Wodel4diac in academic work, cite the underlying Wodel language publication and any relevant 4diac-specific publication:

@inproceedings{GomezAbajo2016Wodel,
  author    = {G\'omez-Abajo, Pablo and Guerra, Esther and de Lara, Juan},
  title     = {Wodel: A Domain-Specific Language for Model Mutation},
  booktitle = {Proceedings of the 31st Annual ACM Symposium on Applied Computing (SAC)},
  pages     = {1968--1973},
  year      = {2016},
  doi       = {10.1145/2851613.2851751}
}

A finalized, citable Wodel4diac-specific publication was not identified in the supplied repository documentation.

Acknowledgements

Wodel4diac builds on Wodel and the Eclipse 4diac ecosystem, as well as Eclipse EMF and Xtext. The source tree contains supporting projects associated with anATLyzer, eFinder, and tinytools.

Developed in the context of research at the Universidad Autónoma de Madrid and the Universidad de Murcia.

License

The repository contains the Eclipse Public License 2.0 (EPL-2.0). Refer to the LICENSE file. Redistribution of third-party bundles may involve separate license notices.