https://github.com/balhoff/arachne
RDF rule engine
https://github.com/balhoff/arachne
owl rdf rule-engine
Last synced: 22 days ago
JSON representation
RDF rule engine
- Host: GitHub
- URL: https://github.com/balhoff/arachne
- Owner: balhoff
- License: bsd-3-clause
- Created: 2017-02-22T15:13:07.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-07-22T10:01:40.000Z (10 months ago)
- Last Synced: 2025-03-25T11:01:36.092Z (about 1 month ago)
- Topics: owl, rdf, rule-engine
- Language: Scala
- Homepage:
- Size: 222 KB
- Stars: 21
- Watchers: 3
- Forks: 6
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Arachne
Arachne is a rule engine for RDF. It implements the Rete/UL algorithm as described in [Production Matching for Large Learning Systems](http://reports-archive.adm.cs.cmu.edu/anon/1995/CMU-CS-95-113.pdf) by Robert B. Doorenbos, an extension of [Forgy's](http://dx.doi.org/10.1016/0004-3702%2882%2990020-0) original Rete algorithm.
### Goals
Arachne was developed initially to support reasoning within the [Noctua/Minerva](https://github.com/geneontology/noctua) system. This use case calls for:
* Scalable handling of very large ontologies (millions of axioms/rules).
* Adequate performance, with large rule sets, for smallish datasets of hundreds to thousands of triples (materialize all inferences in <1 second).
* Simultaneous reuse of reasoner, once all rules have been loaded, for any number of datasets, without re-incurring initialization time.## Usage
```
Usagearachne [options] : Command-line operations for Arachne RDF rule engine
Options
--data : file or folder of RDF data files
--export : export RDF triples to Turtle file
--indirect-types : mark indirect types with additional triple
--inferred-only : export inferred triples only
--ontology : OWL ontology to import into reasoning rules
--rules : Jena-syntax rules file to import
```To compute Abox inferences for an instance dataset `data.ttl` which uses classes and properties from some ontology `ont.owl`, a typical command line would be:
```
arachne --ontology=ont.owl --data=data.ttl --export=output.ttl
```## Building
Install `sbt` (Scala Build Tool) on your system. For Mac OS X, it is easily done using [Homebrew](http://brew.sh): `brew install sbt`. `sbt` requires a working Java installation, but you do not need to otherwise install Scala.
`sbt compile`