Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vtramo/concurrent-el-reasoner
Concurrent Classification of EL++ Ontologies
https://github.com/vtramo/concurrent-el-reasoner
classification concurrent-programming description-logic owl-api owl-ontology semantic-web tbox
Last synced: about 1 month ago
JSON representation
Concurrent Classification of EL++ Ontologies
- Host: GitHub
- URL: https://github.com/vtramo/concurrent-el-reasoner
- Owner: vtramo
- Created: 2024-03-10T22:55:31.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-03-26T16:25:24.000Z (9 months ago)
- Last Synced: 2024-07-30T20:49:47.873Z (5 months ago)
- Topics: classification, concurrent-programming, description-logic, owl-api, owl-ontology, semantic-web, tbox
- Language: Java
- Homepage:
- Size: 2.35 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Concurrent Classification of EL++ Ontologies
This project implements a Reasoner for a simplified version of the EL++ logic, with a focus on computing the
classification of a TBox (subsumption hierarchy). The Reasoner is developed in Java, using the [owlapi](https://github.com/owlcs/owlapi).This project is based on the following articles:
- [Pushing the EL Envelope Further](https://lat.inf.tu-dresden.de/research/papers/2005/BaaderBrandtLutz-IJCAI-05.pdf)
- [Concurrent Classification of EL Ontologies](https://iccl.inf.tu-dresden.de/w/images/c/c3/Kazakov-Kroetzsch-Simancik_concurrent-el-reasoning_ISWC2011.pdf)
- [ELK Reasoner: Architecture and Evaluation](https://ceur-ws.org/Vol-858/ore2012_paper10.pdf)## Usage example
```java
void main() {
OWLOntology ontology;
// TBox normalisation
OntologyNormaliser ontologyNormaliser = new OntologyNormaliser(ontology);
OWLOntology normalisedOntology = ontologyNormaliser.createNormalisedOntology();
// Ontology indexing
OntologyIndexer ontologyIndexer = new OntologyIndexer(normalisedOntology);
OntologyIndex ontologyIndex = ontologyIndexer.buildIndex();
// Ontology saturation process
OntologySaturationProcess ontologySaturationProcess = new OntologySaturationProcess(normalisedOntology, ontologyIndex);
SaturationResult saturationResult = ontologySaturationProcess.saturate();
// Build subsumption hierarchy
SubsumptionHierarchyProcess subsumptionHierarchyProcess = new SubsumptionHierarchyProcess();
SubsumptionHierarchy subsumptionHierarchy = subsumptionHierarchyProcess.buildHierarchy(saturationResult);
}
```
## Usage Example (OWL API)
```java
void main() {OWLOntology ontology;
OWLReasonerFactory owlReasonerFactory = new ELPPReasonerFactory();
OWLReasoner myReasoner = owlReasonerFactory.createReasoner(ontology);
myReasoner.precomputeInferences(InferenceType.CLASS_HIERARCHY);
}
```