KETL
Knowledge Engineering Toolkit & Language
The Knowledge Engineering Toolkit & Language (KETL) is a
representation language and inference engine being developed to
support a broad range of knowledge-management tasks. The logic-based
representation language provides expressive power similar to CycL, with 2nd-order syntax and 1st-order
semantics. Assertions are fully represented objects. Contexts are
supported for assertions (similar to Microtheories in CycL). The
inference engine is relatively primitive but provides basic inference
capabilities and is being extended. It currently supports transitive
binary predicates (e.g., subClass), extension predicates (e.g., isa),
inheritance, with emerging support for rules and prototypes, truth
maintenance, and explanations.
KETL has been used in five applications:
- Appraising textual contributions during human
collaboration: The first application provides basic ontology and
reasoning support for managing textual contributions in the
collaboration tool Angler, a web-services tool that supports
collaboration among participants on some focus topic . KETL was used
to implement a manually-developed ontology relevant to a library of
collaboration comments about nuclear assets in Pakistan. This ontology
was then used to semantically index and reason about these
collaboration comments. For example, the application determines which
existing comments are most similar to a new comment. The application
also identifies concepts of the ontology that are not "covered" by any
of the existing collaboration comments, promoting suggesting possible
topics for the collaborators to consider in subsequent comments.
- Knowledge sharing during data analytics: The second
application provides support for sharing query data and results among
a set of data-analysis tools, including finding patterns in very large
data sets. KETL was used to implement PHERL, an interlingua that supports the
translations of query patterns and results between the native
languages of the data-analysis tools. This application leveraged the
expressive language of KETL to capture properties of assertions (e.g.,
to indicate that a given query pattern contains a particular atomic
formula).
- Conflict detection and resolution during data fusion: The
third application integrates fragments of a situation description
provided by multiple sensors, identifying and resolving subtle
conflicts among the fragments, in order to provide a single, coherent
situation description. KETL was used to capture background domain
knowledge. Various fragments describing a given situation were then
added into a single integration context. The background knowledge was
applied to elaborate the integration context. Meta-level reasoning was
used to identify conflicts in the elaboration. Explanations of
conflicting beliefs were used to identify candidate repairs for the
conflicts (i.e., hypothesized changes to the emerging situation
description that would resolve the conflicts).
- Anaphora resolution during natural language understanding:
The fourth application resolves anaphora ambiguities in natural
language. KETL was used to implement simple background knowledge in
the domain. The explicit contents of the parsed natural language is
then captured in a comprehension context, using distinct sub-contexts
to capture alternative anaphora meaning. Then background knowledge was
applied to elaborate the comprehension context, revealing tacit
content that identifies the intended meaning of anaphora.
- A personal assistant that understands and performs voiced
requests: The fifth application accepts, understands, and performs
a request voiced in English to email a document. The KETL interface,
enabled with Google Voice, was used to capture the voiced request as
text. A simple English grammar and comprehension heuristics then
translate the text into KETL action specifications. Homophones
captured in the knowledge base enable recovering from ambiguities in
the voice input that produce mistakes in the text translation.
Captured knowledge about how to perform actions (e.g., how to send an
email) enables completing the user's request.
KETL is implemented using Allegro Common Lisp.
For additional information, see KETL.