Programming with rules and everything else, seamlessly

05/30/2022
by   Yanhong A. Liu, et al.
0

Logic rules are powerful for expressing complex reasoning and analysis problems. At the same time, they are inconvenient or impossible to use for many other aspects of applications. Integrating rules in a language with sets and functions, and furthermore with updates to objects, has been a subject of significant study. What's lacking is a language that integrates all constructs seamlessly. This paper presents a language, Alda, that supports all of rules, sets, functions, updates, and objects as seamlessly integrated built-ins, including concurrent and distributed processes. The key idea is to support predicates as set-valued variables that can be used and updated in any scope, and support queries and inference with both explicit and automatic calls to an inference function. We develop a complete formal semantics for Alda. We design a compilation framework that ensures the declarative semantics of rules, while also being able to exploit available optimizations. We describe a prototype implementation that builds on a powerful extension of Python and employs an efficient logic rule engine. We develop a range of benchmarks and present results of experiments to demonstrate Alda's power for programming and generally good performance.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/30/2023

Integrating Logic Rules with Everything Else, Seamlessly

This paper presents a language, Alda, that supports all of logic rules, ...
research
10/23/2019

Knowledge of Uncertain Worlds: Programming with Logical Constraints

Programming with logic for sophisticated applications must deal with rec...
research
01/11/2016

Inference rules for RDF(S) and OWL in N3Logic

This paper presents inference rules for Resource Description Framework (...
research
08/30/2023

Benchmarking for Integrating Logic Rules with Everything Else

Integrating logic rules with other language features is increasingly sou...
research
09/20/2017

Context-Updates Analysis and Refinement in Chisel

This paper presents the context-updates synthesis component of Chisel--a...
research
02/19/2021

DyNetKAT: An Algebra of Dynamic Networks

We introduce a formal language for specifying dynamic updates for Softwa...
research
04/06/2023

Handling Wikidata Qualifiers in Reasoning

Wikidata is a knowledge graph increasingly adopted by many communities f...

Please sign up or login with your details

Forgot password? Click here to reset