Giter Site home page Giter Site logo

galigator / openllet Goto Github PK

View Code? Open in Web Editor NEW
96.0 13.0 26.0 60.78 MB

Openllet is an OWL 2 reasoner in Java, build on top of Pellet.

Home Page: https://www.w3.org/TR/owl2-primer/

License: Other

Java 88.95% Batchfile 0.01% Shell 0.01% GAP 1.07% HTML 9.95% CSS 0.01%
owl logic reasoner semantic owl-api jena java owl2 inference

openllet's Introduction

Openllet: An Open Source OWL DL reasoner for Java

CircleCI Gitter Twitter Codacy Badge

Maven Central

Openllet is an OWL 2 DL reasoner:

Openllet can be used with Jena or OWL-API libraries. Openllet provides functionality to check consistency of ontologies, compute the classification hierarchy, explain inferences, and answer SPARQL queries.

Feel free to fork this repository and submit pull requests if you want to see changes, new features, etc. in Openllet. We need a lot more tests, send your samples if you can.

There are some code samples in the examples/ directory. Issues are on Github. Pellet community is on pellet-users mailing list.

Openllet 2.6.X:

  • Refactor modules dependencies.
  • Enforce interface usage in the core system.
  • Lighter hash functions and less conflict when use in multi-thread environnement.
  • since 2.6.5 : full java 11 support, java 11 is a requirement.

Migration :

  • lots of com.clarkparsia.* / com.mindswap.* are refactored into openllet.* to avoid conflicts and have typing changed a lot.
  • dependencies on modern libs.
	<dependency>
		<groupId>com.github.galigator.openllet</groupId>
		<artifactId>openllet-owlapi</artifactId>
		<version>2.6.5</version>
	</dependency>
	<dependency>
		<groupId>com.github.galigator.openllet</groupId>
		<artifactId>openllet-jena</artifactId>
		<version>2.6.5</version>
	</dependency>

NB, the Protege plugin need a Protege that work with an 5.1.X version of the OWL-API, so the main branch of Protege isn't compatible with Openllet.

Roadmap :

  • Fullify strong typing in openllet core (2.7.X).
  • Add support for rdf-database reasoning (2.8.X).

Examples :

Play with the Owl-Api:

try (final OWLManagerGroup group = new OWLManagerGroup())
{
	final OWLOntologyID ontId = OWLHelper.getVersion(IRI.create("http://myOnotology"), 1.0);
	final OWLHelper owl = new OWLGenericTools(group, ontId, true);

	final OWLNamedIndividual x1 = OWL.Individual("#I1");
	final OWLNamedIndividual x2 = OWL.Individual("#I2");

	owl.addAxiom(OWL.equivalentClasses(ClsA, OWL.some(propB, OWL.restrict(XSD.STRING, OWL.facetRestriction(OWLFacet.PATTERN, OWL.constant("A.A"))))));
	owl.addAxiom(OWL.propertyAssertion(x1, propB, OWL.constant("AAA")));
	owl.addAxiom(OWL.propertyAssertion(x2, propB, OWL.constant("BBB")));
	owl.addAxiom(OWL.differentFrom(x1, x2));

	final OpenlletReasoner r = owl.getReasoner();
	assertTrue(r.isEntailed(OWL.classAssertion(x1, ClsA)));
	assertFalse(r.isEntailed(OWL.classAssertion(x2, ClsA)));
}

Play with Jena:

	final String ns = "http://www.example.org/test#";

	final OntModel model = ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC);
	model.read(_base + "uncle.owl");

	final Individual Bob = model.getIndividual(ns + "Bob");
	final Individual Sam = model.getIndividual(ns + "Sam");

	final Property uncleOf = model.getProperty(ns + "uncleOf");

	final Model uncleValues = ModelFactory.createDefaultModel();
	addStatements(uncleValues, Bob, uncleOf, Sam);
	assertPropertyValues(model, uncleOf, uncleValues);

Openllet 2.5.X:

  • full java 8 support, java 8 is a requirement.
  • speed and stability improvement

Changes :

  • Update versions of libs : owlapi 5, jena3 and lots more. Some old libs have been integrated and cleaned, strongly typed into openllet.
  • Corrections : all tests works, no more warnings with high level of reports in Eclipse.

Migration :

  • pellet/owlapi/src/main/java/com/clarkparsia/owlapiv3/ is now pellet/owlapi/src/main/java/com/clarkparsia/owlapi/
  • groupId com.clarkparsia.pellet is now com.github.galigator.openllet

Pellet 1..2.3] Licences and supports:

Thanks for using Openllet.

Others experimentals stuffs

CircleCI Build Status codecov

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.