org.opencyc.templateparser
Class TemplateParser

java.lang.Object
  |
  +--org.opencyc.templateparser.TemplateParser

public class TemplateParser
extends java.lang.Object

Parses chat text, matching the best of a set of templates and returning an event plus arguments.

Author:
Stephen L. Reed

Copyright 2001 Cycorp, Inc., license is open source GNU LGPL.

the license

www.opencyc.org

OpenCyc at SourceForge

THIS SOFTWARE AND KNOWLEDGE BASE CONTENT ARE PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OPENCYC ORGANIZATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE AND KNOWLEDGE BASE CONTENT, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


Field Summary
static int DEFAULT_VERBOSITY
          The default verbosity of the solution output.
protected  java.util.ArrayList relevantTemplates
          the relevant templates
protected  java.util.ArrayList templates
          the templates
protected  int verbosity
          Sets verbosity of the constraint solver output.
 
Constructor Summary
TemplateParser()
          Constructs a new TemplateParser object.
 
Method Summary
protected  boolean canParseChunkWithoutCapturing(java.util.ArrayList partialInputWords, java.util.ArrayList templateWords)
          Returns true iff the given partial input words be parsed without capturing any variable text, by the given template words.
protected  java.lang.Object[] getNextTemplateWords(CycList partialTemplateElements)
          Returns an array of three objects given the partialTemplateElements.
 java.util.ArrayList getTemplates()
          Returns the templates.
 void initialize()
          Initializes this object.
protected  java.lang.Object[] parse(java.util.ArrayList partialInputWords, CycList partialTemplateElements, ParseResults parseResults)
          Parses the partial input words, placing the results into parseResults, and returning an array of two objects: the first is the new partialInputWords and the second is the new partialTemplateElements.
 ParseResults parse(java.lang.String inputText)
          Parses the given text string using the first matching template.
protected  java.lang.Object[] parseChunkWithCapturing(java.util.ArrayList partialInputWords, java.util.ArrayList templateWords)
          Parses the partial input words, capturing any words before matching the templateWords.
protected  java.lang.Object[] parseIntoWords(java.lang.String inputText)
          Parses the input words and punctuation from given input text.
 void setRelevantTemplates(java.util.ArrayList relevantTemplates)
          Sets the relevant templates.
 void setVerbosity(int verbosity)
          Sets verbosity of the output.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_VERBOSITY

public static final int DEFAULT_VERBOSITY
The default verbosity of the solution output. 0 --> quiet ... 9 -> maximum diagnostic input.

verbosity

protected int verbosity
Sets verbosity of the constraint solver output. 0 --> quiet ... 9 -> maximum diagnostic input.

templates

protected java.util.ArrayList templates
the templates

relevantTemplates

protected java.util.ArrayList relevantTemplates
the relevant templates
Constructor Detail

TemplateParser

public TemplateParser()
Constructs a new TemplateParser object.
Method Detail

initialize

public void initialize()
Initializes this object.

parse

public ParseResults parse(java.lang.String inputText)
Parses the given text string using the first matching template. If relevantTemplates is not null, then only the relevant templates are used, and reset to null when the parse is complete.
Parameters:
inputText - the text string to be parsed
Returns:
the ParseResults

parse

protected java.lang.Object[] parse(java.util.ArrayList partialInputWords,
                                   CycList partialTemplateElements,
                                   ParseResults parseResults)
Parses the partial input words, placing the results into parseResults, and returning an array of two objects: the first is the new partialInputWords and the second is the new partialTemplateElements. Recurses to handle variables in the template.
Parameters:
partialInputWords - the partial input text string
partialTemplateElements - the partial template expression
parseResults - the parseResults object so far
Returns:
an array of two objects: the first is the new partialInputWords and the second is the new partialTemplateElements

parseIntoWords

protected java.lang.Object[] parseIntoWords(java.lang.String inputText)
Parses the input words and punctuation from given input text. Returns an array of two objects; the first object is the list of input words and the second object is the terminal punctuation character, or the empty string if no terminal punctuation
Parameters:
inputText - the input text
Returns:
an array of two objects; the first object is the list of input words and the second object is the terminal punctuation character, or the empty string if no terminal punctuation

getNextTemplateWords

protected java.lang.Object[] getNextTemplateWords(CycList partialTemplateElements)
Returns an array of three objects given the partialTemplateElements. The first object returned is the variable preceding the group of template words (or null if there is none), the second object returned is the group of template words (up to the end of the template elements or the next variable, and the third is the new partialTemplateElements.
Parameters:
partialTemplateElements - the partial template elements
Returns:
an array of three objects given the partialTemplateElements. The first object returned is the variable preceding the group of template words (or null if there is none), the second object returned is the group of template words (up to the end of the template elements or the next variable), and the third is the new partialTemplateElements

parseChunkWithCapturing

protected java.lang.Object[] parseChunkWithCapturing(java.util.ArrayList partialInputWords,
                                                     java.util.ArrayList templateWords)
Parses the partial input words, capturing any words before matching the templateWords. Returns an array of three objects: the first is a Boolean which is true iff the partial input words match the given template words, the second is the list of words captured from the partial input words before matching the template words, the third object returned is the remaining partialInputWords after the matching is performed.
Parameters:
partialInputWords - the partial input text words
templateWords - the template words (up to the end of the template, or to the next variable in the template)
Returns:
an array of three objects: the first is a Boolean which is true iff the partial input words match the given template words, the second is the list of words captured from the partial input words before matching the template words, the third object returned is the remaining partialInputWords after the matching is performed

canParseChunkWithoutCapturing

protected boolean canParseChunkWithoutCapturing(java.util.ArrayList partialInputWords,
                                                java.util.ArrayList templateWords)
Returns true iff the given partial input words be parsed without capturing any variable text, by the given template words.
Parameters:
partialInputWords - the partial input words
templateWords - the template words (up to the end of the template elements or the next variable)
Returns:
true iff the given partial input words can be parsed, without capturing any variable text, by the given template words

getTemplates

public java.util.ArrayList getTemplates()
Returns the templates.
Returns:
the templates

setRelevantTemplates

public void setRelevantTemplates(java.util.ArrayList relevantTemplates)
Sets the relevant templates.
Parameters:
relevantTemplates - the relevant templates for constrained parsing

setVerbosity

public void setVerbosity(int verbosity)
Sets verbosity of the output. 0 --> quiet ... 9 -> maximum diagnostic input.
Parameters:
verbosity - 0 --> quiet ... 9 -> maximum diagnostic input