
    /hH                          S SK JrJrJrJrJrJrJrJr  S SK	J
r
  S SKJrJr  S SKJr  S SKJrJr  S SKJr  S SKJr  S SKJr  S S	KJr   " S
 S5      r " S S5      rS r\S:X  a  \" 5         gg! \ a     NTf = f)    )ButtonFrameIntVarLabelListboxMenu	ScrollbarTk)Font)CanvasFrameShowText)
MaltParser)	DrsDrawerDrtVariableExpression)DrtGlue)Variable)RegexpTagger)in_idlec                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rSS jrS rS rS rS rS rSrg)DrtGlueDemo   c                    [        5       U l        U R                  R                  S5        U R                  5         U R	                  U R                  5        Xl        U Vs/ s H  nS PM     snU l        [        U R                  5      U l        U R                  R                  S5        SU l
        / U l        S U l        S U l        S U l        U R                  5         U R!                  U R                  5        U R#                  U R                  5        U R%                  U R                  5        U R'                  U R                  5        U R)                  U R                  5        U R*                  R-                  SU R.                  5        g s  snf )NzDRT Glue Demo   z<Configure>)r
   _toptitle_init_bindings_init_fonts	_examples_readingCacher   _show_grammarset_curExample	_readings_drs
_drsWidget_error
_init_glue_init_menubar_init_buttons_init_exampleListbox_init_readingListbox_init_canvas_canvasbind
_configure)selfexamplesexamples      N/var/www/auris/envauris/lib/python3.13/site-packages/nltk/sem/drt_glue_demo.py__init__DrtGlueDemo.__init__   s+   D			( 	 	#!2:;(wd(; $DII.q! 	 	499%499%!!$)),!!$)),$))$ 	-9/ <s    F
c                 N    [        / SQ5      n[        US9n[        USS9U l        g )N))z^(David|Mary|John)$NNP)zT^(walks|sees|eats|chases|believes|gives|sleeps|chases|persuades|tries|seems|leaves)$VB)z!^(go|order|vanish|find|approach)$r9   )z^(a)$ex_quant)z	^(every)$
univ_quant)z.^(sandwich|man|dog|pizza|unicorn|cat|senator)$NN)z^(big|gray|former)$JJ)z^(him|himself)$PRP)taggerF)	depparserremove_duplicates)r   r   r   _glue)r1   r?   r@   s      r4   r(   DrtGlueDemo._init_glueE   s+    
  f-	yEJ
    c                 f   [        [        5       S   S9U l        UR                  SU R                  5        [	        U5      U l        U R
                  R                  U R                  R                  S5      5        [        SSU R
                  R                  5       S9U l	        [        SU R
                  R                  5       S9U l
        U R
                  R                  5       S	:  a  U R
                  R                  5       S
-
  nOU R
                  R                  5       S
-   n[        SSUS9U l        g )NfontrF   z*Fontsize	helveticabold)familyweightrH   )rK   rH   r      )r   r   _sysfont
option_addr   _sizer"   cgetget	_boldfont_font_bigfont)r1   rootbigs      r4   r   DrtGlueDemo._init_fontsY   s    &(6"23/ D\


t}}))&12[djjnnFVW4::>>3CD
::>>a**.."Q&C**.."Q&CKSIrD   c                    [        U5      =U l        nU R                  R                  SSSS9  [        U R                  U R                  SS9U l        U R
                  R                  5         [        U R                  SSS	S
U R                  SSS9U l        U R                  R                  SSSS9  U R                   H"  nU R                  R                  SSU-  5        M$     U R                  R                  [        [        U R                  5      S5      SS9  [        U R                  5      S:  aj  [        U R                  SS9nU R                  R                  UR                  S9  UR                  U R                  R                   S9  UR                  SSS9  U R                  R#                  SU R$                  5        g )NbothleftrM   fillsidepadxExamplesrF   textsinglegroovewhite#909090#004040#c0f0c0
selectmoderelief
background
foregroundrF   selectforegroundselectbackgroundrightr   r^   r]   expandend  %s   (   heightwidthverticalorientyscrollcommandcommandyr^   r]   <<ListboxSelect>>)r   _exampleFramepackr   rS   _exampleList_labelr   rT   _exampleListr   insertconfigminlenr	   r"   yviewr/   _exampleList_select)r1   parent	listframer3   
listscrolls        r4   r+    DrtGlueDemo._init_exampleListboxj   s   ).v6YV&qA"'T^^*#
 	$$&# &&	
 	G&C~~G$$UVg-=? &  C,?(DB O t~~#"4#5#5jIJ$$JNN$Cd&7&7&=&=>OOcO2 	2D4L4LMrD   c                 V   [        U5      =U l        nU R                  R                  SSSS9  [        U R                  U R                  SS9U l        U R
                  R                  5         [        U R                  SSS	S
U R                  SSS9U l        U R                  R                  SSSS9  [        U R                  SS9nU R                  R                  UR                  S9  UR                  U R                  R                  S9  UR                  SSS9  U R                  5         g )NrZ   r[   rM   r\   Readingsra   rc   rd   re   rf   rg   rh   ri   rp   r   rq   rz   r{   r}   r   r   r   )r   _readingFramer   r   rS   _readingList_labelr   rT   _readingListr	   r   r"   r   _populate_readingListbox)r1   r   r   r   s       r4   r,    DrtGlueDemo._init_readingListbox   s   ).v6YV&qA"'T^^*#
 	$$&# &&	
 	G&C t11*E
  
 ?$"3"3"9"9:W3/%%'rD   c                    U R                   R                  SS5        [        [        U R                  5      5       H%  nU R                   R                  SSUS-   -  5        M'     U R                   R                  [        [        U R                  5      S5      SS9  U R                   R                  SU R                  5        g )	Nr   rs   rt   r   ru      rw   r   )
r   deleteranger   r$   r   r   r   r/   _readingList_select)r1   is     r4   r   $DrtGlueDemo._populate_readingListbox   s      E*s4>>*+A$$UVq1u-=? ,  C,?(DA N 	2D4L4LMrD   c                    U R                   R                  SU R                  5        U R                   R                  SU R                  5        U R                   R                  SU R                  5        U R                   R                  SU R                  5        U R                   R                  SU R                  5        U R                   R                  SU R                  5        U R                   R                  SU R                  5        g )Nz<Control-q>z<Control-x>z<Escape>nz<space>pz<BackSpace>)r   r/   destroynextprevr1   s    r4   r   DrtGlueDemo._init_bindings   s    		}dll3		}dll3		z4<<0		sDII&		y$)),		sDII&		}dii0rD   c                     [        U5      =U l        nUR                  SSSSS9  [        USSSU R                  S	9R                  S
S9  [        USSSU R
                  S	9R                  S
S9  g )Nnonebottom   rM   )r]   r^   r_   padyPrevz#90c0d0black)rb   rl   rm   r   r[   )r^   Next)r   _buttonframer   r   r   r   )r1   r   buttonframes      r4   r*   DrtGlueDemo._init_buttons   s|    */-7Kf8!!D II	
 $F$
 II	
 $F$
rD   c                     SU l         U R                  R                  5       u  p#pEUR                  S-
  nSX#XE4-  U R                  S'   U R                  5         g )Nr      z%d %d %d %dscrollregion)	_autostep_cframer   rx   r.   _redraw)r1   eventx1y1x2y2s         r4   r0   DrtGlueDemo._configure   sO    <<446\\A'47G'G^$rD   c                     [        USSSSS9U l        U R                  R                  SSSSS	9  U R                  R                  5       =o l        S U l        / U l        S U l        g )
Nre   
   rM   sunken)rl   closeenoughborderrk   r   rZ   top)rr   r]   r^   r   )r   r   r   canvasr.   _tree_textwidgets	_textline)r1   r   r   s      r4   r-   DrtGlueDemo._init_canvas   si    "
 	e!D $ 3 3 55 
rD   c                    [        U5      n[        USS9nUR                  SSU R                  SS9  UR                  SSUS9  [        USS9nUR                  S	SU R                  S
S9  UR                  SSU R
                  SS9  UR                  SSUS9  [        USS9nUR                  SSU R                  R                  U R                  SS9  UR                  SSUS9  [        USS9nUR                  SU R                  SSU R                  S9  UR                  SU R                  SSU R                  S9  UR                  SU R                  SSU R                  S9  UR                  SU R                  SSU R                  S9  UR                  SU R                  SSU R                  S9  UR                  SSUS9  [        USS9nUR                  SSU R                  S9  UR                  S SUS9  UR                  US!9  g )"Nr   )tearoffExitr   q)label	underliner   acceleratorFile)r   r   menur   zn, SpacePreviouszp, BackspaceActionzRemove Duplicatesr)r   r   variabler   r   OptionsTinyr   )r   r   r   valuer   Small   Medium   Large   Huge   ViewAbout)r   r   r   Help)r   )r   add_commandr   add_cascader   r   add_checkbuttonrB   rA   _toggle_remove_duplicatesadd_radiobuttonrP   resizeaboutr   )r1   r   menubarfilemenu
actionmenu
optionmenuviewmenuhelpmenus           r4   r)   DrtGlueDemo._init_menubar   sM   v,+At|| 	 	
 	&AHE'1-
Atyyj 	 	
 	499. 	 	
 	(ajI'1-
""%ZZ1122 	# 	
 	)qzJ+  ZZKK 	! 	
 	  ZZKK 	! 	
 	  ZZKK 	! 	
 	  ZZKK 	! 	
 	  ZZKK 	! 	
 	&AHE+7aL&AHE7#rD   c                    U R                   nU R                  b  U R                  R                  5         U R                  (       a?  [	        U R                   U R                  5      U l        U R                  R                  5         U R                  (       a@  [	        U R                   U R                  5      U l        U R                  R                  5         g g N)r.   r&   clearr%   	DrsWidgetdrawr'   )r1   r   s     r4   r   DrtGlueDemo._redraw3  s     ??&OO!!#99'dii@DOOO  ";;'dkkBDOOO  " rD   c                 p    SU l         U R                  c  g U R                  R                  5         S U l        g Nr   )r   r   r   r1   es     r4   r   DrtGlueDemo.destroyF  s-    99			rD   c                 T   U R                   R                  5       nU R                   R                  5       nUS:  a^  [        U5      S:X  a:  [	        US   5      nUS::  a  U R                  5         g U R                  US-
  5        g U R                  US-
  5        g U R                  5         g Nr   r   )r   curselectionrH   r   int_select_previous_example_readingList_store_selectionr1   r   	selectionreadingListSizeindexs        r4   r   DrtGlueDemo.prevM  s    %%224	++002 Q9~"IaL) A:11355eai@ 11/A2EF ))+rD   c                     U R                   S:  a  U R                  U R                   S-
  5        g U R                  [        U R                  5      S-
  5        g r   )r#   _exampleList_store_selectionr   r   r   s    r4   r  $DrtGlueDemo._select_previous_exampled  sG    a--d.>.>.BC --c$...AA.EFrD   c                 R   U R                   R                  5       nU R                   R                  5       nUS:  a]  [        U5      S:X  a<  [	        US   5      nXCS-
  :  a  U R                  5         g U R                  US-   5        g U R                  S5        g U R                  5         g r   )r   r   rH   r   r  _select_next_exampler  r  s        r4   r   DrtGlueDemo.nextl  s    %%224	++002 Q9~"IaL) q01--/55eai@ 11!4 %%'rD   c                     U R                   [        U R                  5      S-
  :  a  U R                  U R                   S-   5        g U R                  S5        g Nr   r   )r#   r   r   r
  r   s    r4   r   DrtGlueDemo._select_next_example  sG    c$..1A55--d.>.>.BC --a0rD   c                 |    SnSn SSK Jn  U" X#S9R                  5         g !   [        U R                  X25         g = f)Nz\NLTK Discourse Representation Theory (DRT) Glue Semantics Demo
Written by Daniel H. GarrettezAbout: NLTK DRT Glue Demor   )Message)messager   )tkinter.messageboxr  showr   r   )r1   r   ABOUTTITLEr  s        r4   r   DrtGlueDemo.about  sA    . 	 ,	.2E/446	.TYY-s   ! ;c                 F    SU l         U R                  R                  5         g r   )r   r   print_to_filer   s     r4   
postscriptDrtGlueDemo.postscript  s    ""$rD   c                 \    [        5       (       a  gU R                  R                  " U0 UD6  g)z
Enter the Tkinter mainloop.  This function must be called if
this demo is created from a non-interactive program (e.g.
from a secript); otherwise, the demo will close as soon as
the script completes.
N)r   r   mainloop)r1   argskwargss      r4   r  DrtGlueDemo.mainloop  s%     99		D+F+rD   Nc                    Ub  U R                   R                  U5        U R                   R                  5       nU R                  R	                  [        U5      * S9  U R                  R	                  [        U5      * S9  U R                  R	                  [        U5      * S9  U R                  R	                  [        US-   5      * S9  U R                  5         g )N)rH   rM   )
rP   r"   rR   rT   	configureabsrS   rN   rU   r   )r1   rH   s     r4   r   DrtGlueDemo.resize  s    JJNN4 zz~~

CI,/  D	l 3s4y\2s4!8}%56rD   c                 V   U R                   R                  (       + U R                   l        U R                  R                  SS5        / U l        U R                  5         U R                   Vs/ s H  nS PM     snU l        SU l        S U l	        S U l
        U R                  5         g s  snf )Nr   rs   r   )rB   rA   r   selection_clearr$   r   r   r    r#   r'   r%   r   )r1   exs     r4   r   %DrtGlueDemo._toggle_remove_duplicates  s    +/::+G+G'G

$))!U3%%'-1^^<^rd^<	 =s   ,B&c                     U R                   R                  5       n[        U5      S:w  a  g U R                  [	        US   5      5        g r  )r   r   r   r
  r  r1   r   r  s      r4   r   DrtGlueDemo._exampleList_select  <    %%224	y>Q))#il*;<rD   c           	         Xl         U R                  U   nU R                  R                  SS5        U(       a  U R                  U   nU(       a1  [        U[        5      (       a  X0l        S U l        OO/ U l        X0l        OA U R                  R                  U5      U l        S U l        U R                  U R                  U'   U R)                  5         U R                  R+                  U5        S U l        U R/                  5         g g ! [         a  n/ U l        [        [        S[        U5      -   5      5      U l        U R                  U R                  U'   U R                  R                  U5        U R                  R!                  USU-  5        U R                  R#                  [%        ['        U R                  5      S5      SS9   S nAGN
S nAff = f)Nr   rs   zError: z  %s *ru   rv   rw   )r#   r   r   r(  r    
isinstancelistr$   r'   rB   parse_to_meaning	Exceptionr   r   strr   r   r   r   r   r   selection_setr%   r   )r1   r  r3   cacher   s        r4   r
  (DrtGlueDemo._exampleList_store_selection  s{    ..'))!U3&&u-EeT**%*N"&DK%'DN"'K%)ZZ%@%@%IDN"&DK04D&&u- ))+++E2DILLN?  ! 
%'DN"7SQRVAS8T"UDK04D&&u- %%,,U3%%,,UX5GI%%,,"3t~~#6;2 - 
s   A D 
GB6GGc                     U R                   R                  5       n[        U5      S:w  a  g U R                  [	        US   5      5        g r  )r   r   r   r  r  r,  s      r4   r   DrtGlueDemo._readingList_select  r.  rD   c                 "   U R                   U   nU R                  R                  SS5        U(       a]  U R                  R                  U5        UR	                  5       R                  5       R                  5       U l        U R                  5         g g )Nr   rs   )	r$   r   r(  r5  simplify	normalizeresolve_anaphorar%   r   )r1   r  readings      r4   r  (DrtGlueDemo._readingList_store_selection  sm    ..'))!U3++E2((*446GGIDILLN rD   )r   rU   rS   r   r.   r   r#   r%   r&   r'   r   r   r   r   rT   rB   r    r   r   r   r$   r!   rP   rN   r   r   r   r   r   )__name__
__module____qualname____firstlineno__r5   r(   r   r+   r,   r   r   r*   r0   r-   r)   r   r   r   r  r   r  r   r  r  r   r   r   r
  r   r  __static_attributes__ rD   r4   r   r      s    #:RK(J" ND(8N1&"F$X#&,.G(.1.%	,=$L=	rD   r   c                   &    \ rS rSrS rS rS rSrg)r   i  c           
          X l         Xl        [        UR                  UR	                  SSSS9S5      S9Ul        SUl        SU l        g )Nr    )rb   rF   rG   r   )r   r   r   r   )r%   r.   r   itemcgetcreate_textrF   _BUFFERbbox)r1   r   drsattribss       r4   r5   DrsWidget.__init__  sH    	!3!3Aqr!3!BFK
  	rD   c                     [        U R                  U R                  S9R                  5       u  pSSUS-   US-   4U l        g )N)r   r   r   )r   r%   r.   r   rL  )r1   rp   r   s      r4   r   DrsWidget.draw  s9    #DIIdllCHHJ519fqj1	rD   c                 N    U R                   R                  U R                  SSS9  g )Nre   0)r]   ry   )r.   create_rectanglerL  r   s    r4   r   DrsWidget.clear
  s    %%diigS%IrD   )r.   r%   rL  N)r@  rA  rB  rC  r5   r   r   rD  rE  rD   r4   r   r     s    !2JrD   r   c                  >    / SQn [        U 5      R                  5         g )N)z
John walkszDavid sees MaryzDavid eats a sandwichzevery man chases a dogzJohn chases himself)r   r  )r2   s    r4   demorW    s    H, ""$rD   __main__N) tkinterr   r   r   r   r   r   r	   r
   tkinter.fontr   nltk.draw.utilr   r   ImportError
nltk.parser   nltk.sem.drtr   r   nltk.sem.gluer   nltk.sem.logicr   nltk.tagr   	nltk.utilr   r   r   rW  r@  rE  rD   r4   <module>rc     sw   ERRR!4
 " 9 ! # ! ^ ^BJ J$%4 zF q  EDEs   "A0 0A98A9