An X-Windows Toolkit for Knowledge Acquisition and Representation Based on Conceptual Structures ? Michel Wermelinger ?? and Jos?e Gabriel Lopes Centro de Intelig ^ encia Artificial/UNINOVA Quinta da Torre , 2825 Monte da Caparica , PORTUGAL fmw | gplg@fct.unl.pt Abstract . This paper describes GET -LRB- Graph Editor and Tools -RRB- , a tool based on Sowa 's conceptual structures , which can be used for generic knowledge acquisition and representation . The system enabled the acquisition of semantic information -LRB- restrictions -RRB- for a lexicon used by a semantic interpreter for Portuguese sentences featuring some deduction capabilities . GET also enables the graphical representation of conceptual relations by incorporating an X-Windows based editor . 1 Introduction Conceptual structures -LSB- 9 -RSB- are an ambitious attempt to represent knowledge in a natural and expressive way . An implementation of the necessary machinery would enable us to test their practical suitability for semantic representation of natural language sentences , for conceptual modeling of relational databases , etc. . So we decided to program a prototype in X-Prolog -LSB- 1 -RSB- , a result of the ESPRIT project \ Advanced Logic Programming Environments '' . One of the main reasons for this choice was the possibility to access the X-Windows functionalities in order to display conceptual structures making use of their easy to read graphical notation . The resulting implementation , called Graph Editor and Tools -LRB- GET -RRB- , is currently a generic tool for knowledge acquisition and representation based on conceptual structures and consists of two distinct parts : the Conceptual Graph Tools -LRB- CGT -RRB- , a portable collection of Prolog predicates implementing the most important operations on conceptual graphs , and the Conceptual Graph Editor -LRB- CGE -RRB- working under X-Windows and using the primitives provided by CGT . ? This work was partially supported by JNICT , under contracts PMC - T/P/TIT / 167/90 and PMCT/MIC/87439 , by INIC , under project CALIPSO , by FCT/UNL , and by Gabinete de Filosofia do Conhecimento . ?? Owns a scholarship -LRB- PMCT/BIC/114 / 90 -RRB- from Junta Nacional de Investiga?c ~ ao Cient ?? fica e Tecnol?ogica . This paper describes CGT , CGE , and a semantic interpreter for Portuguese sentences , focussing on CGE . Finally , possible enhancements as well as some insights gained with this work regarding the utilization of conceptual graphs for Natural Language Processing are given . For a more detailed account see -LSB- 12 -RSB- and -LSB- 13 -RSB- . 2 The Conceptual Graph Tools The Conceptual Graph Tools -LRB- CGT -RRB- are a portable collection of Prolog predicates implementing the most important operations on conceptual graphs , a simple mark - & - sweep memory management system , and a linear notation parser and generator using Definite Clause Grammars -LSB- 6 -RSB- . CGT also provides facilities to manipulate graph databases made up of : -LCB- a type hierarchy -LCB- a set of graphs , where each may have some descriptive text associated to it -LCB- for each concept type , a -LRB- possibly empty -RRB- set of schemata -LCB- for each type , the associated canonical graph and/or definition A sample database comes with the toolkit ; it contains all relations defined in the Conceptual Catalog -LSB- 9 , Appendix B -RSB- , and several basic concept types . CGT enables the user to easily create new types with their associated definitions , schemata , and canonical graphs in order to build several new databases on top of the given one . The linear notation of conceptual graphs as parsed and generated by CGT is a bit different from the one used by Sowa . The formal definition in -LSB- 12 -RSB- extends the one given in -LSB- 9 , Appendix A. 6 -RSB- , especially in what concerns the type and referent fields , including nested contexts . The minor differences are due to efficiency concerns and implementation restrictions -LRB- like using ` \ ' for ` > = ' and ` V ' for ` 8 ' to use just ASCII -RRB- . Major changes or restrictions were motivated by unclear aspects of the formalism , specially regarding coreference links . For example , should one permit any two concepts to corefer ? How can inconsistencies be detected ? Therefore , it was decided that coreferenced concepts must have compatible types , i.e. one is a subtype of the other . Furthermore , contexts may not corefer if their referents contain graphs because it would be difficult to check them for incompatibility . Currently CGT has the following implementational restriction : once a concept or relation type is defined it is n't possible to change neither its definition nor its associated canonical graph . The reason is simple : if the canonical graph associated to a type X changes , all graphs with a concept or relation of type X must probably change , too . And if a type Y is defined in terms of X , the graphs involving concepts or relations of type Y would have to change too , and so on . This weakness can be repaired by adding a specific maintenance tool . CGT features a SAFE3 linear notation parser : it does n't perform any error recovery , stopping with the first error found . It copes quite well with semantic 3 Stop At First Error errors -LRB- e.g. undefined referent variables , unknown type labels -RRB- but it still needs to be made more robust regarding syntax errors -LRB- e.g. a missing ` -RSB- ' -RRB- . Furthermore , it forces the graphs entered by the user to be meaningful by checking them against the canonical graphs of the ocurring relation types . As one should expect , some parts of Sowa 's formalism have not yet been implemented in this first version of the Graph Tools . The most notable omissions are the first-order rules of inference and the OE operator , which translates graphs into first-order logic formulas . The latter could be modified to assert graphs as Prolog clauses in order to use Prolog 's inference engine for deductions . Other things still need to be improved , specially referents and coreference links . Both will require theoretical work ; the former , particularly , will need some reworking while the latter must be carefully analysed with respect to their side-effects on operations such as the canonical formation rules . 3 The Conceptual Graph Editor CGE enables the user to create and manipulate conceptual structures in a graphical way , using the primitives provided by the Tools . It can be considered to be a kind of \ syntax-oriented '' editor , as most commands correspond to operations provided by the formalism , thereby enforcing the resulting graph to be canonical . The alternative would be to have a \ visual '' editor allowing to operate on single nodes and arcs , but its implementation would be more difficult because incomplete and ill-formed graphs would have to be taken into account . The Conceptual Graph Editor was coded in X-Prolog , a superset of Prolog including the Widget4 Description Language -LSB- 1 -RSB- which enables the programmer to access the X Windows functionalities in a declarative way . Therefore , the editor takes advantage of the underlying graphical interface , providing an easy way to edit graphs using windows , dialog boxes , icons , buttons , selections , and the combination of mouse and keyboard . Furthermore , the choice of the X - Windows standard increases portability and decreases the learning time for users already familiar with other graphical interfaces . 3.1 The Editor Window A Conceptual Graph Editor is a window comprising five areas -LRB- see Fig . 1 -RRB- : header This area consists of a single line of text displaying a description of the shown graph . The text may be a user defined string -LRB- as in the figure -RRB- , the usual description -LRB- e.g. ` canonical graph for BUS -LRB- x -RRB- is ' , ` relation AGNT -LRB- x , y -RRB- is ' , etc. -RRB- or simply the word ` graph ' . graphical display It is under the header and shows the edited graph -LRB- s -RRB- . linear display It shows the same graph as the graphical display but in linear notation . It is a normal text widget , enabling the user to edit its contents using normal Emacs commands -LSB- 11 -RSB- in order to create graphs which can not be obtained with the menu commands . 4 Window gadget | a graphical object in X-Windows terminology . Fig. 1 . A Conceptual Graph Editor menus Under the two display areas , all possible commands to -LRB- visually -RRB- edit graphs and their nodes are provided . Most operations are directly supported by CGT . buttons Located to the left of the graphical display , the two top buttons provide access to two commands without keyboard shortcuts -LRB- ` Restrict Type ' and ` Restrict Referent ' -RRB- while the other buttons provide an easy control over the way graphs are drawn in the graphical display . The relative sizes of the graphical and linear displays may be changed by dragging the small rectangle between them with the mouse . There is also a ` modified ' label in the bottom left corner , appearing only when a graph has been added to the database but the latter has n't been saved on disk . Several editor windows may be open at the same time . To make better usage of the display area of the monitor , the editor windows may be iconified . In order to distinguish the various editors in an easy way , both the icons and the windows are numbered . 3.2 The Graphical Display The main area within an editor window is occupied by the graphical display of graphs . In CGE , the visual appearance of graphs may be controlled by the user , either semi-automatically or manually for full control . To make the display of conceptual graphs easier , a generic widget to handle the visualization of arbitrary graphs was used -LSB- 8 -RSB- . All graphs in the same context , and only them , are displayed with the same Graph Widget . This gives a lot of flexibility , as graphs in different contexts may be displayed in different ways . The relevant attributes of the Graph Widget for CGE users are : layout mode It indicates if the display of the graph is to be done automatically -LRB- by the widget -RRB- or manually -LRB- by the user , dragging the nodes with the mouse to the desired position -RRB- . layout function This is the algorithm used in automatic mode to calculate the positions of the graph 's nodes . layout style It may be one of the four available styles -LRB- left-right , right-left , top-down , bottom-up -RRB- for automatic layout . There are three pre-defined layout functions : Hierarchy This function is mainly used for hierarchical graphs and it is the one that provides the best results for conceptual graphs . Tree This function can only be used for a single graph that is in fact a tree -LRB- see Fig. 2 . If used to display disconnected graphs , a mess will appear on the screen . Spring This is the only iterative function , i.e. the visual appearance of the graph will depend on the original position of its nodes , whereas the other functions always display the same graph in the same way . To the left of the graphical display there 's a layout control box consisting of eight buttons . The top one controls the layout mode , the next three control the layout function and the bottom four arrows control the layout style . The buttons have a twofold purpose . By clicking on them with the mouse , the user may set the corresponding attributes in the selected context -LRB- s -RRB- . On the other hand , the state of the buttons reflects the attributes of the selected context -LRB- s -RRB- . Fig. 2 . Tree display 3.3 The Editor Commands The commands available in CGE may be issued from the keyboard , selecting an entry of a menu , or clicking with the mouse on an icon . Often , there are at least two ways to invoke the same command . Most of the commands use dialog boxes -LRB- to interact with the user -RRB- and selections -LRB- to show the graphs or nodes on which to operate -RRB- . There are several types of the former -LRB- acknowledge dialogs to display error messages , choice dialogs to present a set of options , etc. -RRB- , taking into account the various needs for user input . Also , two kinds of selections are provided to enable some commands to distinguish their operands -LRB- e.g. the insertion operation needs to know the graph to insert and the context in which to insert it -RRB- . All available commands , except those involving the way graphs are displayed , appear in the following three menus : Editor Menu The Editor Menu contains commands that do n't belong to the conceptual graph formalism , like loading and saving a graph , change the current graph database , deleting an arbitrary graph , and quitting the editor . Graph Menu The commands in this menu operate on whole graphs . They include the canonical formation rules and the propositional rules of inference . Furthermore , there are commands to compute the depth of a graph and to check whether one graph is a generalization , a specialization , or a copy of another graph . Node Menu This menu groups all commands that operate only on relations and concepts . They are divided into three groups : the restrict operation from the canonical formation rules , type expansions , and referent expansions and contractions . There is n't an \ undo '' command , but most of the implemented ones have a counterpart , like drawing vs. erasing a double negation , iteration vs. deiteration , etc. . To cancel the effect of any operation , the ` Clear Graph ' command is provided , but it should be used only in case of a mistake -LRB- e.g. the wrong graphs were joined -RRB- as it is not a canonical or propositional rule . 3.4 Future Work The Graph Widget needs some recoding before being of practical use for the display of conceptual graphs : the algorithms must take the size of the nodes into account , make better usage of space , and maybe a new one must be developped for nested graphs . Because of these problems and other implementational details the visualization of coreference links was n't implemented . Some other possible enhancements are : -LCB- Make a type lattice editor/viewer which would provide an easy way to create new types or to select existing ones . -LCB- Show coreference links and enable the user to edit them in a simple way -LRB- e.g. by pointing and dragging -RRB- . -LCB- Enable the user to choose for each context whether it should be displayed in normal or reduced size , thus improving the effective usage of the available display area . -LCB- Enable the user to do some things -LRB- e.g. lambda abstraction in the type field -RRB- in a more graphical way , instead of having to write the corresponding linear notation for it . 4 A Semantic Interpreter A small semantic interpreter for Portuguese sentences was built using conceptual graphs . The approach taken is similar to the one described in -LSB- 10 -RSB- : The lexicon associates a canonical graph to each possible meaning of a word and the interpreter proceeds in a bottom-up way when processing the syntactic tree . For each subtree it obtains a graph and its so-called \ head '' . At the next level , the interpreter will try to join the graphs by matching directly the corresponding heads . As one can see , the only operations the interpreter needs from CGT are the canonical formation rules . The sentences are parsed with a wide coverage Portuguese syntax description -LSB- 4 -RSB- using the XG formalism -LSB- 7 -RSB- . In its actual state , the semantic interpreter only covers a tiny subset of that description . On the other hand , it performs some deduction on the database constructed from the input sentences . The interpreter accepts three types of sentences -LRB- see the appendix for examples -RRB- : Declarative sentences . They denote assertions to be added to the database , stating a simple negative or positive fact -LRB- e.g. \ The cat does n't eat . '' -RRB- or a rule of the form \ A if B '' , where A and B are simple facts -LRB- e.g. \ The cat eats the mouse if it is hungry . '' -RRB- . The former are represented by negative or positive contexts , respectively , and the latter uses the ` IMP ' relation -LSB- 9 , section 4.2 -RSB- . It must be stressed that there is no anaphora resolution . As a consequence , sentences like \ The cat eats the mouse if it does n't run away . '' must be rewritten into \ The cat eats the mouse if the mouse does n't run away . '' and even in this case no coreference link between the two ` MOUSE ' concepts will be drawn . Therefore , whenever the individual is not specified the interpreter makes the simplifying assumption that the user is always referring to the same one . In the last section of this paper we provide some ideas to work around this problem . Deductions upon graphs are made according to the following four rules , where G/X is a fact represented by a proposition of polarity X containing graph G , A -RRB- B represents the rule \ B if A '' , and < = denotes specialization : G1/pos and G2/pos -RRB- G3/X implies G3/X if G1 < = G2 . G1/neg and G2/neg -RRB- G3/X implies G3/X if G2 < = G1 . G1/pos and G2/X -RRB- G3/neg implies G2 / : X if G1 < = G3 . G1/neg and G2/X -RRB- G3/pos implies G2 / : X if G3 < = G1 . The first two rules are modus ponens , the other two implement modus tollens . For example , the third rule states : if the database contains a positive fact A and a rule stating \ not C if B '' , then the fact \ not B '' will also be in the database if C is a generalization of A. Whenever a new fact or rule is entered by the user , the interpreter tries to match it with the antecedent and consequent of every rule in order to determine if modus ponens or modus tollens may be applied . This process is recursively applied to every deduced fact . As soon as a fact -LRB- deduced or not -RRB- is about to be added , the database is searched for a more general one stating the opposite . If such a fact is found , the sentence must be incoherent with the previously stated premisses , forcing the interpreter to issue a message and to retract all the facts asserted during the deduction process . Interrogative sentences . They may be simple questions -LRB- e.g. \ What does the cat eat ? '' -RRB- or of the form \ A if B '' stating hypotheses -LRB- e.g. \ Does the mouse die if the cat eats ? '' -RRB- . The graph representing the question will have the same form as for a declarative sentence , whereby wh-pronouns are simply dropped or substituted by generic concepts . In the case of a simple question , looking for an answer consists in searching the database for a specialization of the graph representing the question . In the other case -LRB- \ A if B '' -RRB- , the hypothesis B is temporarily put as a normal assertion in the database -LRB- i.e. it is tested for coherence with the known facts and all possible deductions are performed -RRB- and then A is treated like a simple question . Imperative sentences . They are interpreted as instructions to the interpreter . In its actual version , commands consist of a single verb in the imperative form , e.g. \ stop ! '' . The graph representing the command must be known to the interpreter , i.e. the program searches its internal command list for an exact copy of the graph . Only three different commands are known in this version : \ mostra ! '' -LRB- show -RRB- , \ apaga ! '' -LRB- erase -RRB- , \ para ! '' -LRB- stop -RRB- . The first shows one by one on demand the current facts in the database , the second clears the database , and the third is used to quit the interpreter . Some other aspects of the interpretation process are : -LCB- The backtracking facility of Prolog is used to find alternative syntactic and semantic representations for the sentences and multiple answers for the questions . -LCB- Fillmore 's order of preference -LRB- agent , instrument , object -RRB- is used to join the verb and subject graphs . -LCB- Relative clauses are translated into abstractions of the type corresponding to the noun they modify , like in -LSB- 10 -RSB- -LRB- an example is given in the appendix -RRB- . -LCB- Verb arguments and modifiers are distinguished in that the former restrict the concepts of the verb graph while the latter join new graphs , namely those of the modifiers . This means that the graph for the verb must already make provision for all possible arguments . Furthermore , the interpreter prevents arguments and modifiers from having the same semantic role . Last , but not least , the interpreter can be used with or without CGE , the difference being how user input and program output is handled . In the former case , the CGE window is used to show the graphs , while dialog windows handle the user 's input sentences . In the latter case , the linear notation and Prolog 's basic I/O facilities are used . The current state of the interpreter is not completely satisfactory as far as speed and flexibility are concerned . The coverage can also be much improved , but that was n't the purpose of this application . The lack of speed is mainly due to the complexity of graph operations and to the constant copying of the intermediate graphs during the process to make backtracking possible . To increase flexibility and semantic coverage the interpreter could use schemata and the supertypes ' canonical graphs . 5 Conclusions and Future Perspectives As far as we know , GET is the first collection of tools to work easily with conceptual graphs -LRB- CG -RRB- in a logic programming environment with a graphical interface based on X-Windows . It is quite easy to build new types and relations with their associated background knowledge , especially using the CG Editor . The knowledge databases constructed in this manner could then be incorporated into other programs which would call the predicates provided by the CG Tools . There were several advantages in using Prolog , in particular X-Prolog : an easy access to the X Toolkit C functions was possible , thus enabling the existence of a graphical editor ; a linear notation parser and generator could be quickly built with a partially bidirectional DCG ; and finally , the existing Portuguese extraposition grammar could be directly used for a toy semantic interpreter . Unfortunately , X-Prolog is no longer supported . As such , we intend to port the Editor to APPEAL , an X-Windows based programming environment for SICStus Prolog . APPEAL also integrates the Widget Description Language and has the advantage of being supported by a company . The main disadvantage of using Prolog is poor efficiency . The operations on conceptual graphs are extremely complex , mainly because of contexts -LRB- enabling the nesting of graphs -RRB- and coreference links -LRB- connecting nodes over arbitrary contexts -RRB- , and the used data structures must be quite dynamic . As far as it concerns the formalism itself , our overall feeling is that the conceptual structures ' main source of expressiveness is also their main source of problems and fuzziness , namely the referents and coreference links . Therefore , some options had to be taken concerning some less clear points , others were deliberately postponed until the CG researching community agrees on them . Nevertheless , the semantic interpreter showed that the mapping between natural language sentences and conceptual graphs is relatively straightforward . But there are problems such as anaphora resolution that require theoretically backgrounded treatment that we can not find within the conceptual structures theory . Discourse Representation Theory -LSB- 2 -RSB- is the formalism we have chosen at the AI Centre -LRB- CRIA -RRB- of UNINOVA for handling some of those problems raised by text understanding or intentional participation in conversations by computers -LSB- 3 -RSB- . To concile the best of two worlds we envisage a Discourse Representation Structures -LRB- DRS -RRB- processor , as it already exists at CRIA , with anaphora resolution -LSB- 5 -RSB- , etc. , whereby the graphical visualization can be achieved using conceptual structures which are undoubtebly superior for expressing DRS conditions . The DRS | CG mapping could turn out to be easier than expected , as both formalisms have notions for contexts and referents . Acknowledgements We would like to thank Irene Rodrigues for many fruitful discussions , Salvador Abreu for providing X-Prolog and Paulo Quaresma for providing his Graph Widget , both of which made CGE possible , and Claudia Ventura and Sabine Gruninger for reviewing this document . Appendix : An Example Session The following is an excerpt of an actual session with the semantic interpreter without using CGE as the visual graph notation would take too much space . The examples illustrate mainly deduction and question answering . User input begins with ` | : ' and ` ~ ' stands for ` -LRB- NEG -RRB- - > ' . | : o gato joao come o rato se o rato nao fugir . -LRB- If the mouse does n't run away , John the cat will eat it . -RRB- Syntactic analysis done ! Semantic analysis done ! -LSB- PROPOSITION : -LSB- ESCAPE -RSB- - -LRB- AGNT -RRB- - > -LSB- MOUSE : # -RSB- -LRB- SRCE -RRB- - > -LSB- ENTITY -RSB- -RSB- - -LRB- IMP -RRB- - > -LSB- PROPOSITION : -LSB- EAT -RSB- - -LRB- AGNT -RRB- - > -LSB- CAT -RSB- - > -LRB- NAME -RRB- - > -LSB- `` Jo ~ ao '' -RSB- -LRB- OBJ -RRB- - > -LSB- MOUSE : # -RSB- -RSB- -LRB- NEG -RRB- . Another interpretation ? -LRB- y/n -RRB- | : n | : um rato nao foge se o rato come queijo . -LRB- If a mouse is eating cheese , it wo n't run away . -RRB- Syntactic analysis done ! Semantic analysis done ! ~ -LSB- PROPOSITION : -LSB- ESCAPE -RSB- - -LRB- AGNT -RRB- - > -LSB- MOUSE -RSB- -LRB- SRCE -RRB- - > -LSB- ENTITY -RSB- -RSB- < - -LRB- IMP -RRB- < - -LSB- PROPOSITION : -LSB- EAT -RSB- - -LRB- AGNT -RRB- - > -LSB- MOUSE : # -RSB- -LRB- OBJ -RRB- - > -LSB- CHEESE -RSB- -RSB- . Another interpretation ? -LRB- y/n -RRB- | : n | : quem come o rato se o rato comer queijo branco ? -LRB- Who eats the mouse if it eats white cheese ? -RRB- Syntactic analysis done ! Semantic analysis done ! -LSB- PROPOSITION : -LSB- EAT -RSB- - -LRB- AGNT -RRB- - > -LSB- MOUSE : # -RSB- -LRB- OBJ -RRB- - > -LSB- CHEESE -RSB- - > -LRB- ATTR -RRB- - > -LSB- WHITE -RSB- -RSB- - > -LRB- IMP -RRB- - > -LSB- PROPOSITION : -LSB- EAT -RSB- - -LRB- AGNT -RRB- - > -LSB- ANIMATE -RSB- -LRB- OBJ -RRB- - > -LSB- MOUSE : # -RSB- -RSB- . Another interpretation ? -LRB- y/n -RRB- | : n -LSB- PROPOSITION : -LSB- EAT -RSB- - -LRB- AGNT -RRB- - > -LSB- CAT -RSB- - > -LRB- NAME -RRB- - > -LSB- `` Jo ~ ao '' -RSB- -LRB- OBJ -RRB- - > -LSB- MOUSE : # -RSB- -RSB- . Another answer ? -LRB- y/n -RRB- | : y I do not know . | : os gatos que comem queijo nao comem ratos . -LRB- Cats that eat cheese do n't eat mice . -RRB- Syntactic analysis done ! Semantic analysis done ! ~ -LSB- PROPOSITION : -LSB- EAT -RSB- - -LRB- AGNT -RRB- - > -LSB- \ a -LSB- CAT : * b = * a -RSB- ; -LSB- PROPOSITION : -LSB- EAT -RSB- - -LRB- AGNT -RRB- - > -LSB- CAT : * b -RSB- -LRB- OBJ -RRB- - > -LSB- CHEESE -RSB- -RSB- -RSB- -LRB- OBJ -RRB- - > -LSB- MOUSE -RSB- -RSB- . Another interpretation ? -LRB- y/n -RRB- | : y Sorry ... | : para ! -LRB- Stop ! -RRB- Syntactic analysis done ! Semantic analysis done ! -LSB- PROPOSITION : -LSB- STOP -RSB- - > -LRB- AGNT -RRB- - > -LSB- ANIMATE -RSB- -RSB- . Another interpretation ? -LRB- y/n -RRB- | : n Bye ! yes | ? - References 1 . Salvador Pinto Abreu . ALPES X-Prolog Programming Manual . Centro de Intelig ^ encia Artificial , UNINOVA , 1989 . 2 . Hans Kamp and Uwe Reyle . From Discourse to Logic : An Introduction to Modeltheoretic Semantics of Natural Language , Formal Logic and Discourse Representation Theory , volume I. Kluwer , Dordrecht , 1991 . 3 . Jos?e Gabriel Lopes . Architecture for intentional participation of natural language interfaces in conversations . In C. Brown and G. Koch , editors , Natural Language Understanding and Logic Programming III . Elsevier Science Publishers , 1991 . 4 . Jos?e Gabriel Lopes and Irene Pimenta Rodrigues . Descri?c ~ ao parcial da sintaxe do Portugu ^ es . Technical report , CRIA/UNINOVA , June 1990 . 5 . Jos?e Gabriel Lopes and Irene Pimenta Rodrigues . Reasoning in resolution of temporal anaphores . Technical Note NT-1 / 91-CIUNL , Centro de Inform?atica da UNL , January 1991 . 6 . Fernando Pereira and Stuart Shieber . Prolog and Natural Language Analysis , volume 10 of CSLI Lecture Notes . Center for the Study of Language and Information , 1987 . 7 . Fernando C. N. Pereira . Extraposition grammars . American Journal of Computational Linguistics , 7 -LRB- 4 -RRB- :243 -LCB- 255 , 1981 . 8 . Paulo Quaresma . Graph widget : A tool for automatic data visualization . Technical Report RT-6 / 91-CIUNL , Centro de Inform?atica da UNL , April 1991 . 9 . John F. Sowa . Conceptual Structures : Information Processing in Mind and Machine . The System Programming Series . Addison-Wesley Publishing Company , 1984 . 10 . John F. Sowa and Eileen C. Way . Implementing a semantic interpreter using conceptual graphs . IBM Journal Res . Develop. , 30 -LRB- 1 -RRB- :57 -LCB- 69 , January 1986 . 11 . Richard Stallman . GNU Emacs Manual . Free Software Foundation , 1985 . 12 . Michel Wermelinger . GET : Graph Editor and Tools | the incomplete reference . Technical Report RT-3 / 91-CIUNL , Centro de Inform?atica da Universidade Nova de Lisboa , January 1991 . 13 . Michel Wermelinger . GET | some notes on the implementation . Technical Report RT-4 / 91-CIUNL , Centro de Inform?atica da Universidade Nova de Lisboa , January 1991 .

O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O

conceptual structures
graphical interfaces
natural language processing