Carral, DavidDragoste, IrinaKrötzsch, Markus2021-04-232021-04-2320202020http://dx.doi.org/10.1007/s13218-020-00667-6https://dl.gi.de/handle/20.500.12116/36318We propose using rule languages to encode complex reasoning algorithms in a declarative way. This approach—which follows the classical slogan “Algorithm = Logic + Control”—promises to turn high-level specifications of logical calculi as systems of inference rules into declarative rule-based models that can be executed on state-of-the-art rule engines. Simple rule languages suffice for simple logics, and we review our results on using Datalog rules to reason in the description logic $$\mathcal {EL}$$ EL . For more expressive logics, a suitably expressive yet implementable rule language often seems to be missing. To fill this gap, we consider an extension of Datalog with sets, Datalog(S), that can be executed by modern existential-rule reasoners, and we use it to present a rule-based reasoning calculus for the expressive description logic $$\mathcal {ALC}$$ ALC .Reasoner = Logical Calculus + Rule EngineText/Journal Article10.1007/s13218-020-00667-61610-1987