@make{slides} @define{bigger=transparent,size +6} @define{smaller=transparent,size -6} @pagefooting{right="@-{@-{@-{RDB Santorini 9/27/94 [@value{page}]}}}"} @form{drawing=<@begin{center,leftmargin 0,rightmargin 0, below 2 lines} @comment[@graphic MUST start in first column] @graphic{postscript=@parm(file), magnify=@parm(magnify,default 1.0), boundingbox=@parm(boundingbox,default file)} @string{drawingtagname=[@parm{tag,default Notag}]} @case{drawingtagname, Notag [@comment{No tag given}], Else [@tag{@parm(tag,default [])}]} @end{center}>} @form{scrdump=<@begin{center,leftmargin 0,rightmargin 0, below 2 lines} @graphic{postscript=@parm(file),magnify=@parm(magnify,default 1.0), boundingbox=@parm(boundingbox,default file)} @end{center}>} @comment{-----------------------------------------------------------} @blankspace(2) @heading{The MikroKARAT Distributed Knowledge Acquisition Environment} @begin{center} Dr. Ralf D. Brown Carnegie Mellon University Center for Machine Translation ralf+@@cs.cmu.edu @end{center} @comment{-----------------------------------------------------------} @newpage() @heading{Mikrokosmos} Mikrokosmos is a knowledge-based machine translation project based on multiple interacting microtheories, such as lexical-semantic dependency, aspect, discourse relations, and style. It is a multi-site project, with researchers at New Mexico State University, Carnegie Mellon University in Pennsylvania, and the Department of Defense in Maryland, as well as outside consultants. Thus the need for tools supporting geographically-dispersed users. @comment{-----------------------------------------------------------} @newpage() @heading{MikroKARAT} @begin{format,leftmargin +1.8in} @bigger(Mikro)kosmos @bigger(K)nowledge @bigger(A)quisition and @bigger(R)eview @bigger(A)ssistance @bigger(T)ools @end{format} MikroKARAT is a multi-user, client-server-based knowledge acquisition environment written in C++ using the Motif user interface under X Windows. A first release (still incomplete) was rolled out on September 22, 1994. @comment{-----------------------------------------------------------} @newpage() @heading{Client-Server Architecture} @blankspace(0.75in) @drawing{file="ukarat-arch.pic",magnify 1.3,tag cliserv-arch} @comment{-----------------------------------------------------------} @newpage() @heading{Development Team} @begin{center} Constantin "Costya" Arcadievich Ralf Brown Oren Glickman Dean Grannes Anandeep Pannu Gerald Reno Henry Robertson @end{center} @comment{-----------------------------------------------------------} @newpage() @heading{Goals} Develop a fast and easy-to-use acquisition environment which can be used by multiple geographically dispersed knowledge analysts to simultaneously update multiple large knowledge bases of various kinds. Users should be prevented from accidentally obliterating each other's updates, yet be given the tools with which to cooperate as if they were in the same room rather than thousands of miles apart. Updates should be checked immediately to prevent invalid data from being entered. @comment{-----------------------------------------------------------} @newpage() @heading{ONTOS} ONTOS is an ontology acquisition environment developed in 1988, written in Lisp with an X Windows interface. Drawbacks: @begin{enumerate} Slooooww Few Consistency Checks Buggy Display Code @end{enumerate} @comment{-----------------------------------------------------------} @newpage() @heading{MikroKARAT Client Architecture} @blankspace(0.75in) @drawing{file="ukarat-overview.pic",magnify 1.25, tag client-arch} @comment{-----------------------------------------------------------} @newpage() @heading{The MikroKARAT Client User Interface} @scrdump{file="fullscreen.pic",magnify 0.84} @comment{-----------------------------------------------------------} @newpage() @heading{Knowledge Representation: Frames} Frames are an associative memory: @begin{format} named frames contain @hsp{1in}named slots which contain @hsp{2in}named facets which contain @hsp{3in}actual filler values @end{format} Values are retrieved by giving the name of the frame, slot, and facet containing the value(s) of interest. @comment{-----------------------------------------------------------} @newpage() @heading{FramepaC} FramepaC is a fast frame manipulation package written in C++ and patterned after the Lisp-based FrameKit version 2.0. It trades off some generality present in FrameKit for raw speed. Features: @begin{itemize} Lisp-style polymorphic type system inheritance (multiple methods available) daemons (compile-time option) persistent frames @end{itemize} @comment{-----------------------------------------------------------} @newpage() @heading{Frame Format} FrameKit (old): @begin{format,size -2,indent +0.25in} (make-frame-old frame1 (slot1 (facet1 fillerA fillerB ...) (facet2 fillerC fillerD ...)) (slot2 (facet3 fillerE fillerF ...)) ) @end{format} FrameKit (new): @begin{format,size -2,indent +0.25in} (make-frame frame1 (slot1 (facet1 (view1 fillerA fillerB ...)) (facet2 (view2 fillerC fillerD ...))) (slot2 (facet3 (view3 fillerE fillerF ...))) ) @end{format} FramepaC: @begin{format,size -2,indent +0.25in} [frame1 [slot1 [facet1 fillerA fillerB ...] [facet2 fillerC flllerD ...]] [slot2 [facet3 fillerE flllerF ...]]] @end{format} @comment{-----------------------------------------------------------} @newpage() @heading{Frames and Knowledge Bases} In our system, a knowledge base consists of a set of linked frames. Ontologies are a hierarchy of concepts connected by IS-A and PART-OF relations. Text Meaning Representations (TMRs) are linked by relations such as AGENT, THEME, ASPECT, and ATTITUDE. Lexicons are have sense frames linked by N, V, ADJ, etc. to superentry frames. @comment{-----------------------------------------------------------} @newpage() @heading{Text Meaning Representation} @begin{verbatim,size -3} ;; "... the four concerns said ..." %say_1 agent set_1 theme %create_1 temporal time_1 aspect aspect_1 attitude attitude_1 polarity positive set_1 member-type *company cardinality 4 elements %company_1 %company_2 %company_3 %company_4 %company_1 name "Beijing International Trust and Investment Corp." alias "Bitic" %company_2 name "Nederlandsche Middenstandsbank N.V." %company_3 name "K.K. Yeung Management Consultants, Ltd." %company_4 name "Scriven Trading, Ltd." time_1 absolute-time {past} aspect_1 phase end iteration single duration momentary @end{verbatim} @comment{-----------------------------------------------------------} @newpage() @heading{Text Meaning Representation} @begin{verbatim,size -4.3} [heads [head-list [value say_1 own_1 own_2 own_3 own_4 advise_1 engage_1]]] [say_1 [instance-of [value say]] [agent [value set_1]] [theme [value create_1]] [temporal [value time_1]] [aspect [value aspect_1]] [attitude [value attitude_1]] [polarity [value positive]]] [set_1 [instance-of [value set]] [member-type [value *company]] [cardinality [value = 4]] [elements [value company_1 company_2 company_3 company_4]]] [company_1 [instance-of [value company]] [name [value "Beijing International Trust and Investment Corp."]] [alias [value "Bitic"]]] [company_2 [instance-of [value company]] [name [value "Nederlandsche Middenstandsbank N.V."]]] [company_3 [instance-of [value company]] [name [value "K.K. Yeung Management Consultants, Ltd."]]] [company_4 [instance-of [value company]] [name [value "Scriven Trading, Ltd."]]] [time_1 [instance-of [value time]]] [absolute-time [value {past}]]] [aspect_1 [instance-of [value aspect]] [phase [value end]] [iteration [value single]] [duration [value momentary]]] @end{verbatim} @comment{-----------------------------------------------------------} @newpage() @heading{Permanent Storage of Frames} FramepaC provides transparent demand-loading of frames from either a disk file or a server. Changes necessary to use persistent frames: @begin{enumerate} initialization call: initialize_VFrames_disk or initialize_VFrames_server cleanup call: shutdown_VFrames optional update calls: store_VFrame or synchronize_VFrames @end{enumerate} Multiple databases of frames can be active simultaneously, each in a separate name space. @comment{-----------------------------------------------------------} @newpage() @heading{Frame Editor} A highly-configurable structured editor for frames is the main knowledge-entering tool. The editor configuration can specify: @begin{itemize} required slots or facets permissible slots or facets types of fillers default values aliases for slot names @end{itemize} The editor thus supports both free-form frames such as ontological concepts and very rigid frames such as lexical entries. @comment{-----------------------------------------------------------} @newpage() @heading{Editor Window} @scrdump{file="edit-ont.pic",magnify 0.9} @comment{-----------------------------------------------------------} @newpage() @heading{Graphical Browser} The browser provides an overview of a knowledge base, and the ability to @begin{itemize} launch the editor on a frame create new frames manipulate links between frames @end{itemize} @comment{-----------------------------------------------------------} @newpage() @heading{Browser: Ontology} @scrdump{file="br-ont-h.pic"} @comment{-----------------------------------------------------------} @newpage() @heading{Browser: Ontology} @scrdump{file="br-ont-v.pic",magnify 0.8} @comment{-----------------------------------------------------------} @newpage() @heading{Browser: TMR} @scrdump{file="br-tmr.pic"} @comment{-----------------------------------------------------------} @newpage() @heading{Configuration File: Ontology Browser} @begin{verbatim} Browser-Title: "Frame Browser: %F" ;Geometry: Orientation: HORIZONTAL Start-Node: *ALL Subtree-Only: No Hierarchy: IS-A, PART-OF Lazy-Fetch: 5 Homogeneous-Frames: No ;Disable-Commands: ;Editor-Config-File: ;Editor-Config-Number: @end{verbatim} @comment{-----------------------------------------------------------} @newpage() @heading{Configuration File: Ontology Editor} @begin{verbatim,size -2} ;; Frame Editor configuration file for ontology ;; by Ralf Brown and Sergei Nirenburg ;; last edit: 7/5/94 Editor-Title: "Ontology: %F" ;Geometry: ;Font-Name: ;Font-Size: Permitted-Slots: * Required-Slots: IS-A, DEFINITION, TIME-STAMP Default-Slots: DEFINITION, TIME-STAMP Hidden-Slots: TIME-STAMP ;Restrictions: ;Disable-Commands: Slot: DEFINITION Expand: Yes Valid-Facets: VALUE Required-Facets: VALUE Filler-Type: VALUE = STRING Inherit: None Slot: TIME-STAMP Valid-Facets: VALUE Required-Facets: VALUE Default-Filler: VALUE = "%U on %D at %T" Add-Fillers: VALUE = "%U on %D at %T" Slot: * Valid-Facets: * Required-Facets: SEM @end{verbatim} @comment{-----------------------------------------------------------} @newpage() @heading{Configuration File: Lexicon Editor} @begin{verbatim,size -2} Editor-Title: "Lexicon Entry: %F" Permitted-Slots: ANNO_DEFN, ANNO_EX, APPL_CURR, APPL_LOCAL, APPL_FIELD, APPL_LANG, ORTH_VAR, ORTH_ABBR, PHONOLOGY, MORPH_IRREG, MORPH_STEMV, MORPH_PAR, SYN_CLASS, SYN_IDIOF, SYNS_CLASS, SYNS_FSPAT, SEM_LEXMAP, SEM_MPROC, LR_PAR, LR_SYN, PRAG_FORM, PRAG_SIMP, PRAG_COLR, PRAG_FORC, PRAG_DIRE, PRAG_RESP, PRAG_ANLY, PRAG_GEN, ANNO_COMMENT, TIME-STAMP Required-Slots: ANNO_DEFN, ANNO_EX Default-Slots: ANNO_DEFN, ANNO_EX Hidden-Slots: TIME-STAMP Restrictions: ((PRESENT SYNS_CLASS.SEM) & (ABSENT SYNS_FSPAT.SEM)) | ((PRESENT SYNS_FSPAT.SEM) & (ABSENT SYNS_CLASS.SEM)) Slot: PRAG_FORM Alias: "Formality" Valid-Facets: SEM Required-Facets: SEM Filler-Type: SEM = RANGE(-5,5,0) Default-Filler: VALUE = 0 Max-Fillers: VALUE = 2 [five similar slot definitions omitted] Slot: ANNO_DEFN Alias: "Definition" Valid-Facets: VALUE Required-Facets: VALUE Filler-Type: VALUE = STRING [two similar slot definitions omitted] Slot: TIME-STAMP Alias: "Modification History" Valid-Facets: VALUE Required-Facets: VALUE Filler-Type: VALUE = STRING Default-Filler: VALUE = "%U created on %D at %T" Add-Fillers: VALUE = "%U updated on %D at %T" Slot: APPL_CURR Alias: "Currency" Valid-Facets: * Required-Facets: SEM [three similar slot definitions omitted] Slot: * Valid-Facets: * Required-Facets: SEM @end{verbatim} @comment{-----------------------------------------------------------} @newpage() @heading{Configuration File: TMR Browser} @begin{verbatim,size -2} Browser-Title: "TMR Browser: %F" ;Geometry: Orientation: HORIZONTAL Start-Node: HEADS Subtree-Only: No Hierarchy: HEAD-LIST, AGENT, THEME, ATTITUDE, LOCATION, ELEMENTS, SOURCE, PURPOSE, ASPECT Lazy-Fetch: 3 Homogeneous-Frames: No ;Disable-Commands: Editor-Config-File: "edit-tmr.cfg" ;Editor-Config-Number: @end{verbatim} @comment{-----------------------------------------------------------} @newpage() @heading{Glosser} A very shallow, heuristically-driven English generator for TMRs. @scrdump{file="glosser.pic"} @scrdump{file="glosser2.pic",magnify 0.6} @comment{-----------------------------------------------------------} @newpage() @heading{Linguistic Utilities} MikroKARAT provides access to all the usual utilities: @begin{itemize} dictionary lookup corpus lookup KWIC searches @end{itemize} It also provides a special frame-search capability. The names of all frames in a knowledge base which match the specified criteria are displayed in a pick list, from which the user may select one or more to edit. @comment{-----------------------------------------------------------} @newpage() @heading{KWIC Searches} @scrdump{file="kwic.pic",magnify 0.9} @comment{-----------------------------------------------------------} @newpage() @heading{Frame Searches} @scrdump{file="frsearch.pic",magnify 0.8} @comment{-----------------------------------------------------------} @newpage() @heading{Scanning Found Frames} @scrdump{file="searchresult.pic"} @comment{-----------------------------------------------------------} @newpage() @heading{Chat Utility} To support cooperative updates to a knowledge base, MikroKARAT provides interactive communication between users. (not yet implemented, but one-line messages can be sent to other users) @scrdump{file="send-message.pic"} @comment{-----------------------------------------------------------} @newpage() @heading{Work Remaining} @begin{enumerate} complete structured editor connect constraint checks complete and connect Chat utility connect external linguistic utilities @end{enumerate} @comment{-----------------------------------------------------------} @newpage() @heading{Planned Enhancements} @begin{enumerate} Concept Cluster Manager To-Do lists Annotations @end{enumerate} @comment{-----------------------------------------------------------} @comment{extra slides} @comment{-----------------------------------------------------------} @newpage() @heading{Concept Cluster Manager} What good are concept clusters? Concept clusters permit an easy overview of the state of knowledge acquisition for a particular concept. One can easily determine whether lexical entries for all supported languages have been entered, whether there are sufficient examples provided by TMRs, etc. Incomplete clusters can automatically be flagged for further KA, or even cause the KA tool to initiate the acquisition automatically. The Cluster Manager icon: @drawing{file="cluster.pic"} @comment{-----------------------------------------------------------} @newpage() @heading{Annotations and To-Do Lists} With multiple users, there must be a method for indicating to others what has been done, why it has been done a certain way, and what remains to be done. By creating a "shadow" frame with annotations for each frame in the knowledge base proper, these comments and to-do lists can be stored where they are readily accessible without adding unnecessary data to be loaded by programs using the knowledge base as a source of information. @comment{-----------------------------------------------------------} @newpage() @heading{Configuration File: Lexicon Browser} @begin{verbatim,size -2} Browser-Title: "Lexicon Browser: %F" ;Geometry: Orientation: HORIZONTAL Start-Node: SUPERENTRY_INDEX Subtree-Only: No Hierarchy: ENTRIES, N, V, ADJ, ADV, PP Lazy-Fetch: 3 Homogeneous-Frames: No ;Disable-Commands: ;Editor-Config-File: ;Editor-Config-Number: @end{verbatim} @comment{-----------------------------------------------------------} @newpage() @heading{MikroKARAT Server Display} @scrdump{file="server.pic",magnify 0.85}