Skip to content

Fuzzy DL OWL 2 v1.0.18

Choose a tag to compare

@giuseppefilippone giuseppefilippone released this 11 Jun 12:52
7086e3d

Add hand-written recursive-descent parser (dl_parser_fast) with a
re2c/CFFI tokenizer and a pyparsing-free semantic-callback module
(dl_parser_clean). It is the new default (DLParserFast) and parses
5-10x faster than the legacy pyparsing grammar; legacy dl_parser.py
is kept as a fallback.

Cythonize hot-path modules (parser, tokenizer, graph) into native
extensions via a poetry build hook (build.py) plus setup.py. pyproject
build-system now requires cython, setuptools and cffi, and the wheel
force-includes the compiled *.so / *.pyd.

Replace networkx with a custom Cython-compiled DiGraph for TBox
classification (add_tdef_links / add_tinc_links / update_role_successors);
original nx-based methods kept commented for reference.
get_variable / get_new_variable overloads annotated; MILPHelper gains
CPLEX executable auto-detection.

Rewrite fuzzyowl2_to_fuzzydl and fuzzydl_to_owl2; add conversion
examples (conversion_dl/.txt, conversion_owl/.ttl) and round-trip,
DL→OWL2 and OWL2→DL test suites.

ConfigReader falls back to a .env file (python-dotenv, discovered from
cwd) when CONFIG.ini is absent; default DEBUG_PRINT flipped to False.
Remove tracked CONFIG.ini; drop owlready2 dependency, add numpy and
python-dotenv; bump pyowl2 to ^1.0.8.

Add benchmark suite; remove legacy fuzzyowl2/parser/owl2_parser.py;
type-hint and docstring cleanup across concept/milp/query layers;
regenerate docs (UML + API rst).