Explore chapters and articles related to this topic
B-Prolog: A High Performance Prolog Compiler
Published in Takushi Tanaka, Setsuo Ohsuga, Moonis Ali, Industrial and Engineering Applications of Artificial Intelligence and Expert Systems, 2022
Neng-Fa Zhou, Keiichi Katamine, Isao Nagasawa, Masanobu Umeda, Toyohiko Hirota
B-Prolog is significantly faster than WAM-emulator-based systems. The ATOAM retains many good features of the WAM, but differs from it in (1) predicate arguments are passed directly in stack frames; (2) only one frame is used for each predicate; and (3) predicates are translated into trees, called matching trees, if possible, and clauses are indexed on all input arguments. B-Prolog (2.0) is 40% faster than emulated SICStus Prolog (3.0), 50% faster than Bin-Prolog (4.0), more than twice as fast as XSB (1.40) and SWI-Prolog (2.1).
A Prolog application for reasoning on maths puzzles with diagrams
Published in Journal of Experimental & Theoretical Artificial Intelligence, 2022
Riccardo Buscaroli, Federico Chesani, Giulia Giuliani, Daniela Loreti, Paola Mello
As most puzzles can be interpreted as a CSP, orthogonally to the three layers, the library makes use of Constraint Logic Programming over Finite Domains (CLP(FD)),9 which extends SWI-Prolog with reasoning over finite domains of integers. Constraint Logic Programming over a theory (CLP(); Jaffar and Maher (1994)) is an extension of Logic Programming that provides the capability of expressing constraints over variables, which are then treated not as ‘normal’ logic variables, but rather subjected to the constraint theory specified for the type . CLP(FD) allows to consider variables whose range is over a finite domain, and that can be subjected to arithmetic constraints (such as equalities, disequalities and inequalities), but also global constraints such as all_different.
Knowledge-oriented task and motion planning for multiple mobile robots
Published in Journal of Experimental & Theoretical Artificial Intelligence, 2019
The task-level layer accesses the OWL knowledge using the KnowRob software (Tenorth& Beetz, 2009), a potent knowledge processing tool that enables a flexible access to OWL knowledge. It is mainly developed in the Prolog language and provides fundamental predicates to fetch knowledge, e.g. the query owl_subclass_of(?SubClass, ?Class) explores all available subclasses of a class, owl_individual_of(?Indv, ?Class) seeks to list all individuals of a class, and class_properties(?Class, ?Properties, ?Value) determines the value of a class under particular properties. The communication between the task and motion layers is done using Robot Operation System (ROS, http://www.ros.org/, (Quigley et al., 2009)). The motion planner is encapsulated as a ROS service and the task planner as a ROS client (using the SWI-Prolog library (Wielemaker, Schrijvers, Triska, & Lager, 2012)).
Developing a knowledge-based system for diagnosis and treatment recommendation of neonatal diseases
Published in Cogent Engineering, 2023
Desalegn Wendimu, Kindie Biredagn
Therefore, after the knowledge was acquired from the machine learning algorithm and medical expert, the next task is building the KBS for neonatal disease diagnosis and treatment management. The designed KBS consists of the following four main components: knowledge base, explanation facility, inference engine, and user interface. To summarize, a combination of two programming languages was used to build a prototype system. Hence, SWI-Prolog editor tool version 8.2.3 is used to construct the knowledge base, and Java NetBeans IDE 8.2 with JPL package was used to design the user interface.