+
    ÖÇÜhçr  ã                   ó@  € ^ RI t ^ RIHt ^ RIt^ RIHt ^ RIHtHt ^ RI	H
t
HtHtHtHt ^ RIHtHtHtHt RRR	RR
RRRRRRR/t. ROt ! R R4      t ! R R]4      t ! R R4      t ! R R]4      t ! R R]4      t ! R R]4      tR R lt]R8X  d
   ]! 4        R# R# )!é    N)Úchain)ÚCounter)ÚdrtÚlinearlogic)ÚAbstractVariableExpressionÚ
ExpressionÚLambdaExpressionÚVariableÚVariableExpression)ÚBigramTaggerÚRegexpTaggerÚTrigramTaggerÚUnigramTaggerÚaÚex_quantÚanÚeveryÚ
univ_quantÚtheÚdef_artÚnoÚno_quantÚdefaultc                   óp   a € ] tR t^$t o RR ltR tR tR tR tRR lt	R t
R	 tR
 tR tR tR tRtV tR# )ÚGlueFormulaNc                ó  € V'       g   \        4       p\        V\        4      '       d   \        P                  ! V4      V n        M:\        V\        4      '       d   Wn        M\        R V: RVP                  : 24      h\        V\        4      '       d+   \        P                  ! 4       P                  V4      V n        MD\        V\        P                  4      '       d   W n        M\        RV: RVP                  : 24      hW0n        R# ©z+Meaning term neither string or expression: ú, z(Glue term neither string or expression: N)ÚsetÚ
isinstanceÚstrr   Ú
fromstringÚmeaningÚRuntimeErrorÚ	__class__r   ÚLinearLogicParserÚparseÚglueÚindices©Úselfr#   r(   r)   s   &&&&Ú//usr/lib/python3/dist-packages/nltk/sem/glue.pyÚ__init__ÚGlueFormula.__init__%   s¾   € ßÜ“eˆGä�gœs×#Ò#Ü%×0Ò0°Ó9ˆD�LÜ˜¤×,Ò,Ø"�Låã˜G×-Ó-ð/óð ô
 �dœC× Ò Ü#×5Ò5Ó7×=Ñ=¸dÓCˆD�IÜ˜œk×4Ñ4×5Ò5Ø�Iåã˜Ÿ›ð)óð ð
 Žó    c                ó  € V P                   VP                   ,          '       d   \        P                  ! RV  RV R24      hV P                   VP                   ,          p \        P                  ! V P                  VP                  VP                   4      pTP                  pT'       db   T P                  P                  4       P                  P                  RRR1,           F%  pT P                  \        RT,          4      T4      pK'  	  T P                  P                  T4      pT P                  YsT4      #   \        P                   d@   p\        P                  ! RT P                  4        RTP                  4        R24      ThRp?ii ; i)zaself = (\x.(walk x), (subj -o f))
arg  = (john        ,  subj)
returns ((walk john),          f)
Ú'z' applied to 'z'.  Indices are not disjoint.Nzv%séÿÿÿÿ)r)   r   ÚLinearLogicApplicationExceptionÚApplicationExpressionr(   Úsimplifyr#   Ú
antecedentÚdependenciesÚmake_LambdaExpressionr
   Úapplytor%   )r+   ÚargÚreturn_indicesÚreturn_glueÚeÚarg_meaning_abstractedÚdepÚreturn_meanings   &&      r,   r9   ÚGlueFormula.applyto?   sT  € ð
 �<‰<˜#Ÿ+™+×%Ô%Ü×=Ò=Ø�D�6˜¨ uÐ,IÐJóð ð "Ÿ\™\¨C¯K©KÕ7ˆNð	Ü%×;Ò;Ø—	‘	˜3Ÿ8™8 S§[¡[óˆKð "%§¡ÐßØ—y‘y×)Ñ)Ó+×6Ñ6×CÑCÙ�"�÷ð �ð *.×)CÑ)CÜ˜U S�[Ó)Ð+Aó*Ò&ñð Ÿ™×-Ñ-Ð.DÓEˆà�~‰~˜n¸>ÓJÐJøô ×:Ñ:ô 	Ü×=Ò=Ø�D—M‘M“OÐ$ N°3·<±<³>Ð2BÀ!ÐDóàðûð	ús   Á6D7 Ä7FÅ:FÆFc                ó   € \        V4      # ©N)r   ©r+   Únames   &&r,   Úmake_VariableExpressionÚ#GlueFormula.make_VariableExpression`   s   € Ü! $Ó'Ð'r/   c                ó   € \        W4      # rC   )r	   ©r+   ÚvariableÚterms   &&&r,   r8   Ú!GlueFormula.make_LambdaExpressionc   s   € Ü Ó/Ð/r/   c                óH  € \        V\        4      '       g   Q h\        VP                  \        4      '       g   Q hV P	                  V P                  VP                  P                  V P                  4      \        P                  ! VP                  V P                  4      4      # rC   )
r    r   r#   r   r%   r8   rJ   r   ÚImpExpressionr(   ©r+   Úothers   &&r,   Úlambda_abstractÚGlueFormula.lambda_abstractf   st   € Ü˜%¤×-Ò-Ð-Ð-Ü˜%Ÿ-™-Ô)C×DÒDÐDÐDØ�~‰~Ø×&Ñ& u§}¡}×'=Ñ'=¸t¿|¹|ÓLÜ×%Ò% e§j¡j°$·)±)Ó<ó
ð 	
r/   c                óö   € V'       g   \        4       pV P                  P                  4       P                  WP                  4      w  r#VV P	                  V P
                  W!P                  4       04      .,           # )z)From Iddo Lev's PhD Dissertation p108-109)r   r(   r5   Úcompile_posr%   r#   Úget)r+   ÚcounterÚcompiled_glueÚ	new_formss   &&  r,   ÚcompileÚGlueFormula.compilen   sa   € çÜ“iˆGØ%)§Y¡Y×%7Ñ%7Ó%9×%EÑ%EØ—^‘^ó&
Ñ"ˆð Ø�N‰N˜4Ÿ<™<¨¿¹»¸ÓHð
õ 
ð 	
r/   c                óœ   € V P                  V P                  P                  4       V P                  P                  4       V P                  4      # rC   )r%   r#   r5   r(   r)   ©r+   s   &r,   r5   ÚGlueFormula.simplifyy   s8   € Ø�~‰~Ø�L‰L×!Ñ!Ó# T§Y¡Y×%7Ñ%7Ó%9¸4¿<¹<ó
ð 	
r/   c                ó¸   € V P                   VP                   8H  ;'       d;    V P                  VP                  8H  ;'       d    V P                  VP                  8H  # rC   )r%   r#   r(   rO   s   &&r,   Ú__eq__ÚGlueFormula.__eq__~   sK   € à�N‰N˜eŸo™oÑ-÷ (ð (Ø—‘ §¡Ñ-÷(ð (à—	‘	˜UŸZ™ZÑ'ð	
r/   c                ó   € W8X  * # rC   © rO   s   &&r,   Ú__ne__ÚGlueFormula.__ne__…   s   € ØÒ Ð r/   c                ó0   € \        V 4      \        V4      8  # rC   ©r!   rO   s   &&r,   Ú__lt__ÚGlueFormula.__lt__‰   s   € Ü�4‹yœ3˜u›:Ñ%Ð%r/   c                ó$  € \        V P                  \        4      '       g   Q hV P                   R V P                   2pV P                  '       dA   VRRP                  R \        V P                  4       4       4      ,           R,           ,          pV# )ú : z : {r   c              3   ó8   "  € T F  p\        V4      x € K  	  R # 5irC   rf   )Ú.0Úindexs   & r,   Ú	<genexpr>Ú&GlueFormula.__str__.<locals>.<genexpr>‘   s   é € Ð"PÑ;O°%¤3 u§: :Ó;Oùs   ‚Ú})r    r)   r   r#   r(   ÚjoinÚsorted)r+   Úaccums   & r,   Ú__str__ÚGlueFormula.__str__Œ   sq   € Ü˜$Ÿ,™,¬×,Ò,Ð,Ð,Ø—<‘<�.  D§I¡I ;Ð/ˆØ�<�<ˆ<ØØ˜Ÿ™Ñ"P¼6À$Ç,Á,Ô;OÓ"PÓPÕPÐSVÕVõˆEð ˆr/   c                ó   € R V ,          # )ú%srb   r\   s   &r,   Ú__repr__ÚGlueFormula.__repr__•   s   € Ø�d�{Ðr/   ©r(   r)   r#   rC   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r-   r9   rF   r8   rQ   rY   r5   r_   rc   rg   rt   rx   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r,   r   r   $   sH   ø‡ € ôò4KòB(ò0ò
ô	
ò
ò

ò!ò&ò÷ð r/   r   c                   ó†   a € ] tR t^™t o RR ltRR ltR tRR ltR tR t	R t
R	 tR
 tR tR tR tR tR tR tRtV tR# )ÚGlueDictNc                ó>   € Wn         W n        V P                  4        R # rC   )ÚfilenameÚfile_encodingÚ	read_file)r+   r†   Úencodings   &&&r,   r-   ÚGlueDict.__init__š   s   € Ø ŒØ%ÔØ�‰Ör/   c                ób  € V'       d   V P                  4         \        P                  P                  V P                  R V P
                  R7      pTP                  4       pT EF?  pTP                  4       p\        T4      '       g   K'  T^ ,          R8X  d   K7  TP                  R^4      p. p^ p^ p	^ p
Rp\        T4      ^8”  d¿   \        T^,          4       F¨  w  rÍTR8X  d   T^ 8X  d
   T^,           p	T^,          pK'  TR8X  dE   T^,          pT^ 8X  d3   T^,          Yš pT^,          T
^,           T pTP                  Yï.4       Kp  Kr  TR8X  d   T^8X  d   Tp
K„  K†  TR8X  g   K�  T^ 8w  d   \        R	T,           4      h M	  \        T4      ^8”  du   T^,          P                  R
4      ^,           pT^,          P                  R4      pTT8X  d   \        4       pM+\        R T^,          TT P                  R4       4       4      p T^ ,          P                  R4      pT^ ,          P                  R4      pT^ ,          RT P                  4       pT^ ,          T^,           T pTT 9  d   / T T&   TfÀ   T'       d|   T T,           Fk  pTT T,          9  d   . T T,          T&   T T,          T,          pT T,          T,          P!                  T4       T T,          T,          P!                  T4       Km  	  EK–  RT T,          9  d   . T T,          R&   T T,          R,          P!                  T4       EKÒ  Y°T,          9  d   . T T,          T&   T'       d.   T T,          T,          P!                  T T,          T,          4       T T,          T,          P!                  T4       EKB  	  R#   \         d[   p \        P                  P                  RT P                  ,           R T P
                  R7      p Rp?EL§  \         d    Thi ; iRp?ii ; i   T^ ,          P                  4       pRp ELÉ; i)Útext)Úformatr‰   zfile:NÚ#rj   Ú(Ú)Ú,z&Formula syntax is incorrect for entry Ú[Ú]c              3   ó@   "  € T F  qP                  4       x € K  	  R # 5irC   )Ústrip)rl   Úrs   & r,   rn   Ú%GlueDict.read_file.<locals>.<genexpr>è   s   é € ð .Ù+Q aŸ™Ÿ	˜	Ó+Qùs   ‚)ÚclearÚnltkÚdataÚloadr†   r‡   ÚLookupErrorÚ
splitlinesr•   ÚlenÚsplitÚ	enumerateÚappendr$   rm   Ú	frozensetÚextend)r+   Úempty_firstÚcontentsr=   ÚlinesÚlineÚpartsÚglue_formulasÚparen_countÚtuple_startÚtuple_commaÚrelationshipsÚiÚcÚmeaning_termÚ	glue_termÚ	rel_startÚrel_endÚstart_inheritanceÚend_inheritanceÚsemÚ	supertypeÚrelsr(   s   &&                      r,   rˆ   ÚGlueDict.read_fileŸ   sÜ  € ßØ�J‰JŒLð	Ü—y‘y—~‘~Ø—‘ f°t×7IÑ7Ið &ó ˆHð ×#Ñ#Ó%ˆäˆDà—:‘:“<ˆDÜ�t—9’9ÙØ�A�w˜#Œ~Ùà—J‘JØ�qóˆEð ˆMØˆKØˆKØˆKà ˆMä�5‹z˜AŒ~Ü% e¨A¥hÖ/‘D�AØ˜C”xØ&¨!Ô+Ø*+¨a­%˜KØ# qÕ(šØ˜cœØ# qÕ(˜Ø&¨!Ô+Ø+0°­8Ø +ð,˜Lð ).¨a­°¸qµÀ1Ð(E˜IØ)×0Ñ0Ø!-Ð 9öñ ,ð ˜cœà'¨1Ô,à*+šKñ -ð ˜cžà'¨1Ô,ä".Ø HÈ4Õ Oó#ð ñ ñ7 0ô: �5‹z˜AŒ~Ø! !�HŸN™N¨3Ó/°!Õ3�	Ø �(Ÿ.™.¨Ó-�Ø Ô'Ü$-£K‘Mä$-ñ .Ø+0°­8°I¸gÐ+F×+LÑ+LÈSÔ+Qó.ó %�Mð!Ø$)¨!¥H§N¡N°3Ó$7Ð!Ø"'¨¥(§.¡.°Ó"5�Ø˜A•hÐ1Ð 1Ð2×8Ñ8Ó:�Ø! !�HÐ%6¸Õ%:¸_ÐM�	ð
 ˜$ŒØ��S‘	ð Ò%÷ Ø $ Y§ ˜Ø t¨C¥yÔ0Ø.0˜D �I d™OØ# I�¨tÕ4˜Ø˜S�	 $�×.Ñ.¨tÔ4Ø˜S�	 $�×.Ñ.Ø)öô !0ð  4¨¥9Ô,Ø*,˜˜S�	 $™Ø˜•I˜d•O×*Ñ*Ø%÷ð !¨S­	Ô1Ø/1�D˜•I˜mÑ,ßØ˜•I˜mÕ,×3Ñ3°D¸µOÀMÕ4RÔSØ�S•	˜-Õ(×/Ñ/Ø!÷ó øô ô 	ðÜŸ9™9Ÿ>™>Ø˜dŸm™mÕ+°FÀT×EWÑEWð *ó –øô ô Ø�ðþð	ûðR!Ø˜A•h—n‘nÓ&�Ø “	ús0   š6N( ÈAPÎ(PÎ4=O7Ï7PÐPÐPÐP.c                ó˜  € R pV  FÁ  pRV,          pW,           F©  p^pW,          V,           F‘  pV^8X  d   WR,           ,          pM VR\        V4      ^,           ,          ,          pVRV,          ,          pV'       d.   V\        W,          V,          4      8X  d   VRV,          ,          pVR,          pV^,          pK“  	  K«  	  KÃ  	  V# )Ú rw   z: Ú z : %sÚ
)rž   )r+   rs   ÚposÚstr_posÚrelsetr®   Úgfs   &      r,   rt   ÚGlueDict.__str__  s¸   € ØˆÛˆCØ˜S•jˆGØŸ)˜)�Ø�Ø�) F×+Ð+�BØ˜A”vØ¨4¥Õ/™à ¬¨G«°qÕ(8Õ!9Õ9˜Ø˜T B�YÕ&�Eß !¤s¨4­9°VÕ+<Ó'=Ô"=Ø ¨6Õ!1Õ1˜Ø˜T•M�EØ˜•F’Aó ,ó $ñ ð ˆr/   c           	     óö  € Vf}   VP                   ^ ,          p\        \        P                  ! VR,          P	                  4       4      4      pVP                   V^ ,          ,          pV P                  W\        4       V4      # V P                  W!V4      p\        P                  ! VR,          P	                  4       4       F7  p	VP                   V	,          p
VP                  V P                  WW44      4       K9  	  V# )NÚdeps)	ÚnodesÚlistr   Úfrom_iterableÚvaluesÚto_glueformula_listr   Úlookupr£   )r+   ÚdepgraphÚnoderV   ÚverboseÚtopÚdepListÚrootÚglueformulasÚdep_idxr?   s   &&&&&      r,   rÉ   ÚGlueDict.to_glueformula_list&  sÇ   € ØŠ<à—.‘. Õ#ˆCÜœ5×.Ò.¨s°6­{×/AÑ/AÓ/CÓDÓEˆGØ—>‘> '¨!¥*Õ-ˆDà×+Ñ+¨H¼G»IÀwÓOÐOà—{‘{ 4°7Ó;ˆÜ×*Ò*¨4°­<×+>Ñ+>Ó+@ÖAˆGØ—.‘. Õ)ˆCØ×ÑØ×(Ñ(¨¸ÓIöñ Bð
 Ðr/   c           	     ó\  € V P                  V4      pR pV F  pW`9   g   K  W,          p M	  Vf   . # V P                  W4       V P                  WQV4      p\        V4      '       g.   \	        RVR,          : RVR,          : RVR,          : R24      hV P                  WqR,          WV4      # )Nz,There is no GlueDict entry for sem type of 'Úwordz' with tag 'Útagz', and rel 'Úrelr1   )Úget_semtypesÚadd_missing_dependenciesÚ_lookup_semtype_optionrž   ÚKeyErrorÚ#get_glueformulas_from_semtype_entry)r+   rÌ   rË   rV   Úsemtype_namesÚsemtyperE   rÊ   s   &&&&    r,   rÊ   ÚGlueDict.lookup7  s²   € Ø×)Ñ)¨$Ó/ˆàˆÛ!ˆDØŽ|Ø�*�Ùñ "ð Š?àˆIà×%Ñ% dÔ5à×,Ñ,¨W¸HÓEˆä�6�{Š{Ýà15°f·°¸tÀE¿{¸{ÈDÐQVÏKÈKðYóð ð
 ×7Ñ7Ø˜•L $°'ó
ð 	
r/   c                ó.  € VR ,          P                  4       pVR8X  dw   VP                  VR,          ,          pV P                  RWB4      pVR ,          pVR,          P                  V. 4       VR,          V,          P	                  VR,          4       R# R# )r×   ÚmainÚheadÚsubjrÄ   ÚaddressN)ÚlowerrÅ   Úlookup_uniqueÚ
setdefaultr¡   )r+   rÌ   rË   r×   Úheadnoderã   Úrelations   &&&    r,   rÙ   Ú!GlueDict.add_missing_dependenciesQ  s|   € Ø�5�k×ÑÓ!ˆà�&Œ=Ø—~‘~ d¨6¥lÕ3ˆHØ×%Ñ% f¨hÓAˆDØ˜E•{ˆHØ��L×#Ñ# H¨bÔ1Ø��L˜Õ"×)Ñ)¨$¨y­/Ö:ñ r/   c                ó†  a€ \        V3R  l\        P                  ! VR,          P                  4       4       4       4      p W,          pV#   \         dk    \        4       p\        T4      R0,
           F(  p\        T4      \        T4      8”  g   K  Yt8  g   K&  TpK*  	  T'       g   RT9   d   RpM R# Y,          p T# i ; i)c              3   óÚ   <"  € T F`  pSP                   V,          R ,          P                  4       \        9  g   K6  SP                   V,          R ,          P                  4       x € Kb  	  R# 5i)r×   N)rÅ   rå   ÚOPTIONAL_RELATIONSHIPS)rl   r?   rË   s   & €r,   rn   Ú2GlueDict._lookup_semtype_option.<locals>.<genexpr>]  sT   øé € ð "
áA�Ø�~‰~˜cÕ" 5Õ)×/Ñ/Ó1Ô9OÑOô /ˆH�N‰N˜3Õ Õ&×,Ñ,×.Ð.ÛAùs
   ƒ3A+»0A+rÄ   N)r¢   r   rÇ   rÈ   rÛ   r   rž   )r+   rÞ   rÌ   rË   r­   rÊ   Ú
best_matchÚrelset_options   &&&f    r,   rÚ   ÚGlueDict._lookup_semtype_option\  sµ   ø€ Ü!ô "
ä×*Ò*¨4°­<×+>Ñ+>Ó+@ÔAó"
ó 
ˆð	)ØÕ+ˆFð( ˆøô' ô 	)ô
 #›ˆJÜ!$ W£°°×!6Ð!6�ä˜Ó&¬¨Z«Ö8Ø%Ö5à!.’Jñ "7÷ Ø˜7”?Ø!%‘JâØÕ(‰Fàˆð'	)ús+   ÁA ÁAC ÂC ÂC Â'
C Â4C Â?C c                óò   € VR,          P                  4       pVR,          P                  4       pVR8X  d(   V\        9   d   \        V,          .# \        R,          .# VR9   d   VR,          V.# VR,          .# )zR
Based on the node, return a list of plausible semtypes in order of
plausibility.
r×   rÕ   Úspecr   rÖ   )ÚnmodÚvmod)rå   ÚSPEC_SEMTYPES)r+   rÌ   r×   rÕ   s   &&  r,   rØ   ÚGlueDict.get_semtypesz  sw   € ð
 �5�k×ÑÓ!ˆØ�F�|×!Ñ!Ó#ˆà�&Œ=Ø”}Ô$Ü% dÕ+Ð,Ð,ä% iÕ0Ð1Ð1ØÐ$Ô$Ø˜•K Ð%Ð%à˜•K�=Ð r/   c                óX  € . pV P                  4       pV F‘  w  r‰V! V P                  W‚4      V	4      p
\        V4      '       g   W*n        MV \        V4      ^,            2V
n        V P	                  V
P
                  W4VP                  4       4      V
n        VP                  V
4       K“  	  V# )é   )Úget_GlueFormula_factoryÚget_meaning_formularž   rÕ   Úinitialize_labelsr(   rU   r¡   )r+   rÊ   rÕ   rÌ   rË   rV   rÑ   ÚglueFormulaFactoryr#   r(   rÁ   s   &&&&&&     r,   rÜ   Ú,GlueDict.get_glueformulas_from_semtype_entryŒ  sœ   € ð ˆà!×9Ñ9Ó;ÐÛ#‰MˆGÙ# D×$<Ñ$<¸WÓ$KÈTÓRˆBÜ�|×$Ò$Ø•à!˜F¤3 |Ó#4°qÕ#8Ð"9Ð:�”à×,Ñ,¨R¯W©W°dÀgÇkÁkÃmÓTˆBŒGà×Ñ Ö#ñ $ð Ðr/   c                óJ   € VP                  RR4      pVP                  RV4      # )z„
:param generic: A meaning formula string containing the
    parameter "<word>"
:param word: The actual word to be replace "<word>"
Ú.r»   z<word>)Úreplace)r+   ÚgenericrÕ   s   &&&r,   rû   ÚGlueDict.get_meaning_formulaž  s%   € ð �|‰|˜C Ó$ˆØ�‰˜x¨Ó.Ð.r/   c           	     óÄ  € \        V\        P                  4      '       du   V P                  VP                  P                  4       W#V4      pV^ ,          P                  4       '       d   \        P                  ! V4      # \        P                  ! V4      # \        P                  ! V P                  VP                  W#V4      V P                  VP                  W#V4      4      # )r   )r    r   ÚAtomicExpressionÚfind_label_namerE   rå   Úisupperr   ÚConstantExpressionrN   rü   r6   Ú
consequent)r+   ÚexprrÌ   rË   Úunique_indexrE   s   &&&&& r,   rü   ÚGlueDict.initialize_labels§  s¦   € Ü�dœK×8Ñ8×9Ò9Ø×'Ñ'¨¯	©	¯©Ó(9¸4È<ÓXˆDØ�A�w�‰× Ò Ü"×5Ò5°dÓ;Ð;ä"×5Ò5°dÓ;Ð;ä×,Ò,Ø×&Ñ& t§¡¸ÈÓUØ×&Ñ& t§¡¸ÈÓUóð r/   c                ó  €  VP                  R 4      pVRV pW^,           R pVR8X  d+   V P                  WsP                  VR,          ,          W44      # V P                  VV P                  WbV4      VV4      #   \         Ed    T P                  T4      pTR8X  d   Tu # TR8X  d   RT,          u # TR8X  d   RT,          u # TR8X  d,   T P                  TP                  TR,          ,          4      u # TR	8X  d   TP                  4        T 2u # TR
8X  d$   T P                  T P                  RY#4      4      u # TR8X  d$   T P                  T P                  RY#4      4      u # T P                  T P                  YT4      4      u # i ; i)r   NÚsuperrâ   ÚfÚvz%svr–   z%srÚvarr   ÚconjaÚbÚconjb)rm   r  rÅ   ræ   Ú
ValueErrorÚ	get_labelÚupper)	r+   rE   rÌ   rË   r  ÚdotÚ
before_dotÚ	after_dotÚlbls	   &&&&&    r,   r  ÚGlueDict.find_label_name´  sx  € ð!	PØ—*‘*˜S“/ˆCà˜d˜s˜ˆJØ 1�W˜Y˜ˆIØ˜WÔ$Ø×+Ñ+ØŸ~™~¨d°6­lÕ;¸Xóð ð ×+Ñ+ØØ×&Ñ& z¸ÓBØØ ó	ð øô õ 	PØ—.‘. Ó&ˆCØ�sŒ{Ø’
Ø˜”Ø˜s•{Ò"Ø˜”Ø˜s•{Ò"Ø˜”Ø—~‘~ h§n¡n°T¸&µ\Õ&BÓCÒCØ˜”ØŸ)™)›+˜ | nÐ5Ò5Ø˜”Ø—~‘~ d×&8Ñ&8¸À$Ó&QÓRÒRØ˜”Ø—~‘~ d×&8Ñ&8¸À$Ó&QÓRÒRà—~‘~ d×&8Ñ&8¸ÀXÓ&NÓOÒOð#	PúsB   ‚AA8 Á#A8 Á8&FÂ FÂ2FÃ0FÃ6FÄ(FÄ=(FÅ'!FÆ
Fc                ó’   € VR,          p. ROV^,
          ,          p\        V4      ^,          pV^ 8”  d   V\        V4      ,           # V# )z“
Pick an alphabetic character as identifier for an entity in the model.

:param value: where to index into the list of characters
:type value: int
rä   )r  ÚgÚhr®   ÚjÚkÚlÚmÚnÚoÚpÚqr–   ÚsÚtÚur  ÚwÚxÚyÚzr   r  r¯   Údr=   )Úintr!   )r+   rÌ   ÚvalueÚletterÚnums   &&   r,   r  ÚGlueDict.get_labelØ  sM   € ð �Y•ˆò
ð6 �!�)õ7ˆô8 �%‹j˜BÕˆØ�Œ7ØœC ›HÕ$Ð$àˆMr/   c                óö  € \         P                  ! VR,          P                  4       4       Uu. uFS  pVP                  V,          R,          P	                  4       VP	                  4       8X  g   K@  VP                  V,          NKU  	  pp\        V4      ^ 8X  d#   \        RP                  VR,          V4      4      h\        V4      ^8”  d#   \        RP                  VR,          V4      4      hV^ ,          # u upi )zL
Lookup 'key'. There should be exactly one item in the associated relation.
rÄ   r×   z#'{}' doesn't contain a feature '{}'rÕ   z&'{}' should only have one feature '{}')r   rÇ   rÈ   rÅ   rå   rž   rÛ   r�   )r+   r×   rÌ   rË   r?   rÄ   s   &&&&  r,   ræ   ÚGlueDict.lookup_unique  sÛ   € ô ×*Ò*¨4°­<×+>Ñ+>Ó+@ÔAó
áA�Ø�~‰~˜cÕ" 5Õ)×/Ñ/Ó1°S·Y±Y³[Ñ@ô  ˆH�N‰N˜3×ÐÙAð 	ð 
ô ˆt‹9˜Œ>ÜØ5×<Ñ<¸TÀ&½\È3ÓOóð ô �‹Y˜Œ]ÜØ8×?Ñ?ÀÀVÅÈcÓRóð ð ˜•7ˆNùò
s   ®=C6Á0C6c                ó   € \         # rC   )r   r\   s   &r,   rú   Ú GlueDict.get_GlueFormula_factory  s   € ÜÐr/   )r‡   r†   rC   )T)NNF)r{   r|   r}   r~   r-   rˆ   rt   rÉ   rÊ   rÙ   rÚ   rØ   rÜ   rû   rü   r  r  ræ   rú   r   r€   r�   s   @r,   r„   r„   ™   sZ   ø‡ € ôô
sòjô$ò"
ò4;òò<!ò$ò$/òò"PòH)òV÷*ð r/   r„   c                   ój   a € ] tR tRt o RR ltRR ltR tR tR tR t	R	 t
R
 tR tR tR tRtV tR# )ÚGluei  Nc                óº   € W@n         W n        W0n        ^ RIHp V! 4       V n        V'       d	   Wn        R# \        P                  P                  RRR4      V n        R# )r   )ÚProver9ÚgrammarsÚsample_grammarszglue.semtypeN)
rÍ   Úremove_duplicatesÚ	depparserr™   r<  ÚproverÚsemtype_fileÚosÚpathrq   )r+   rB  r?  r@  rÍ   r<  s   &&&&& r,   r-   ÚGlue.__init__  sF   € ð ŒØ!2ÔØ"Œå á“iˆŒçØ ,Öä "§¡§¡ØÐ-¨~ó!ˆDÖr/   c           	     óþ   € V'       d   V P                   P                  V4       R# V P                   P                  \        P                  P                  \        P                  P                  R RR4      4      4       R# )r=  r>  zglue_train.conllN)	r@  ÚtrainÚtrain_from_filer™   rš   ÚfindrC  rD  rq   )r+   Ú	depgraphss   &&r,   Útrain_depparserÚGlue.train_depparser/  sO   € ßØ�N‰N× Ñ  Ö+à�N‰N×*Ñ*Ü—	‘	—‘Ü—G‘G—L‘L Ð->Ð@RÓSóör/   c                óz   € . pV P                  V4       F#  pVP                  V P                  V4      4       K%  	  V# rC   )Úparse_to_compiledr£   Úget_readings)r+   ÚsentenceÚreadingsÚagendas   &&  r,   Úparse_to_meaningÚGlue.parse_to_meaning9  s8   € ØˆØ×,Ñ,¨XÖ6ˆFØ�O‰O˜D×-Ñ-¨fÓ5Ö6ñ 7àˆr/   c                ó
  € . p\        V4      p\        4       p\        4       pV'       Ed!   VP                  4       pVP                  P	                  4       p\        V\        P                  4      '       dö   V FÊ  p \        VP                  \        P                  4      '       d   VP                  P                  p	M\        P                  ! 4       p	VP                  P                  W‰4       WH,           FI  p
VP                  V
P                  ,          '       d   K(   VP                  VP                  V
4      4       KK  	  KÌ  	   WWP                  ,          P                  V4       EKH  V FÀ  pWX,           F±  p \        VP                  \        P                  4      '       d   VP                  P                  p	M\        P                  ! 4       p	VP                  W‰4       VP                  VP                  ,          '       g$    VP                  VP                  V4      4       K±  K³  	  KÂ  	   WG,          P                  V4       EK)  V F?  pWL,           F0  p\        VP                  4      V8X  g   K  V P'                  WÒ4       K2  	  KA  	  V F?  pW\,           F0  p\        VP                  4      V8X  g   K  V P'                  WÒ4       K2  	  KA  	  V#   \        P                    d     EKü  i ; i  \        P"                   d     EK–  i ; i  \$         d    T.YWP                  &    EK  i ; i  \        P                    d     EKÕ  i ; i  \        P"                   d     EKò  i ; i  \$         d    T.YG&    EK_  i ; irC   )rž   ÚdictÚpopr(   r5   r    r   rN   r4   ÚbindingsÚBindingDictr6   Úunifyr)   r¡   r9   r3   ÚUnificationExceptionrÛ   Ú_add_to_reading_list)r+   rR  rQ  Úagenda_lengthÚatomicsÚ
nonatomicsÚcurÚ	glue_simpÚkeyrX  ÚatomicÚ	nonatomicÚentryrÁ   s   &&            r,   rO  ÚGlue.get_readings?  sÐ  € ØˆÜ˜F›ˆÜ“&ˆÜ“Vˆ
ßˆfØ—*‘*“,ˆCØŸ™×)Ñ)Ó+ˆIÜØœ;×4Ñ4÷ò ó #�CðÜ% c§h¡h´×0QÑ0Q×RÒRØ'*§x¡x×'8Ñ'8™Hä'2×'>Ò'>Ó'@˜HØ!×,Ñ,×2Ñ2°3ÔAØ&-§l l˜Fà #§¡¨f¯n©n× <Ö <ð!)Ø$*§M¡M°#·+±+¸fÓ2EÖ$Fó '3ñ #ð"=Ø×3Ñ3Õ4×;Ñ;¸C×@ó
 &�CØ%/§_ _˜	ð!Ü)Ø )§¡´×0QÑ0Q÷ ò  ð ,5¯>©>×+BÑ+B¡ä+6×+BÒ+BÓ+D Ø%ŸO™O¨CÔ:à #§¡¨i×.?Ñ.?× ?Ô ?ð!)Ø$*§M¡M°)×2CÑ2CÀCÓ2HÖ$Iñ !@ó &5ñ &ð&/ØÕ&×-Ñ-¨c×2ó ˆEØ—n�n�Ü�r—z‘z“? mÖ3Ø×-Ñ-¨bÖ;ó %ñ ó  ˆEØ ×'Ð'�Ü�r—z‘z“? mÖ3Ø×-Ñ-¨bÖ;ó (ñ  ð ˆøôU (3×'RÑ'Rô !)Û$(ð!)ûä&×;Ñ;ô Ûðûô  ô =Ø8;°u�J×3Ñ3Õ4ð=ûô& (3×'RÑ'Rô !)Û$(ð!)ûä*×?Ñ?ô !Û ð!ûô  ô /Ø*-¨�GÕ&ð/úsŒ   Á;BK4Ä KÄ=K4Å!L Å;B
MÈ L3È1M- ËK1Ë,K4Ë0K1Ë1K4Ë4LÌLÌL0Ì/L0Ì3MÍMÍMÍMÍM*Í)M*Í-NÎNc                ó6  € R pV P                   '       d;   V F4  p VP                  VP                  V P                  4      '       d   Rp MK6  	  V'       d   VP                  VP                  4       R# R#   \         d   p\        RT4        Rp?K|  Rp?ii ; i)TFz2Error when checking logical equality of statementsN)r?  Úequivr#   rA  Ú	ExceptionÚprintr¡   )r+   ÚglueformulaÚreading_listÚadd_readingÚreadingr=   s   &&&   r,   r\  ÚGlue._add_to_reading_listƒ  s�   € ØˆØ×!×!Ð!Û'�ðSØ—}‘} [×%8Ñ%8¸$¿+¹+×FÒFØ&+˜Ùñ Gñ (÷ Ø×Ñ × 3Ñ 3Ö4ñ øô !ô Sô ÐNÐPQ×RÒRûð	Sús   ›.A6Á6BÂBÂBc                ó²   € V P                  V4       Uu. uF  q P                  V4      NK  	  ppV Uu. uF  q@P                  V4      NK  	  up# u upi u upi rC   )Ú	dep_parseÚdepgraph_to_glueÚgfl_to_compiled)r+   rP  ÚdgÚgflsÚgfls   &&   r,   rN  ÚGlue.parse_to_compiled”  sQ   € Ø48·N±NÀ8Ô4LÓMÑ4L¨b×%Ñ% bÖ)Ñ4LˆÐMÙ59Ó:±T¨c×$Ñ$ SÖ)±TÑ:Ð:ùò NùÚ:s
   ”A³Ac                ó  € V P                   f#   ^ RIHp V! V P                  4       R7      V n         V P                   P                  '       g   V P                  4        V P                   P                  WP                  R7      # )z‹
Return a dependency graph for the sentence.

:param sentence: the sentence to be parsed
:type sentence: list(str)
:rtype: DependencyGraph
©Ú
MaltParser©Útagger)rÍ   )r@  Ú
nltk.parserz  Úget_pos_taggerÚ_trainedrK  r'   rÍ   )r+   rP  rz  s   && r,   rq  ÚGlue.dep_parse˜  s^   € ð �>‰>Ò!Ý-á'¨t×/BÑ/BÓ/DÔEˆDŒNØ�~‰~×&×&Ð&Ø× Ñ Ô"Ø�~‰~×#Ñ# H·l±lÐ#ÓCÐCr/   c                ó@   € V P                  4       P                  V4      # rC   )Úget_glue_dictrÉ   )r+   rË   s   &&r,   rr  ÚGlue.depgraph_to_glueª  s   € Ø×!Ñ!Ó#×7Ñ7¸ÓAÐAr/   c                ó,   € \        V P                  4      # rC   )r„   rB  r\   s   &r,   r‚  ÚGlue.get_glue_dict­  s   € Ü˜×)Ñ)Ó*Ð*r/   c                óÒ   € \        4       p. pV F#  pVP                  VP                  V4      4       K%  	  V P                  '       d    \	        R 4       V F  p\	        V4       K  	  V# )zCompiled Glue Premises:)r   r£   rY   rÍ   rj  )r+   rv  Úindex_counterÚreturn_listrÁ   Úcgfs   &&    r,   rs  ÚGlue.gfl_to_compiled°  s\   € Ü›	ˆØˆÛˆBØ×Ñ˜rŸz™z¨-Ó8Ö9ñ ð �<�<ˆ<ÜÐ+Ô,Û"�Ü�c–
ñ #ð Ðr/   c                ó¶   € ^ RI Hp \        . RO4      pVP                  RR7      p\	        W2R7      p\        W4R7      p\        W5R7      p\        RR.VR7      pV# )r   )ÚbrownÚnews)Ú
categories)Úbackoff)	)z^-?[0-9]+(\.[0-9]+)?$ÚCD)z(The|the|A|a|An|an)$ÚAT)z.*able$ÚJJ)z.*ness$ÚNN)z.*ly$ÚRB)z.*s$ÚNNS)z.*ing$ÚVBG)z.*ed$ÚVBD)z.*r“  )z(A|a|An|an)$r   )z(Every|every|All|all)$r   )Únltk.corpusrŒ  r   Útagged_sentsr   r   r   )r+   rŒ  Úregexp_taggerÚbrown_trainÚunigram_taggerÚbigram_taggerÚtrigram_taggerÚmain_taggers   &       r,   r~  ÚGlue.get_pos_tagger½  sg   € Ý%ä$ò
ó
ˆð ×(Ñ(°FÐ(Ó;ˆÜ& {ÔJˆÜ$ [ÔIˆÜ& {ÔJˆô #Ø*Ð,UÐVØ"ô
ˆð
 Ðr/   )r@  rA  r?  rB  rÍ   ©NFNFrC   )r{   r|   r}   r~   r-   rK  rS  rO  r\  rN  rq  rr  r‚  rs  r~  r   r€   r�   s   @r,   r:  r:    sE   ø‡ € ôô$òòBòH5ò";òDò$Bò+ò÷ð r/   r:  c                   ó6   a € ] tR tRt o RR ltR tR tRtV tR# )ÚDrtGlueFormulaiÛ  Nc                ó<  € V'       g   \        4       p\        V\        4      '       d&   \        P                  P                  V4      V n        MD\        V\        P                  4      '       d   Wn        M\        R V: RVP                  : 24      h\        V\        4      '       d+   \        P                  ! 4       P                  V4      V n        MD\        V\        P                  4      '       d   W n        M\        RV: RVP                  : 24      hW0n        R# r   )r   r    r!   r   ÚDrtExpressionr"   r#   r$   r%   r   r&   r'   r(   r   r)   r*   s   &&&&r,   r-   ÚDrtGlueFormula.__init__Ü  sÊ   € ßÜ“eˆGä�gœs×#Ò#Ü×,Ñ,×7Ñ7¸Ó@ˆD�LÜ˜¤×!2Ñ!2×3Ò3Ø"�Låã˜G×-Ó-ð/óð ô
 �dœC× Ò Ü#×5Ò5Ó7×=Ñ=¸dÓCˆD�IÜ˜œk×4Ñ4×5Ò5Ø�Iåã˜Ÿ›ð)óð ð
 Žr/   c                ó.   € \         P                  ! V4      # rC   )r   ÚDrtVariableExpressionrD   s   &&r,   rF   Ú&DrtGlueFormula.make_VariableExpressionö  s   € Ü×(Ò(¨Ó.Ð.r/   c                ó.   € \         P                  ! W4      # rC   )r   ÚDrtLambdaExpressionrI   s   &&&r,   r8   Ú$DrtGlueFormula.make_LambdaExpressionù  s   € Ü×&Ò& xÓ6Ð6r/   rz   rC   )	r{   r|   r}   r~   r-   rF   r8   r   r€   r�   s   @r,   r£  r£  Û  s   ø‡ € ôò4/÷7ð 7r/   r£  c                   ó&   a € ] tR tRt o R tRtV tR# )ÚDrtGlueDictiý  c                ó   € \         # rC   )r£  r\   s   &r,   rú   Ú#DrtGlueDict.get_GlueFormula_factoryþ  s   € ÜÐr/   rb   N)r{   r|   r}   r~   rú   r   r€   r�   s   @r,   r®  r®  ý  s   ø‡ € ÷ð r/   r®  c                   ó0   a € ] tR tRt o RR ltR tRtV tR# )ÚDrtGluei  Nc                ó†   € V'       g"   \         P                  P                  R RR4      p\        P	                  WW#V4       R# )r=  r>  zdrt_glue.semtypeN)rC  rD  rq   r:  r-   )r+   rB  r?  r@  rÍ   s   &&&&&r,   r-   ÚDrtGlue.__init__  s5   € ÷ ÜŸ7™7Ÿ<™<ØÐ-Ð/AóˆLô 	�‰�dÐ*;ÈÖPr/   c                ó,   € \        V P                  4      # rC   )r®  rB  r\   s   &r,   r‚  ÚDrtGlue.get_glue_dict  s   € Ü˜4×,Ñ,Ó-Ð-r/   rb   r¡  )r{   r|   r}   r~   r-   r‚  r   r€   r�   s   @r,   r²  r²    s   ø‡ € ôQ÷.ð .r/   r²  c                 ór  € ^ RI Hp . R
Op\        R4       \        . RO4      pV! VR7      p\	        VRR7      p\        V4       Fo  w  rgW`8X  g
   V R8X  g   K  \        RV RV 24       VP                  VP                  4       4       F  p\        VP                  4       4       K  	  \        R4       Kq  	  R	# )r   ry  z"============== DEMO ==============r{  F)r@  rÍ   z[[[Example z]]]  r»   N)zDavid sees MaryzDavid eats a sandwichzevery man chases a dogzevery man believes a dog sleepszJohn gives David a sandwichzJohn chases himself))z^(David|Mary|John)$ÚNNP)zN^(sees|eats|chases|believes|gives|sleeps|chases|persuades|tries|seems|leaves)$ÚVB)z!^(go|order|vanish|find|approach)$r¹  )z^(a)$r   )z	^(every)$r   )z.^(sandwich|man|dog|pizza|unicorn|cat|senator)$r“  )z^(big|gray|former)$r’  )z^(him|himself)$ÚPRPr2   )	r}  rz  rj  r   r:  r    rS  rŸ   r5   )	Úshow_examplerz  Úexamplesr|  r@  r(   r®   rP  rn  s	   &        r,   Údemor½    s¦   € Ý%ò€Hô$ 
Ð
.Ô/äò	
ó€Fñ   &Ô)€IÜ˜)¨UÔ3€Dä  Ö*‰ˆØÔ °Ö 2Ü�K ˜s %¨ zÐ2Ô3Ø×0Ñ0°·±Ó1AÖB�Ü�g×&Ñ&Ó(Ö)ñ Cä�"ŽIó +r/   Ú__main__)rô   rõ   Úpunct)r2   )rC  Ú	itertoolsr   r™   Únltk.internalsr   Únltk.semr   r   Únltk.sem.logicr   r   r	   r
   r   Únltk.tagr   r   r   r   rö   rí   r   rV  r„   r:  r£  r®  r²  r½  r{   rb   r/   r,   Ú<module>rÅ     sÀ   ðó 
Ý ã Ý "ß %÷õ ÷ NÓ Mð ˆØˆ*Øˆ\Ø	ˆ9Øˆ*Øˆzð€ò 3Ð ÷rñ rôj@ˆtô @÷F|ñ |ô~7�[ô 7ôD�(ô ô
.ˆdô .ô/ðd ˆzÔÙ†Fñ r/   