Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
8350087
plugin: non-entailment: swapped alternative and standard vocabulary s…
tomfriese Jun 3, 2024
cbe5e38
issue #106 - evee release format
tomfriese Jun 5, 2024
2d3c2e2
bugfix related to issue #137
tomfriese Jun 5, 2024
bb427ed
..
tomfriese Jun 5, 2024
43d28a0
bugfix issue #147
tomfriese Jun 26, 2024
a0dc867
issue #106, finalized release-module, cleanup poms
tomfriese Jul 31, 2024
fde1582
simplified proof signature selection UI
tomfriese Jul 31, 2024
c5b79a1
pom cleanup: added lethe to evee-libs
tomfriese Jul 31, 2024
8d91aba
pom: made scala version variable global
tomfriese Aug 21, 2024
97d60cd
code cleanup
tomfriese Aug 21, 2024
fccc7df
small model generator owlapi5 added to evee libs
tomfriese Aug 21, 2024
ed8a1ac
code cleanup
tomfriese Aug 21, 2024
8725904
proof services: changes to saving preferences
tomfriese Aug 21, 2024
fcb0e9b
updated lat-scala-dl-tools to newest version
tomfriese Aug 21, 2024
a036763
refactoring; removed componentSetting from INonEntailmentExplanationS…
tomfriese Aug 21, 2024
f0290fd
change to proof preferences manager related to commit 87259043
tomfriese Aug 21, 2024
8f8b38b
adjusted ProofType enum
ChristianAlrabbaa Aug 22, 2024
1ae591b
Merge branch 'development' of https://gitlab.tcs.inf.tu-dresden.de/to…
ChristianAlrabbaa Aug 22, 2024
5a15bf9
model datastructures ToOWLTools
ChristianAlrabbaa Aug 23, 2024
0d0c0c9
plugin: counterexample plugin IDs renamed for better readability
tomfriese Aug 25, 2024
6b447b0
Merge branch 'development' of https://gitlab.tcs.inf.tu-dresden.de/to…
tomfriese Aug 25, 2024
4e93c31
added elExplicator profile
ChristianAlrabbaa Aug 28, 2024
3882382
Merge branch 'development' of https://gitlab.tcs.inf.tu-dresden.de/to…
ChristianAlrabbaa Aug 28, 2024
1d3ce89
changed to snapshot version
PKoopmann Aug 29, 2024
be7d03a
removed redundant dependencies
tomfriese Sep 11, 2024
71cbe0f
bugfix issue #129: ontology imports considered when adding axioms for…
tomfriese Sep 11, 2024
31c7a4a
elEplicator profile in pom
ChristianAlrabbaa Sep 13, 2024
bc48ebc
Merge branch 'development' of https://gitlab.tcs.inf.tu-dresden.de/to…
ChristianAlrabbaa Sep 13, 2024
1a47e4b
Merge branch 'development' of https://github.com/de-tu-dresden-inf-la…
tomfriese Sep 25, 2024
b718ddf
Merge branch 'development' of https://gitlab.tcs.inf.tu-dresden.de/to…
tomfriese Sep 25, 2024
9441316
maven plugins aligned between sub-projects; maven plugins for deploym…
tomfriese Nov 3, 2024
6ae8902
development branch is now on version 0.4-SNAPSHOT
stefborg Nov 5, 2024
32c0ab7
added 'withoutDuplicateInferences' method to create a deduplicated co…
stefborg Feb 25, 2025
6f562de
extended also RecursiveProof
stefborg Feb 25, 2025
2989601
Nemo extractor
Aug 29, 2025
0bd8cc2
Merge branch 'nemo-extractor' into 'main'
Aug 29, 2025
f4d3459
0.4 release
maphih Aug 29, 2025
65ab9f8
Merge branch 'main' of github.com:de-tu-dresden-inf-lat/evee
stefborg Sep 9, 2025
315a24a
fix logging and C11LaconicGCICountEvaluator
stefborg Sep 9, 2025
315d241
Merge branch 'main' into development
stefborg Sep 9, 2025
89df31e
update evee-protege-nemo-proof-extractor to new version of AbstractEv…
stefborg Sep 10, 2025
5e57d26
added disjunctions and number & universal restr
maphih Oct 9, 2025
d1ddce9
OneOf & hasSelf constujr
maphih Oct 16, 2025
46c8e0b
linearity evaluators
ChristianAlrabbaa Oct 22, 2025
3d4ad44
_
ChristianAlrabbaa Oct 22, 2025
7be5238
Upgrade to ELK 0.6.0
ChristianAlrabbaa Oct 22, 2025
5d60b32
updated installation of CAPI in lib
ChristianAlrabbaa Oct 22, 2025
5d20035
updated and complete capi version
ChristianAlrabbaa Oct 27, 2025
eea2f23
_
ChristianAlrabbaa Oct 27, 2025
c35a797
number restriction parsing
maphih Oct 28, 2025
268ef8f
Merge branch 'development' into NonELConstructors
maphih Oct 28, 2025
8aaf42b
data constructors
maphih Nov 11, 2025
53e436c
rollback data constr. & better error handling
maphih Nov 18, 2025
046acb7
CAPI with java 8
ChristianAlrabbaa Nov 20, 2025
b67329a
Protege 5.6.4 (#45)
maphih Nov 25, 2025
9b9392e
bug fixes
maphih Dec 4, 2025
00d6793
fix FAME dependency clash
maphih Dec 12, 2025
108b0d7
upgrade java version build check
maphih Dec 12, 2025
5dcd8eb
bump up mvn compiler plugin version
maphih Dec 16, 2025
04fc60d
new workflows and dependency management
maphih Feb 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: build & test

on:
push:
pull_request:
branches: [ "main" ]

jobs:
build:
name: build
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'temurin'
- name: Build with Maven
run: mvn clean install


27 changes: 27 additions & 0 deletions .github/workflows/github-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: GithubRelease

on:
release:
types:
- created

jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Set up JDK 11
uses: actions/setup-java@v3
with:
distribution: 'adopt'
java-version: 11

- name: Build with Maven
run: mvn -B install --file evee-protege-release/pom.xml

- name: Upload Release Assets
uses: AButler/upload-release-assets@v3.0
with:
files: "evee-protege-release/target/*.zip"
repo-token: ${{ secrets.GITHUB_TOKEN }}
28 changes: 0 additions & 28 deletions .github/workflows/maven.yml

This file was deleted.

36 changes: 36 additions & 0 deletions .github/workflows/sonartype-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Maven Library Publish
on:
release:
types: [ created ]

jobs:
publish:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Set up JDK 11 for deploy to Sonatype
uses: actions/setup-java@v3
with:
distribution: 'adopt'
java-version: 11
server-id: central
server-username: MAVEN_USERNAME
server-password: MAVEN_CENTRAL_TOKEN
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
gpg-passphrase: MAVEN_GPG_PASSPHRASE

- name: Build with Maven
run: mvn -B install --file pom.xml

- name: Prepare Maven environnement with Java 11 for deployment to Sonatype
run: export MAVEN_OPTS="--add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED"

- name: Publish to Apache Maven Central
run: mvn deploy -PsonartypeDeploy
env:
MAVEN_USERNAME: ${{ secrets.SONAR_USER }}
MAVEN_CENTRAL_TOKEN: ${{ secrets.SONAR_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
28 changes: 0 additions & 28 deletions .gitlab-ci.yml

This file was deleted.

6 changes: 0 additions & 6 deletions .gitmodules

This file was deleted.

1 change: 0 additions & 1 deletion LETHE-0.8
Submodule LETHE-0.8 deleted from b25078
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2022 Christian Alrabbaa, Stefan Borgwardt, Tom Friese, Patrick Koopmann, Alexej Popovič
Copyright (c) 2024 Christian Alrabbaa, Stefan Borgwardt, Tom Friese, Patrick Koopmann, Mikhail Kotlov, Alexej Popovič

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
58 changes: 26 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ For questions or feedback, you can contact Stefan Borgwardt ([stefan.borgwardt@t
## About Evee
Evee is developed at the [Chair of Automata Theory at TU Dresden](https://tu-dresden.de/ing/informatik/thi/lat "https://tu-dresden.de/ing/informatik/thi/lat").
Evee is a Java library and collection of Protégé plugins that support ontology engineers by explaining reasons for (missing) entailments in OWL ontologies.

- Version 0.5 adds support for Protégé 5.6.0 and Java 11. It also introduces significantly easier to use build and release workflows.
- Version 0.4 introduces new proof generators for fragments of OWL 2 EL using the graph reasoning engine [Nemo](https://github.com/knowsys/nemo), which are described in the paper

C. Alrabbaa, S. Borgwardt, P. Herrmann, M. Krötzsch: **The shape of EL proofs: A tale of three calculi**, in: P. Koopmann, Y. Ibáñez-García, (Eds.), Proceedings of the 38th International Workshop on Description Logics (DL), CEUR Workshop Proceedings, Opole, Poland, 2025. To appear.
Expand Down Expand Up @@ -49,9 +49,9 @@ Evee is a Java library and collection of Protégé plugins that support ontology
<img src="https://user-images.githubusercontent.com/8749392/183616469-05452593-ae9b-496a-a55d-4fda6d122f2a.png" width="40%" height="40%">

## Using the Evee plugins
1. Install [Protégé](https://protege.stanford.edu/ "https://protege.stanford.edu/"). Evee was developed for and tested with Protégé version 5.5.0.
1. Install [Protégé](https://protege.stanford.edu/ "https://protege.stanford.edu/"). Evee was developed for and tested with Protégé version 5.6.5
2. Install both the [protege-proof-explanation](https://github.com/liveontologies/protege-proof-explanation "https://github.com/liveontologies/protege-proof-explanation") plugin and the [proof utility library](https://github.com/liveontologies/puli "https://github.com/liveontologies/puli") PULi.
3. Copy the evee-protege-*.jar files from the Evee release to the directory "plugins" of your local Protégé installation.
3. Copy the evee-protege-*.jar files from the [github release page](https://github.com/de-tu-dresden-inf-lat/evee/releases) to the directory "plugins" of your local Protégé installation.
4. (Optional) Install [SPASS](https://www.mpi-inf.mpg.de/departments/automation-of-logic/software/spass-workbench/classic-spass-theorem-prover "https://www.mpi-inf.mpg.de/departments/automation-of-logic/software/spass-workbench/classic-spass-theorem-prover"), which is required for the Connection-Minimal Abduction solver utilizing [CAPI](https://lat.inf.tu-dresden.de/~koopmann/CAPI/ "https://lat.inf.tu-dresden.de/~koopmann/CAPI/").
For Linux and macOS, please refer to [the web page of CAPI](https://lat.inf.tu-dresden.de/~koopmann/CAPI/ "https://lat.inf.tu-dresden.de/~koopmann/CAPI/") for further information on how to install SPASS.
For Windows, please refer to [the web page of SPASS](https://www.mpi-inf.mpg.de/departments/automation-of-logic/software/spass-workbench/classic-spass-theorem-prover/download "https://www.mpi-inf.mpg.de/departments/automation-of-logic/software/spass-workbench/classic-spass-theorem-prover/download").
Expand All @@ -65,30 +65,24 @@ Some of the Evee plugins require the OWL Reasoner [HermiT](http://www.hermit-rea
## Compiling and using Evee

### Requirements
Evee requires the following software, which is included as a git-submodule:
- The library [lat-scala-dl-tools](https://github.com/de-tu-dresden-inf-lat/lat-scala-dl-tools "https://github.com/de-tu-dresden-inf-lat/lat-scala-dl-tools")
- The library [LETHE-0.8](https://github.com/PKoopmann/LETHE-0.8.git "https://github.com/PKoopmann/LETHE-0.8.git")

The Evee-Protégé plugins require the following other Protégé plugins:
- The [protege-proof-explanation](https://github.com/liveontologies/protege-proof-explanation "https://github.com/liveontologies/protege-proof-explanation") plugin
- The [proof utility library](https://github.com/liveontologies/puli "https://github.com/liveontologies/puli") PULi
- The OWL Reasoner [HermiT](http://www.hermit-reasoner.com/index.html "http://www.hermit-reasoner.com/index.html"), which is already included as a plugin in Protégé version 5.5.0.
- The OWL Reasoner [HermiT](http://www.hermit-reasoner.com/index.html "http://www.hermit-reasoner.com/index.html"), which is already included as a plugin in Protégé version 5.6.0.

These plugins also need to be installed into Protégé in order to use the Evee Protégé plugins.

### Installation

#### Getting the latest stable version of Evee
1. If you have never downloaded this repository, use `git clone https://github.com/de-tu-dresden-inf-lat/evee --recurse-submodules`.
1. If you have never downloaded this repository, use `git clone https://github.com/de-tu-dresden-inf-lat/evee`.
If you have already cloned this repository in the past, use `git pull origin main` from the root directory.
These commands will create/update your local repository of Evee (including the submodules [lat-scala-dl-tools](https://github.com/de-tu-dresden-inf-lat/lat-scala-dl-tools "https://github.com/de-tu-dresden-inf-lat/lat-scala-dl-tools") and [LETHE-0.8](https://github.com/PKoopmann/LETHE-0.8.git "https://github.com/PKoopmann/LETHE-0.8.git")) to the latest commit.
These commands will create/update your local repository of Evee to the latest commit.

2. Currently, the latest stable version of Evee is tagged as `v04` (you can find previous stable versions by checking the *Releases* on GitHub).
To check out the commit of this version, use `git checkout tags/v0.4`.
2. Currently, the latest stable version of Evee is tagged as `v0.5` (you can find previous stable versions by checking the [Releases](https://github.com/de-tu-dresden-inf-lat/evee/releases) on GitHub).
To check out the commit of this version, use `git checkout tags/v0.5`.
This command will set your local Evee-repository to the commit of this release.
However, this does **not** change the submodules [lat-scala-dl-tools](https://github.com/de-tu-dresden-inf-lat/lat-scala-dl-tools "https://github.com/de-tu-dresden-inf-lat/lat-scala-dl-tools") or [LETHE-0.8](https://github.com/PKoopmann/LETHE-0.8.git "https://github.com/PKoopmann/LETHE-0.8.git") to the commit associated with the stable release.

3. Use `git submodule update` to set the submodules [lat-scala-dl-tools](https://github.com/de-tu-dresden-inf-lat/lat-scala-dl-tools "https://github.com/de-tu-dresden-inf-lat/lat-scala-dl-tools") and [LETHE-0.8](https://github.com/PKoopmann/LETHE-0.8.git "https://github.com/PKoopmann/LETHE-0.8.git") to the commit specified in the stable release you have just checked out.

#### Compiling Evee with Maven

Expand All @@ -97,41 +91,41 @@ For easy compilation, we have created several Maven profiles:
- owlapi4: This will compile all submodules of Evee except the Evee Protégé plugins. The resulting .jar files will have the OWL API version 4 as a dependency.
- owlapi5: This will compile all submodules of Evee except the Evee Protégé plugins. The resulting .jar files will have the OWL API version 5 as a dependency.
- protege: This will compile all submodules of Evee including the Evee Protégé plugins. As Protégé itself uses the OWL API version 4, every compiled .jar file will have the OWL API version 4 as a dependency.
- complete: This will compile all submodules of Evee. Every library except for evee-elimination-proofs-fame and the Protégé plugins will be compiled in 2 versions, one using the OWL API version 4, the other using the OWL API version 5.
- complete: This will compile all submodules of Evee. Every library except for evee-elimination-proofs-fame and evee-nemo-proof-extractor and the Protégé plugins will be compiled in 2 versions, one using the OWL API version 4, the other using the OWL API version 5.

The standard profile is "complete", which can be used via the command `mvn clean install` from the root directory.
If you want to use any of the other profiles, use the command `mvn clean install -P profileName` instead, where *profileName* is one of the other 3 mentioned above.

For easy reuse of Evee as a library, use [evee-libs-owlapi4](evee-libs/evee-libs-owlapi4/pom.xml) or [evee-libs-owlapi5](evee-libs/evee-libs-owlapi5/pom.xml) as a dependency, depending on the version of the OWL API that you need.
These libraries contain all submodules of Evee except for the Evee Protégé plugins.

### evee as library
All modules of evee except the Protégé plugins are published on Maven Central under the namespace `io.github.de-tu-dresden-inf-lat`. The artifact `evee-libs` bundels all pblished modules except `evee-protege-core` into one jar. To use it simply add `evee-libs` as a dependency in your projects pom file:
```
<groupId>io.github.de-tu-dresden-inf-lat</groupId>
<artifactId>evee-libs</artifactId>
<version>0.5</version>
```
The above mentioned modules are also published separately on Maven Central. To use one of them use the respective dependency in your pom file.
E.g. for `evee-elk-proof-extractor-owlapi4`:
```
<groupId>io.github.de-tu-dresden-inf-lat</groupId>
<artifactId>evee-elk-proof-extractor-owlapi4</artifactId>
<version>0.5</version>
```

### Technical notes

Evee was developed for and tested with Java version 8.
Evee was developed for and tested with Java version 11.

Any Scala code of this repository was written for Scala version 2.12.6.

The Protégé plugins were developed for and tested with Protégé version 5.5.0.
The Protégé plugins were developed for and tested with Protégé version 5.6.5.

The Nemo-based proof generators were tested with Nemo version 0.8.0.

On Windows, the Connection-Minimal Abduction solver was developed and tested with SPASS 3.5 for Windows.

Evee internally relies on the libraries FamePlus and CAPI.
These two libraries have been pre-installed to a maven-repository in the directory [lib](lib).
If you only want to use the Evee plugins for Protégé, no further steps are required.
However, if you want to use Evee anywhere else (e.g. as part of your own project), Fame and CAPI are required for some functionalities of Evee.
In this case, please declare the directory [lib](lib) as a repository in your pom like this:

```xml
<repository>
<name>localRepository</name>
<id>localRepository</id>
<url>file:path/to/lib</url>
</repository>
```

In this declaration, `path/to/lib` should be replaced by the path to the directory [lib](lib).

## Disclaimer

Expand Down
Loading
Loading