Skip to main content Accessibility help
×
Hostname: page-component-8448b6f56d-c47g7 Total loading time: 0 Render date: 2024-04-23T16:59:33.168Z Has data issue: false hasContentIssue false

6 - Implementing a simple DL reasoning engine

Published online by Cambridge University Press:  05 August 2014

Péter Szeredi
Affiliation:
Budapest University of Technology and Economics
Gergely Lukácsy
Affiliation:
Cisco Systems, Ireland
Tamás Benkő
Affiliation:
Digital Enterprise Research Institute, Ireland
Get access

Summary

This chapter presents an implementation of a description logic reasoning engine. Building on the theoretical foundations discussed in the previous chapters we present a program, written in the Haskell functional programming language, which is able to answer concept satisfiability queries over an arbitrary TBox using the ALCN language.

Following the introduction we give some examples illustrating the use of the program to be described. We then present the data structures of the program. Next, we describe the transformation of ALCN concepts into negation normal form and present the entry point of the tableau algorithm. The bulk of the chapter deals with the implementation of the main components of the tableau algorithm: the transformation rules and blocking. Finally, we describe the auxiliary functions used in the preceding sections and discuss possible improvements to the reasoning engine.

Introduction

The ALCN tableau algorithm considered in this chapter is implemented in Haskell, a functional programming language with lazy evaluation [65]. Haskell has been chosen for this task because it allows us to present the inference engine in a concise, simple and easily understandable way which is quite close to the mathematical notation employed in the previous chapters. No prior knowledge of Haskell is required to understand this chapter, since the various features of the Haskell programming language are explained at their first use.

Type
Chapter
Information
The Semantic Web Explained
The Technology and Mathematics behind Web 3.0
, pp. 302 - 345
Publisher: Cambridge University Press
Print publication year: 2014

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

Save book to Kindle

To save this book to your Kindle, first ensure coreplatform@cambridge.org is added to your Approved Personal Document E-mail List under your Personal Document Settings on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part of your Kindle email address below. Find out more about saving to your Kindle.

Note you can select to save to either the @free.kindle.com or @kindle.com variations. ‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi. ‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.

Find out more about the Kindle Personal Document Service.

Available formats
×

Save book to Dropbox

To save content items to your account, please confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account. Find out more about saving content to Dropbox.

Available formats
×

Save book to Google Drive

To save content items to your account, please confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account. Find out more about saving content to Google Drive.

Available formats
×