logicfish / factplusplus-d

FaCT++ import to dlang

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FaCT++ imported to D Language

FaCT++

FaCT++ FaCT++ is the new generation of the well-known FaCT OWL-DL reasoner. FaCT++ uses the established FaCT algorithms, but with a different internal architecture. Additionally, FaCT++ is implementated using > C++ in order to create a more efficient software tool, and to maximise portability. New optimisations have also been introduced, and some new features added.

FaCT++ Page at Manchester University

Notes

The OWL-API part is not done - only the standalone reasoner is included. (See the FaCT++.C folder in the source tree).

We add a static lib because the variadics need extern(D) wrapper functions. The wrappers are prefixed with an underscore.

Unittests are in source/facttests.d and are based on the python examples.

To use in your dub project

Add the dependency factplusplus-d, and put the libraries on your linker path.

To compile fact_test.d

On Posix:

dmd -m64 fact_test.d source/fact.d posix/bin64-debug/libfact.so
LD_LIBRARY_PATH=posix/bin64-debug:$LD_LIBRARY_PATH ./fact_test

On Posix 32:

dmd -m32 fact_test.d source/fact.d posix/bin32-debug/libfact.so
LD_LIBRARY_PATH=posix/bin32-debug:$LD_LIBRARY_PATH ./fact_test

On Windows 64:

dmd -m64 fact_test.d source/fact.d windows/bin64-debug/fact.lib
copy windows/bin64-debug/fact.dll .
fact_test.exe

On Windows 32:

dmd -m32mscoff fact_test.d source/fact.d windows/bin32-debug/fact.lib
copy windows/bin32-debug/fact.dll .
fact_test.exe

To rebuild FaCT++ dynamic library

Download FaCT++ sources from bitbucket. Then build using cmake.

The libraries are built in the FaCT++.C folder.

D Import

htod is used to re-create the header. The typedefs and variadics are manually edited to use std.typecons and core.stdc.stdarg respectively.

About

FaCT++ import to dlang

License:GNU Lesser General Public License v2.1


Languages

Language:D 100.0%