Grammar Engineering with LKB and the LinGO Grammar Matrix: Frequently Asked Questions
To the reader
These pages have been prepared in the context of Linguistics 567 (previously Linguistics 471), "Grammar Engineering", at the University of Washington. They may well be of use to other people using the LKB
(Copestake 2002), and in particular those using the Grammar Matrix
. Keep in mind when reading these pages that type, feature, and file names used are particular to the context in which they were written.
For more on the LKB, see Copestake, Ann. 2002. Implementing Typed Feature Structure Grammars
. Stanford: CSLI Publications.
We are also developing a glossary
of terms used here and in the class. While this FAQ was started by Emily Bender
, we hope that in its new wiki format it will receive contributions from others. (For write permission to this Wiki, please contact EmilyBender
- I want to install the LKB on my local machine, what should I do?
- What should I know about documenting my grammar?
Questions about error messages
- I don't think I'm getting any error messages. Does that mean I don't have any errors?
- The LKB says I have an error at position number 873. How do I figure out where that is in my file?
- When I try to load my grammar/the matrix, the LKB says "Error: Attempt to take the value of the unbound variable ...". What am I doing wrong?
- The LKB says I'm missing a right bracket, but I can't figure out where. What should I do?
- When I load my grammar, I get "no possible type for features (...) at path (...)". What is causing this?
- When I load my grammar, I get "Feature ... is introduced at multiple types (...)". What is causing this?
- My grammar loads just fine, but when I try to parse a sentence, it says "no sign can be constructed for ...". What's happening?
- It seems that errors in the lexicon are only detected when I try to parse a sentence containing a word with the error, not when the grammar is loaded. How do I check the whole lexicon?
- When I try to parse a sentence, the LKB says "probable runaway rule". How do I debug this?
- When I try to generate, the LKB says "probable runaway rule". How do I debug this?
- When I try to generate, the LKB says "Probable circular lexical rule". How do I debug this?
- The LKB says "Cyclic check found cycle at ...". What does this mean and how do I debug it?
- I'm trying to write a lexical (or phrase structure rule), but I get the error "Rule without daughter". What does this mean, and how should I fix it?
- The LKB says that I am trying to unify a NULL with CONS. What could the problem be?
- The LKB says that the Unification of rule-x and rule-y failed at path <>. What's that about?
- Unifications failed to reunify when drawing parse tree. What does this mean?
Questions about the parse chart
- How do I get the LKB to show me the parse chart?
- When I look at the parse chart, I don't see an edge that I'm expecting to be there. How do I find out why it's missing?
- How can I tell if an edge is missing in the parse chart?
- Looking at the parse chart, it seems that I do have an edge that spans the whole chart (accounts for all the words), but the LKB still says no parses found. What might be going on?
- How do I tell if I have an edge that spans the whole chart?
- One of my words is showing up in the chart twice. Why?
- One of my words branches to two lexical edges that look exactly the same. Why?
- One of my words isn't showing up in the chart at all. Why?
- I've tried to use interactive unification to find out why an edge can't be built, and it can be built interactively, but it's still not in the chart. What's going on?
- I get two (or more) parses for a sentence. How can I tell where the extra parse is coming from?
- I get two (or more) parses for a sentence, but the Compare window doesn't show any discriminators. Why not? (Same lexical rules applied in other order.)
Questions about lexical rules
- How do I get my lexical rules to apply in a particular order?
- I've written a lexeme-to-lexeme rule, how do I know what information I need to copy up?
- How do I know if my lexical rule should be lexeme-to-lexeme or lexeme-to-word?
- Is there such a thing as a word-to-word rule?
- I'm trying to write a lexical rule, but I get the error "Rule without daughters". What does this mean, and how should I fix it?
- I have written my lexical rule in the grammar file, but it still isn't getting applied. What could be preventing it from being used?
- I have a lexical rule that seems to be applying even when its phonological conditions aren't met. What's going on?
Questions about semantics
- Some of my relations/qeqs aren't showing up in the MRS for the whole parse. Why not?
- Someone told me that types x and y were semantically incompatible, but they do unify. Can they still be semantically incompatible?
- What is a filter rule, and how do I write one?
Questions about types, constraints, and entries
- What do the punctuation marks mean in the tdl files? (A very basic guide to tdl syntax.)
- How do I constrain something to be not of a certain value?
- How do I do disjunction (constrain the value of a feature to be X or Y)?
- Can I make the value of one feature dependent on the value of another?
- How do I define multiple different root conditions?
- How do I see what a type looks like with all of the constraints it inherits from supertypes?
- How do I look at fully specified lexical entries or rules?
- How do I see what definition the LKB has read in for a type?
- How do I browse the type hierarchy?
- How do I write a lexical entry for a word with spaces in it?
- What is a type addendum statement, and when should I use one?
- I've added a rule to my grammar but the LKB doesn't seem to have found it. What's happening?
- I'm trying to add a brand-new constraint on my subtypes, but it says that there is no unification path. What's wrong?
- I'm trying to combine constraints on my lexical items and it's saying it can't unify. What can I do?
Questions about features
- What is the feature geometry assigned in the Matrix? (Or: How do I figure out what paths I need to use?)
- I'm trying to add a new feature, and the LKB doesn't like it. What should I do?
- How do I get the LKB to tell me what type(s) a feature or set of features is appropriate for?
- How do I do interactive unification?
- What should I know about downloading matrix patches?
- What should I know about using Dante (UW specific)?
- The LKB seems to be "forgetting" a constraint/definition I've coded. Why?
- In which files does order matter?
- A menu item seems to have disappeared (e.g., Parse > Compare or Generate). How do I get it back?
- How do I use tab to help me figure out where my syntax error is?
- I have a type/lexical entry/rule which doesn't seem to be inheriting a constraint from its supertype. What might be going on?
- I've downloaded an updated version of the matrix, but the changes specified in the new
matrix.tdl don't seem to be taking effect when I reload the grammar. What's wrong?
- How do I change the default sentence that appears in the parse dialog box when I load up my grammar?
- What's a difference list, and why do we use them?
- All of the sudden, some of the nodes in my tree are labeled with ? instead of N or S or VP. What happened?
- How can I input strings from non-ascii character sets?
- What non-alphanumeric characters are allowed to be part of a string parsed by the LKB, and how can I change that?
- When I switch between grammars (e.g., the English Resource Grammar and a Matrix-derived grammar) the LKB sometimes behaves funny (errors, seg faults, etc.). What's going on?
- When I close the LKB Top Menu, is Lisp supposed to exit as well?
- How can I tell tsdb++ to start with the directories for "home" and "skeletons" that I want each time?
- Why doesn't my language appear in tsdb++ in the treehouse?
- In LKB, when I click on nodes in a parse chart, I don't get a pop-up menu. Why not?
Back to main course page
- 02 Nov 2004
Topic revision: r2 - 2009-01-07 - 21:01:26 - ebender