Skip to content

Commit

Permalink
New README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
ykazakov committed May 23, 2024
1 parent 2e7484f commit a490afe
Show file tree
Hide file tree
Showing 5 changed files with 230 additions and 17 deletions.
17 changes: 0 additions & 17 deletions README

This file was deleted.

68 changes: 68 additions & 0 deletions README.md
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 elk-distribution-parent/elk-distribution-resources/README.md
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`).
26 changes: 26 additions & 0 deletions elk-distribution-parent/elk-distribution-resources/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,12 @@
<locale>en,US</locale>
</configuration>
</execution>
<execution>
<id>released-version</id>
<goals>
<goal>released-version</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
Expand Down Expand Up @@ -104,6 +110,26 @@
<goal>resources</goal>
</goals>
</execution>
<!-- filtering and copying of additional files; these will *not* be included in the jar -->
<execution>
<id>filter-main-resources</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/../../</outputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>README.md</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>

Expand Down
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`).

0 comments on commit a490afe

Please sign in to comment.