*xAIML Interpreter
From aitools.org
- *The correct title of this article is xAIML Interpreter. To avoid letting the initial letter be capitalized due to technical restrictions with WikiMedia, we have prepended a "*" (asterisk) to the title.
Contents |
Overview
An xAIML Interpreter is a program that is capable of interpreting one or more dialects of xAIML.
If presented with an xAIML set associated with a "foreign" xAIML dialect, it is able to:
- retrieve the foreign schema
- provide information about elements that the current interpreter does not implement according to the foreign dialect
- indicate which elements it will be able to handle using fallback behavior
- indicate which elements will fail
Any program (such as an AIML interpreter) can implement a small set of required functionality and become an xAIML Interpreter.
When complete, this page will fully describe the requirements for being an xAIML Interpreter.
Requirements
The requirements for an xAIML Interpreter are dividied into general capabilities that will likely be needed to implement the specific functionality, and the specific functionality itself.
General
The following capabilities are likely to be provided by third-party, standard libraries.
An xAIML interpreter must be able to:
- process well-formed XML in a namespace-aware fashion
- validate any XML document against an XML Schema
- resolve an XPointer reference
- read RDDL
Specific Functionality
An xAIML interpreter I must be able to:
- parse an xAIML-Spec-annotated XML Schema, and determine whether the dialect D described by it is supported by I
- If D is a native dialect supported by I, load and interpret documents using this dialect according to the dialect's specification.
- If D is a foreign dialect DF not supported by I, I must be able to:
- retrieve the schema for DF
- compare DF with the native dialects supported by I (described below)
- find the native dialect DN that has the fewest differences from DF
- produce a report about the differences between DN and DF
- determine whether documents using DF can be interpreted at all, according to the criteria of "critical compliance".
- If DF fails the test of critical compliance for I, I must notify the user that it cannot process documents using this dialect.
- If DF passes the test of critical compliance for I, I must be able to:
- produce an Implementation Strategy Report that describes how each element of DF that differs from DN will be interpreted.
- in cases where DF offers choices for fallback strategies, allow the user to choose which strategies to use, either via an interactive mechanism or by reading the user's preferences, if provided.
- interpret documents that this dialect according to the union of:
- I's implementation of known "native" elements that are unchanged from DN in DF,
- fallback strategies specified by DF for elements that differ from DN, and
- user preferences for fallback handling
Dialect Comparison
Critical Compliance
Critical compliance refers to the determination of whether a foreign dialect DF can be interpreted at all by an interpreter I. A critical compliance test C(I, DF) produces a "Boolean" result: either true or false. A true result means that I can interpret a document using DF without fatal errors, but this does not indicate anything about the extent to which interpretation may be considered adequate for a particular application. A result of false means that I cannot construct a strategy for interpreting a document using DF without producing a fatal error.
Critical compliance sets a low threshold for true values. The intent of xAIML is to provide paths to "partial compliance", coupled with determinate descriptions of the same, that allow application users and designers to make their own decisions about what pairings of interpreter and dialect will be sufficient for particular purposes.
