-
Notifications
You must be signed in to change notification settings - Fork 25
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
230 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
# ELK Reasoner | ||
![Maven Central Version](https://img.shields.io/maven-central/v/org.liveontologies/elk-parent) | ||
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) | ||
[![Build status](https://ci.appveyor.com/api/projects/status/3sv7r52xqm0ja2mi?svg=true)](https://ci.appveyor.com/project/ykazakov/elk-parent) | ||
|
||
A Java-based OWL EL reasoner | ||
|
||
For a detailed information, see the [project wiki](https://github.com/liveontologies/elk-reasoner/wiki). | ||
|
||
## Features | ||
|
||
ELK is an [ontology reasoner](https://en.wikipedia.org/wiki/Semantic_reasoner) implementing a polynomial-time goal-directed [consequence-based procedure](https://doi.org/10.1007/s10817-013-9296-3) for a fragment of [OWL 2 EL](https://www.w3.org/TR/owl2-profiles/#OWL_2_EL). | ||
|
||
It is distinguishing features include: | ||
|
||
#### Concurrent computation: | ||
|
||
ELK can take advantage of *multi-core processors* to speed-up the computation of reasoning results. | ||
|
||
#### Incremental reasoning: | ||
|
||
ELK can update the reasoning results *incrementally* after changes in the ontology by only re-computing the reasoning results that depend on the changed axioms. | ||
In many cases, reasoning results, such as ontology class hierarchy, can be updated almost in real time | ||
|
||
#### Generation of explanations: | ||
|
||
ELK can *explain* logical consequences of ontologies by showing how consequences are derived, step-by-step from the axioms of the ontology: | ||
|
||
<img width="868" alt="Explaining why American is a CheesyPizza" src="https://github.com/liveontologies/elk-reasoner/assets/2140361/515e1a68-4fdc-4699-824d-74b4bb3211f6"> | ||
|
||
## Usage | ||
|
||
ELK is provided in several [distribution packages](https://github.com/liveontologies/elk-reasoner/releases) for different use-cases: | ||
|
||
### Stand-alone application | ||
|
||
A stand-alone command-line Java application can perform selected reasoning tasks with a given ontology. E.g., the following command classifies the [Pizza ontology](https://protege.stanford.edu/ontologies/pizza/pizza.owl) and saves the result in another file: | ||
|
||
``` | ||
java -jar elk.jar -i pizza.owl -c -o pizza-taxonomy.owl | ||
``` | ||
|
||
### OWL API | ||
|
||
A library for the [OWL API](https://owlcs.github.io/owlapi/) library implementing the [OWLReasoner interface](https://owlcs.github.io/owlapi/apidocs_5/org/semanticweb/owlapi/reasoner/OWLReasoner.html). | ||
See, for example, how to [perform queries using an OWL reasoner](https://github.com/owlcs/owlapi/wiki/DL-Queries-with-a-real-reasoner). Both versions 4.x and 5.x of OWL API are currently supported. | ||
To use the ELK OWL API library, include the following maven dependency: | ||
|
||
``` | ||
<dependency> | ||
<groupId>io.github.liveontologies</groupId> | ||
<artifactId>elk-owlapi</artifactId> | ||
<version>${releasedVersion.version}</version> | ||
</dependency> | ||
``` | ||
|
||
### Protégé | ||
|
||
We provide a reasoner plug-in for the [Protégé Desktop](https://protege.stanford.edu) ontology editor, which can be installed from within the editor. | ||
See the [general documentation](https://protegeproject.github.io/protege/) about how to work with ontologies and use reasoners in Protégé. | ||
|
||
## License | ||
|
||
ELK is Copyright (c) 2011 - 2024 Live Ontologies Project. | ||
|
||
All sources of this project are available under the terms of the | ||
[Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0) | ||
(see the file `LICENSE.txt`). |
68 changes: 68 additions & 0 deletions
68
elk-distribution-parent/elk-distribution-resources/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
# ELK Common Distribution Resources | ||
![Maven Central Version](https://img.shields.io/maven-central/v/org.liveontologies/elk-distribution-resources) | ||
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) | ||
[![Build status](https://ci.appveyor.com/api/projects/status/1br4by6ncw0wtks3?svg=true)](https://ci.appveyor.com/project/ykazakov/elk-distribution-resources) | ||
|
||
Contains resources of ELK that are shared among distribution packages | ||
|
||
For further information, see <https://github.com/liveontologies/elk-reasoner/elk-distribution-parent/elk-distribution-resources>. | ||
|
||
## Features | ||
|
||
ELK Common Distribution Resources is tested to work with Protégé 5.5.0. It may work | ||
with other versions of Protégé. | ||
|
||
## Usage | ||
|
||
To install, place all jar files inside the archive | ||
|
||
${plugin-zip.file}.zip | ||
|
||
into the `plugins` folder of the Protege installation. | ||
|
||
The plug-in supports Protege Auto Update feature which can be used for | ||
upgrading to newer versions according to the instructions here: | ||
|
||
http://protegewiki.stanford.edu/wiki/EnablePluginAutoUpdate | ||
|
||
## Development | ||
|
||
To develop extensions to be used with this plug-in, use the following Maven dependency: | ||
|
||
``` | ||
<dependency> | ||
<groupId>io.github.liveontologies</groupId> | ||
<artifactId>elk-distribution-resources</artifactId> | ||
<version>${releasedVersion.version}</version> | ||
</dependency> | ||
``` | ||
|
||
Each extension should be a plug-in that implements the new | ||
extension points specified in | ||
[`src/main/resources/plugin.xml`](https://github.com/liveontologies/elk-reasoner/elk-distribution-parent/elk-distribution-resources/blob/main/src/main/resources/plugin.xml?raw=true) | ||
using which proofs for entailments can be obtained. | ||
|
||
See [Plugin Anatomy](https://protegewiki.stanford.edu/wiki/PluginAnatomy) for general | ||
information about developing Protégé plug-ins. | ||
|
||
To use snapshots versions of this library (if not compiled from sources), please add | ||
the Sonatype OSSRH snapshot repository either to your `pom.xml` or `settings.xml`: | ||
``` | ||
<repositories> | ||
<repository> | ||
<id>ossrh-snapshots</id> | ||
<url>https://s01.oss.sonatype.org/content/repositories/snapshots</url> | ||
<snapshots> | ||
<enabled>true</enabled> | ||
</snapshots> | ||
</repository> | ||
</repositories> | ||
``` | ||
|
||
## License | ||
|
||
ELK Common Distribution Resources is Copyright (c) 2011 - 2024 Department of Computer Science, University of Oxford | ||
|
||
All sources of this project are available under the terms of the | ||
[Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0) | ||
(see the file `LICENSE.txt`). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
68 changes: 68 additions & 0 deletions
68
elk-distribution-parent/elk-distribution-resources/src/main/resources/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
# ${project.parent.parent.name} | ||
![Maven Central Version](https://img.shields.io/maven-central/v/org.liveontologies/${project.parent.parent.artifactId}) | ||
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) | ||
[![Build status](https://ci.appveyor.com/api/projects/status/3sv7r52xqm0ja2mi?svg=true)](https://ci.appveyor.com/project/ykazakov/${project.parent.parent.artifactId}) | ||
|
||
${project.parent.parent.description} | ||
|
||
For a detailed information, see the [project wiki](${elk.wiki}). | ||
|
||
## Features | ||
|
||
ELK is an [ontology reasoner](https://en.wikipedia.org/wiki/Semantic_reasoner) implementing a polynomial-time goal-directed [consequence-based procedure](https://doi.org/10.1007/s10817-013-9296-3) for a fragment of [OWL 2 EL](https://www.w3.org/TR/owl2-profiles/#OWL_2_EL). | ||
|
||
It is distinguishing features include: | ||
|
||
#### Concurrent computation: | ||
|
||
ELK can take advantage of *multi-core processors* to speed-up the computation of reasoning results. | ||
|
||
#### Incremental reasoning: | ||
|
||
ELK can update the reasoning results *incrementally* after changes in the ontology by only re-computing the reasoning results that depend on the changed axioms. | ||
In many cases, reasoning results, such as ontology class hierarchy, can be updated almost in real time | ||
|
||
#### Generation of explanations: | ||
|
||
ELK can *explain* logical consequences of ontologies by showing how consequences are derived, step-by-step from the axioms of the ontology: | ||
|
||
<img width="868" alt="Explaining why American is a CheesyPizza" src="https://github.com/liveontologies/elk-reasoner/assets/2140361/515e1a68-4fdc-4699-824d-74b4bb3211f6"> | ||
|
||
## Usage | ||
|
||
ELK is provided in several [distribution packages](https://github.com/liveontologies/elk-reasoner/releases) for different use-cases: | ||
|
||
### Stand-alone application | ||
|
||
A stand-alone command-line Java application can perform selected reasoning tasks with a given ontology. E.g., the following command classifies the [Pizza ontology](https://protege.stanford.edu/ontologies/pizza/pizza.owl) and saves the result in another file: | ||
|
||
``` | ||
java -jar elk.jar -i pizza.owl -c -o pizza-taxonomy.owl | ||
``` | ||
|
||
### OWL API | ||
|
||
A library for the [OWL API](https://owlcs.github.io/owlapi/) library implementing the [OWLReasoner interface](https://owlcs.github.io/owlapi/apidocs_5/org/semanticweb/owlapi/reasoner/OWLReasoner.html). | ||
See, for example, how to [perform queries using an OWL reasoner](https://github.com/owlcs/owlapi/wiki/DL-Queries-with-a-real-reasoner). Both versions 4.x and 5.x of OWL API are currently supported. | ||
To use the ELK OWL API library, include the following maven dependency: | ||
|
||
``` | ||
<dependency> | ||
<groupId>io.github.liveontologies</groupId> | ||
<artifactId>elk-owlapi</artifactId> | ||
<version>${releasedVersion.version}</version> | ||
</dependency> | ||
``` | ||
|
||
### Protégé | ||
|
||
We provide a reasoner plug-in for the [Protégé Desktop](https://protege.stanford.edu) ontology editor, which can be installed from within the editor. | ||
See the [general documentation](https://protegeproject.github.io/protege/) about how to work with ontologies and use reasoners in Protégé. | ||
|
||
## License | ||
|
||
ELK is Copyright (c) ${project.inceptionYear} - ${currentYear} ${project.organization.name}. | ||
|
||
All sources of this project are available under the terms of the | ||
[Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0) | ||
(see the file `LICENSE.txt`). |