The Fusemate Logic Programming System (System Description)
Fusemate is a logic programming system that implements the possible model semantics for disjunctive logic programs. Its input language is centered around a weak notion of stratification with comprehension and aggregation operators on top of it. Fusemate is implemented as a shallow embedding in the Scala programming language. This enables using Scala data types natively as terms, a tight interface with external systems, and it makes model computation available as an ordinary container data structure constructor. The paper describes the above features and demonstrates them with a non-trivial use-case, the embedding of the description logic ALCIF into Fusemate's input language This version of the paper corrects an error in the published version, which used an unsuitable version of "blocking" in the ALCIF embedding.
READ FULL TEXT