FuN3: Pre-compiling Rules into a High-Level Imperative Language for Top-Down Reasoning
From International Center for Computational Logic
FuN3: Pre-compiling Rules into a High-Level Imperative Language for Top-Down Reasoning
William Van WoenselWilliam Van Woensel, Dörthe ArndtDörthe Arndt, Jos De RooJos De Roo
William Van Woensel, Dörthe Arndt, Jos De Roo
FuN3: Pre-compiling Rules into a High-Level Imperative Language for Top-Down Reasoning
RuleML+RR Rule Challenge 2025, to appear
FuN3: Pre-compiling Rules into a High-Level Imperative Language for Top-Down Reasoning
RuleML+RR Rule Challenge 2025, to appear
- KurzfassungAbstract
Semantic Web (SW) rule languages, such as Notation3 (N3), add declarative programming abilities to the SW platform. To execute rule-based programs using top-down reasoning, the program can first be translated into an imperative language. In that case, the latter’s compiler or interpreter can then simply be used to execute the program. We propose a challenge to implement top-down reasoners by pre-compiling rules into imperative functions written in a modern imperative language. The features of modern imperative languages can be used to simplify such a translation. Tackling this challenge can yield development simplicity, compared to typical abstract machine architectures; and allows for an integrated logic and imperative environment, as translated rule functions can be directly called from other imperative code. We propose one solution to this challenge, called fun3, which pre-compiles N3 rules into imperative functions written in Python. We provide initial performance results that show the feasibility of overcoming this challenge while not overly sacrificing performance. - Projekt:Project: ScaDS.AI
- Forschungsgruppe:Research Group: Computational LogicComputational Logic
@inproceedings{WAR2025,
author = {William Van Woensel and D{\"{o}}rthe Arndt and Jos De Roo},
title = {FuN3: Pre-compiling Rules into a High-Level Imperative Language
for Top-Down Reasoning},
booktitle = {RuleML+RR Rule Challenge 2025},
year = {2025},
month = {September}
}