§
    'ê[f.v  ã                   ó\  — d dl Z d dlmZ d dlZd dlmZ d dlmZmZ d dl	m
Z
mZmZmZmZ d dlmZmZmZmZ dddd	d
ddœZg d¢Z G d„ d¦  «        Z G d„ de¦  «        Z G d„ d¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Zdd„Zedk    r e¦   «          dS dS )é    N)Úchain)ÚCounter)ÚdrtÚlinearlogic)ÚAbstractVariableExpressionÚ
ExpressionÚLambdaExpressionÚVariableÚVariableExpression)ÚBigramTaggerÚRegexpTaggerÚTrigramTaggerÚUnigramTaggerÚex_quantÚ
univ_quantÚdef_artÚno_quant)ÚaÚanÚeveryÚtheÚnoÚdefault)ÚnmodÚvmodÚpunctc                   óZ   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ ZdS )ÚGlueFormulaNc                 óú  — |st          ¦   «         }t          |t          ¦  «        rt          j        |¦  «        | _        n7t          |t          ¦  «        r|| _        nt          d|›d|j        ›�¦  «        ‚t          |t          ¦  «        r,t          j	        ¦   «          
                    |¦  «        | _        n<t          |t          j        ¦  «        r|| _        nt          d|›d|j        ›�¦  «        ‚|| _        d S ©Nz+Meaning term neither string or expression: ú, z(Glue term neither string or expression: )ÚsetÚ
isinstanceÚstrr   Ú
fromstringÚmeaningÚRuntimeErrorÚ	__class__r   ÚLinearLogicParserÚparseÚglueÚindices©Úselfr&   r+   r,   s       úA/var/www/piapp/venv/lib/python3.11/site-packages/nltk/sem/glue.pyÚ__init__zGlueFormula.__init__%   s  € Øð 	Ý‘e”eˆGå�g�sÑ#Ô#ð 	Ý%Ô0°Ñ9Ô9ˆDŒLˆLÝ˜¥Ñ,Ô,ð 	Ø"ˆDŒLˆLå�,à�7�7˜GÔ-Ð-ð/ñô ð õ
 �d�CÑ Ô ð 	Ý#Ô5Ñ7Ô7×=Ò=¸dÑCÔCˆDŒIˆIÝ˜�kÔ4Ñ5Ô5ð 	ØˆDŒIˆIå�,à�4�4˜œ˜ð)ñô ð ð
 ˆŒˆˆó    c                 óŽ  — | j         |j         z  rt          j        d| › d|› d�¦  «        ‚| j         |j         z  }	 t          j        | j        |j        |j         ¦  «        }nW# t          j        $ rE}t          j        d|                      ¦   «         › d|                     ¦   «         › d�¦  «        |‚d}~ww xY w|j        }|rU| j                             ¦   «         j        j        ddd…         D ](}|  	                    t          d|z  ¦  «        |¦  «        }Œ)| j                             |¦  «        }|                      |||¦  «        S )zyself = (\x.(walk x), (subj -o f))
        arg  = (john        ,  subj)
        returns ((walk john),          f)
        ú'z' applied to 'z'.  Indices are not disjoint.Néÿÿÿÿz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/   r;   zGlueFormula.applyto?   sv  € ð
 Œ<˜#œ+Ñ%ð 	8ÝÔ=ØJ�DÐJÐJ¨ÐJÐJÐJñô ð ð "œ\¨C¬KÑ7ˆNð	Ý%Ô;Ø”	˜3œ8 S¤[ñô ˆKˆKøõ Ô:ð 	ð 	ð 	ÝÔ=ØD�D—M’M‘O”OÐDÐD°3·<²<±>´>ÐDÐDÐDñô àðøøøøð	øøøð
 "%¤ÐØð 	Ø”y×)Ò)Ñ+Ô+Ô6ÔCØ��"�ôð ð �ð *.×)CÒ)CÝ˜U S™[Ñ)Ô)Ð+Añ*ô *Ð&Ð&ð œ×-Ò-Ð.DÑEÔEˆà�~Š~˜n¨k¸>ÑJÔJÐJs   »%A! Á!B5Á0A B0Â0B5c                 ó    — t          |¦  «        S ©N)r   ©r.   Únames     r/   Úmake_VariableExpressionz#GlueFormula.make_VariableExpression`   s   € Ý! $Ñ'Ô'Ð'r1   c                 ó"   — t          ||¦  «        S rD   )r	   ©r.   ÚvariableÚterms      r/   r:   z!GlueFormula.make_LambdaExpressionc   s   € Ý ¨$Ñ/Ô/Ð/r1   c                 ó  — t          |t          ¦  «        sJ ‚t          |j        t          ¦  «        sJ ‚|                      |                      |j        j        | j        ¦  «        t          j        |j	        | j	        ¦  «        ¦  «        S rD   )
r#   r   r&   r   r(   r:   rJ   r   ÚImpExpressionr+   ©r.   Úothers     r/   Úlambda_abstractzGlueFormula.lambda_abstractf   su   € Ý˜%¥Ñ-Ô-Ð-Ð-Ð-Ý˜%œ-Õ)CÑDÔDÐDÐDÐDØ�~Š~Ø×&Ò& u¤}Ô'=¸t¼|ÑLÔLÝÔ% e¤j°$´)Ñ<Ô<ñ
ô 
ð 	
r1   c                 óò   — |st          ¦   «         }| j                             ¦   «                              || j        ¦  «        \  }}||                      | j        ||                     ¦   «         h¦  «        gz   S )z)From Iddo Lev's PhD Dissertation p108-109)r   r+   r7   Úcompile_posr(   r&   Úget)r.   ÚcounterÚcompiled_glueÚ	new_formss       r/   ÚcompilezGlueFormula.compilen   su   € àð 	 Ý‘i”iˆGØ%)¤Y×%7Ò%7Ñ%9Ô%9×%EÒ%EØ�T”^ñ&
ô &
Ñ"ˆ˜	ð Ø�NŠN˜4œ<¨¸¿º¹¼¸ÑHÔHð
ñ 
ð 	
r1   c                 ó–   — |                       | j                             ¦   «         | j                             ¦   «         | j        ¦  «        S rD   )r(   r&   r7   r+   r,   ©r.   s    r/   r7   zGlueFormula.simplifyy   s=   € Ø�~Š~ØŒL×!Ò!Ñ#Ô# T¤Y×%7Ò%7Ñ%9Ô%9¸4¼<ñ
ô 
ð 	
r1   c                 ób   — | j         |j         k    o| j        |j        k    o| j        |j        k    S rD   )r(   r&   r+   rN   s     r/   Ú__eq__zGlueFormula.__eq__~   s5   € àŒN˜eœoÒ-ð (Ø” ¤Ò-ð(à”	˜UœZÒ'ð	
r1   c                 ó   — | |k     S rD   © rN   s     r/   Ú__ne__zGlueFormula.__ne__…   s   € Ø˜5’=Ð Ð r1   c                 óB   — t          | ¦  «        t          |¦  «        k     S rD   ©r$   rN   s     r/   Ú__lt__zGlueFormula.__lt__‰   s   € Ý�4‰yŒy�3˜u™:œ:Ò%Ð%r1   c                 óâ   — t          | j        t          ¦  «        sJ ‚| j        › d| j        › �}| j        r:|dd                     d„ t          | j        ¦  «        D ¦   «         ¦  «        z   dz   z  }|S )Nú : z : {r!   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S rD   r`   )Ú.0Úindexs     r/   ú	<genexpr>z&GlueFormula.__str__.<locals>.<genexpr>‘   s(   è è € Ð"PÐ"P°%¥3 u¡:¤:Ð"PÐ"PÐ"PÐ"PÐ"PÐ"Pr1   ú})r#   r,   r"   r&   r+   ÚjoinÚsorted)r.   Úaccums     r/   Ú__str__zGlueFormula.__str__Œ   s   € Ý˜$œ,­Ñ,Ô,Ð,Ð,Ð,Ø”<Ð/Ð/ D¤IÐ/Ð/ˆØŒ<ð 	ØØ˜ŸšÐ"PÐ"P½6À$Ä,Ñ;OÔ;OÐ"PÑ"PÔ"PÑPÔPÑPÐSVÑVñˆEð ˆr1   c                 ó   — d| z  S )Nú%sr]   rY   s    r/   Ú__repr__zGlueFormula.__repr__•   s   € Ø�d‰{Ðr1   rD   )Ú__name__Ú
__module__Ú__qualname__r0   r;   rG   r:   rP   rW   r7   r[   r^   ra   rl   ro   r]   r1   r/   r   r   $   sÖ   € € € € € ðð ð ð ð4Kð Kð KðB(ð (ð (ð0ð 0ð 0ð
ð 
ð 
ð	
ð 	
ð 	
ð 	
ð
ð 
ð 
ð

ð 
ð 
ð!ð !ð !ð&ð &ð &ðð ð ðð ð ð ð r1   r   c                   ón   — e Zd Zdd„Zdd„Zd„ Zdd„Zd„ Zd	„ Zd
„ Z	d„ Z
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚGlueDictNc                 óJ   — || _         || _        |                      ¦   «          d S rD   )ÚfilenameÚfile_encodingÚ	read_file)r.   rv   Úencodings      r/   r0   zGlueDict.__init__š   s'   € Ø ˆŒØ%ˆÔØ�ŠÑÔÐÐÐr1   Tc                 ó$  — |r|                       ¦   «          	 t          j                             | j        d| j        ¬¦  «        }nX# t          $ rK}	 t          j                             d| j        z   d| j        ¬¦  «        }n# t          $ r |‚w xY wY d }~nd }~ww xY w|                     ¦   «         }|D �][}|                     ¦   «         }t          |¦  «        sŒ'|d         dk    rŒ4| 
                    dd¦  «        }g }d}d}	d}
d }t          |¦  «        dk    r­t          |d         ¦  «        D ]—\  }}|d	k    r|dk    r|dz   }	|dz  }Œ|d
k    rF|dz  }|dk    r:|d         |	|
…         }|d         |
dz   |…         }|                     ||g¦  «         Œh|dk    r	|dk    r|}
Œw|dk    r|dk    rt          d|z   ¦  «        ‚ nŒ˜t          |¦  «        dk    rˆ|d                              d¦  «        dz   }|d                              d¦  «        }||k    rt          ¦   «         }n:t          d„ |d         ||…          
                    d¦  «        D ¦   «         ¦  «        }	 |d                              d	¦  «        }|d                              d
¦  «        }|d         d |…                              ¦   «         }|d         |dz   |…         }n##  |d                              ¦   «         }d }Y nxY w|| vri | |<   |€¬|rr| |         D ]g}|| |         vrg | |         |<   | |         |         }| |         |                              |¦  «         | |         |                              |¦  «         Œh�Œ¾d | |         vrg | |         d <   | |         d                               |¦  «         �Œö|| |         vrg | |         |<   |r-| |         |                              | |         |         ¦  «         | |         |                              |¦  «         �Œ]d S )NÚtext)Úformatry   zfile:r   ú#rc   é   é   ú(ú)ú,z&Formula syntax is incorrect for entry ú[ú]c              3   ó>   K  — | ]}|                      ¦   «         V — Œd S rD   )Ústrip)re   Úrs     r/   rg   z%GlueDict.read_file.<locals>.<genexpr>è   s;   è è € ð .ð .Ø&'˜Ÿš™	œ	ð.ð .ð .ð .ð .ð .r1   )ÚclearÚnltkÚdataÚloadrv   rw   ÚLookupErrorÚ
splitlinesr†   ÚlenÚsplitÚ	enumerateÚappendr'   rf   Ú	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/   rx   zGlueDict.read_fileŸ   s  € Øð 	Ø�JŠJ‰LŒLˆLð	Ý”y—~’~Ø” f°tÔ7Ið &ñ ô ˆHˆHøõ ð 	ð 	ð 	ðÝœ9Ÿ>š>Ø˜dœmÑ+°FÀTÔEWð *ñ ô ��øõ ð ð ð Ø�ðøøøð ����øøøøð	øøøð ×#Ò#Ñ%Ô%ˆàð a	ñ a	ˆDà—:’:‘<”<ˆDÝ�t‘9”9ð ØØ�AŒw˜#Š~ˆ~Øà—J’JØ�qñô ˆEð ˆMØˆKØˆKØˆKà ˆMå�5‰zŒz˜AŠ~ˆ~Ý'¨¨a¬Ñ1Ô1ð ð ‘F�Q˜Ø˜C’x�xØ&¨!Ò+Ð+Ø*+¨a©%˜KØ# qÑ(˜˜Ø˜cš˜Ø# qÑ(˜Ø&¨!Ò+Ð+Ø+0°¬8Ø +¨KÐ 7ô,˜Lð ).¨a¬°¸q±À1Ð1DÔ(E˜IØ)×0Ò0Ø!-¨yÐ 9ñô ð øð ˜cš˜à'¨1Ò,Ð,à*+˜KøØ˜cš˜à'¨1Ò,Ð,å".Ø HÈ4Ñ Oñ#ô #ð ð ˜ð "õ �5‰zŒz˜AŠ~ˆ~Ø! !œHŸNšN¨3Ñ/Ô/°!Ñ3�	Ø œ(Ÿ.š.¨Ñ-Ô-�Ø Ò'Ð'Ý$-¡K¤K�M�Må$-ð .ð .Ø+0°¬8°I¸gÐ4EÔ+F×+LÒ+LÈSÑ+QÔ+Qð.ñ .ô .ñ %ô %�Mð!Ø$)¨!¤H§N¢N°3Ñ$7Ô$7Ð!Ø"'¨¤(§.¢.°Ñ"5Ô"5�Ø˜A”hÐ1Ð 1Ð1Ô2×8Ò8Ñ:Ô:�Ø! !œHÐ%6¸Ñ%:¸_Ð%LÔM�	�	øð!Ø˜A”h—n’nÑ&Ô&�Ø �	�	�	øøøà˜$ˆˆØ��S‘	ð Ð%ð ð Ø $ Y¤ð ð ˜Ø t¨C¤yÐ0Ð0Ø.0˜D œI d™OØ# Iœ¨tÔ4˜Ø˜Sœ	 $œ×.Ò.¨tÑ4Ô4Ð4Ø˜Sœ	 $œ×.Ò.Ø)ñô ð ð ñð  4¨¤9Ð,Ð,Ø*,˜˜Sœ	 $™Ø˜”I˜d”O×*Ò*Ø%ñô ð ñ ð !¨¨S¬	Ð1Ð1Ø/1�D˜”I˜mÑ,Øð TØ˜”I˜mÔ,×3Ò3°D¸´OÀMÔ4RÑSÔSÐSØ�S”	˜-Ô(×/Ò/Ø!ñô ð ñ ða	ð a	s6   ˜,A Á
BÁ/B Á?BÂ BÂBÂBÉ#A+KËK/c                 ó  — d}| D ]‡}d|z  }| |         D ]w}d}| |         |         D ]d}|dk    r	||dz   z  }n|dt          |¦  «        dz   z  z  }|d|z  z  }|r'|t          | |         |         ¦  «        k    r|d|z  z  }|dz  }|dz  }ŒeŒxŒˆ|S )	NÚ rn   r   z: Ú r~   z : %sÚ
)rŽ   )r.   rk   ÚposÚstr_posÚrelsetrž   Úgfs          r/   rl   zGlueDict.__str__  sç   € ØˆØð 	ð 	ˆCØ˜S‘jˆGØ˜sœ)ð ð �Ø�Ø˜sœ) FÔ+ð 	ð 	�BØ˜A’v�vØ ¨4¡Ñ/˜˜à ­¨G©¬°qÑ(8Ñ!9Ñ9˜Ø˜T B™YÑ&�EØð 2 !¥s¨4°¬9°VÔ+<Ñ'=Ô'=Ò"=Ð"=Ø ¨6Ñ!1Ñ1˜Ø˜T‘M�EØ˜‘F�A�Að	ðð ˆr1   Fc           	      ó   — |€}|j         d         }t          t          j        |d                              ¦   «         ¦  «        ¦  «        }|j         |d                  }|                      ||t          ¦   «         |¦  «        S |                      |||¦  «        }t          j        |d                              ¦   «         ¦  «        D ]:}	|j         |	         }
|                     |                      ||
||¦  «        ¦  «         Œ;|S )Nr   Údeps)	ÚnodesÚlistr   Úfrom_iterableÚvaluesÚto_glueformula_listr   Úlookupr“   )r.   ÚdepgraphÚnoderT   ÚverboseÚtopÚdepListÚrootÚglueformulasÚdep_idxrA   s              r/   r·   zGlueDict.to_glueformula_list&  sð   € Øˆ<à”. Ô#ˆCÝ�5Ô.¨s°6¬{×/AÒ/AÑ/CÔ/CÑDÔDÑEÔEˆGØ”> '¨!¤*Ô-ˆDà×+Ò+¨H°d½G¹I¼IÀwÑOÔOÐOà—{’{ 4¨°7Ñ;Ô;ˆÝÔ*¨4°¬<×+>Ò+>Ñ+@Ô+@ÑAÔAð 	ð 	ˆGØ”. Ô)ˆCØ×ÒØ×(Ò(¨°3¸ÀÑIÔIñô ð ð ð Ðr1   c           	      ój  — |                       |¦  «        }d }|D ]}|| v r
| |         } nŒ|€g S |                      ||¦  «         |                      |||¦  «        }t          |¦  «        s+t	          d|d         ›d|d         ›d|d         ›d�¦  «        ‚|                      ||d         |||¦  «        S )Nz,There is no GlueDict entry for sem type of 'Úwordz' with tag 'Útagz', and rel 'Úrelr3   )Úget_semtypesÚadd_missing_dependenciesÚ_lookup_semtype_optionrŽ   ÚKeyErrorÚ#get_glueformulas_from_semtype_entry)r.   rº   r¹   rT   Úsemtype_namesÚsemtyperF   r¸   s           r/   r¸   zGlueDict.lookup7  sï   € Ø×)Ò)¨$Ñ/Ô/ˆàˆØ!ð 	ð 	ˆDØ�tˆ|ˆ|Ø˜tœ*�Ø�ð ð ˆ?àˆIà×%Ò% d¨HÑ5Ô5Ð5à×,Ò,¨W°d¸HÑEÔEˆå�6‰{Œ{ð 	Ý�(à15°f´°°¸tÀE¼{¸{¸{ÈDÐQVÌKÈKÈKðYñô ð ð
 ×7Ò7Ø�D˜”L $¨°'ñ
ô 
ð 	
r1   c                 ó4  — |d                               ¦   «         }|dk    rw|j        |d                  }|                      d||¦  «        }|d         }|d                              |g ¦  «         |d         |                              |d         ¦  «         d S d S )NrÄ   ÚmainÚheadÚsubjr²   Úaddress)Úlowerr³   Úlookup_uniqueÚ
setdefaultr‘   )r.   rº   r¹   rÄ   ÚheadnoderÏ   Úrelations          r/   rÆ   z!GlueDict.add_missing_dependenciesQ  s˜   € Ø�5Œk×ÒÑ!Ô!ˆà�&Š=ˆ=Ø”~ d¨6¤lÔ3ˆHØ×%Ò% f¨h¸ÑAÔAˆDØ˜E”{ˆHØ�ŒL×#Ò# H¨bÑ1Ô1Ð1Ø�ŒL˜Ô"×)Ò)¨$¨y¬/Ñ:Ô:Ð:Ð:Ð:ð ˆ=r1   c                 ó†  ‡— t          ˆfd„t          j        |d                              ¦   «         ¦  «        D ¦   «         ¦  «        }	 ||         }np# t          $ rc t          ¦   «         }t          |¦  «        d hz
  D ]*}t          |¦  «        t          |¦  «        k    r||k     r|}Œ+|s
d |v rd }nY d S ||         }Y nw xY w|S )Nc              3   óº   •K  — | ]U}‰j         |         d                               ¦   «         t          v¯.‰j         |         d                               ¦   «         V — ŒVdS )rÄ   N)r³   rÑ   ÚOPTIONAL_RELATIONSHIPS)re   rA   r¹   s     €r/   rg   z2GlueDict._lookup_semtype_option.<locals>.<genexpr>]  sk   øè è € ð "
ð "
àØŒ~˜cÔ" 5Ô)×/Ò/Ñ1Ô1Õ9OÐOÐOð ŒN˜3Ô Ô&×,Ò,Ñ.Ô.àOÐOÐOÐOð"
ð "
r1   r²   )r’   r   rµ   r¶   rÈ   r"   rŽ   )r.   rË   rº   r¹   r�   r¸   Ú
best_matchÚrelset_options      `    r/   rÇ   zGlueDict._lookup_semtype_option\  s  ø€ Ý!ð "
ð "
ð "
ð "
åÔ*¨4°¬<×+>Ò+>Ñ+@Ô+@ÑAÔAð"
ñ "
ô "
ñ 
ô 
ˆð	)Ø˜]Ô+ˆFˆFøÝð 	)ð 	)ð 	)õ
 #™œˆJÝ!$ W¡¤°°Ñ!6ð /ð /�å˜Ñ&Ô&­¨Z©¬Ò8Ð8Ø%¨Ò5Ð5à!.�JøØð  Ø˜7�?�?Ø!%�J�Jà˜4˜4Ø˜ZÔ(ˆFˆFˆFð#	)øøøð& ˆs   ÁA ÁAB>Â3B>Â=B>c                 óî   — |d                               ¦   «         }|d                               ¦   «         }|dk    r%|t          v rt          |         gS t          d         gS |dv r
|d         |gS |d         gS )zj
        Based on the node, return a list of plausible semtypes in order of
        plausibility.
        rÄ   rÂ   Úspecr   )r   r   rÃ   )rÑ   ÚSPEC_SEMTYPES)r.   rº   rÄ   rÂ   s       r/   rÅ   zGlueDict.get_semtypesz  s…   € ð
 �5Œk×ÒÑ!Ô!ˆØ�FŒ|×!Ò!Ñ#Ô#ˆà�&Š=ˆ=Ø•}Ð$Ð$Ý% dÔ+Ð,Ð,å% iÔ0Ð1Ð1ØÐ$Ð$Ð$Ø˜”K Ð%Ð%à˜”K�=Ð r1   c                 óx  — g }|                       ¦   «         }|D ] \  }}	 ||                      ||¦  «        |	¦  «        }
t          |¦  «        s||
_        n|› t          |¦  «        dz   › �|
_        |                      |
j        |||                     ¦   «         ¦  «        |
_        |                     |
¦  «         Œ¡|S )Nr   )Úget_GlueFormula_factoryÚget_meaning_formularŽ   rÂ   Úinitialize_labelsr+   rS   r‘   )r.   r¸   rÂ   rº   r¹   rT   r¿   ÚglueFormulaFactoryr&   r+   r°   s              r/   rÉ   z,GlueDict.get_glueformulas_from_semtype_entryŒ  sÊ   € ð ˆà!×9Ò9Ñ;Ô;ÐØ#ð 		$ð 		$‰MˆG�TØ#Ð# D×$<Ò$<¸WÀdÑ$KÔ$KÈTÑRÔRˆBÝ�|Ñ$Ô$ð ;Ø�”�à!Ð:¥3 |Ñ#4Ô#4°qÑ#8Ð:Ð:�”à×,Ò,¨R¬W°d¸HÀgÇkÂkÁmÄmÑTÔTˆBŒGà×Ò Ñ#Ô#Ð#Ð#ØÐr1   c                 óZ   — |                      dd¦  «        }|                      d|¦  «        S )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à   zGlueDict.get_meaning_formulaž  s+   € ð �|Š|˜C Ñ$Ô$ˆØ�Š˜x¨Ñ.Ô.Ð.r1   c           	      ó®  — t          |t          j        ¦  «        rq|                      |j                             ¦   «         |||¦  «        }|d                              ¦   «         rt          j        |¦  «        S t          j        |¦  «        S t          j	        |  
                    |j        |||¦  «        |  
                    |j        |||¦  «        ¦  «        S )Nr   )r#   r   ÚAtomicExpressionÚfind_label_namerF   rÑ   Úisupperr   ÚConstantExpressionrM   rá   r8   Ú
consequent)r.   Úexprrº   r¹   Úunique_indexrF   s         r/   rá   zGlueDict.initialize_labels§  s»   € Ý�d�KÔ8Ñ9Ô9ð 
	Ø×'Ò'¨¬	¯ªÑ(9Ô(9¸4ÀÈ<ÑXÔXˆDØ�AŒw�ŠÑ Ô ð <Ý"Ô5°dÑ;Ô;Ð;å"Ô5°dÑ;Ô;Ð;åÔ,Ø×&Ò& t¤¸¸hÈÑUÔUØ×&Ò& t¤¸¸hÈÑUÔUñô ð r1   c                 ó`  — 	 |                      d¦  «        }|d |…         }||dz   d …         }|dk    r)|                      ||j        |d                  ||¦  «        S |                      ||                      |||¦  «        ||¦  «        S # t          $ �r |                      |¦  «        }|dk    r|cY S |dk    rd|z  cY S |dk    rd	|z  cY S |dk    r(|                      |j        |d                  ¦  «        cY S |d
k    r|                     ¦   «         › |› �cY S |dk    r,|                      |                      d||¦  «        ¦  «        cY S |dk    r,|                      |                      d||¦  «        ¦  «        cY S |                      |                      |||¦  «        ¦  «        cY S w xY w)Nrä   r   ÚsuperrÎ   ÚfÚvz%svr‡   z%srÚvarr   ÚconjaÚbÚconjb)rf   ré   r³   rÒ   Ú
ValueErrorÚ	get_labelÚupper)	r.   rF   rº   r¹   rî   ÚdotÚ
before_dotÚ	after_dotÚlbls	            r/   ré   zGlueDict.find_label_name´  sþ  € ð!	PØ—*’*˜S‘/”/ˆCà˜d˜s˜dœˆJØ˜S 1™W˜Y˜YœˆIØ˜WÒ$Ð$Ø×+Ò+Ø˜xœ~¨d°6¬lÔ;¸XÀ|ñô ð ð ×+Ò+ØØ×&Ò& z°4¸ÑBÔBØØ ñ	ô ð øõ ð 	Pñ 	Pð 	PØ—.’. Ñ&Ô&ˆCØ�sŠ{ˆ{Ø�
�
�
Ø˜’�Ø˜s‘{Ð"Ð"Ð"Ø˜’�Ø˜s‘{Ð"Ð"Ð"Ø˜’�Ø—~’~ h¤n°T¸&´\Ô&BÑCÔCÐCÐCÐCØ˜’�ØŸ)š)™+œ+Ð5 |Ð5Ð5Ð5Ð5Ð5Ø˜’�Ø—~’~ d×&8Ò&8¸À$ÈÑ&QÔ&QÑRÔRÐRÐRÐRØ˜’�Ø—~’~ d×&8Ò&8¸À$ÈÑ&QÔ&QÑRÔRÐRÐRÐRà—~’~ d×&8Ò&8¸¸tÀXÑ&NÔ&NÑOÔOÐOÐOÐOð#	PøøøsB   ‚AB
 Á,B
 Â
(F-Â4F-ÃF-Ã,F-Ã<F-Ä0F-Å0F-Æ *F-Æ,F-c                 ó„   — |d         }g d¢|dz
           }t          |¦  «        dz  }|dk    r|t          |¦  «        z   S |S )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?   r   é   r   )Úintr$   )r.   rº   ÚvalueÚletterÚnums        r/   rø   zGlueDict.get_labelØ  s]   € ð �Y”ˆð
ð 
ð 
ð6 �!‰)ô7ˆõ8 �%‰jŒj˜BÑˆØ�Š7ˆ7Ø�C ™HœHÑ$Ð$àˆMr1   c                 óx  ‡‡— ˆˆfd„t          j        |d                              ¦   «         ¦  «        D ¦   «         }t          |¦  «        dk    r)t	          d                     |d         ‰¦  «        ¦  «        ‚t          |¦  «        dk    r)t	          d                     |d         ‰¦  «        ¦  «        ‚|d         S )z\
        Lookup 'key'. There should be exactly one item in the associated relation.
        c                 ó    •— g | ]J}‰j         |         d                               ¦   «         ‰                     ¦   «         k    ¯=‰j         |         ‘ŒKS )rÄ   )r³   rÑ   )re   rA   r¹   rÄ   s     €€r/   ú
<listcomp>z*GlueDict.lookup_unique.<locals>.<listcomp>  sU   ø€ ð 
ð 
ð 
àØŒ~˜cÔ" 5Ô)×/Ò/Ñ1Ô1°S·Y²Y±[´[Ò@Ð@ð ŒN˜3Ôà@Ð@Ð@r1   r²   r   z#'{}' doesn't contain a feature '{}'rÂ   r   z&'{}' should only have one feature '{}')r   rµ   r¶   rŽ   rÈ   r|   )r.   rÄ   rº   r¹   r²   s    ` ` r/   rÒ   zGlueDict.lookup_unique  sË   øø€ ð
ð 
ð 
ð 
ð 
åÔ*¨4°¬<×+>Ò+>Ñ+@Ô+@ÑAÔAð
ñ 
ô 
ˆõ ˆt‰9Œ9˜Š>ˆ>ÝØ5×<Ò<¸TÀ&¼\È3ÑOÔOñô ð õ �‰YŒY˜Š]ˆ]ÝØ8×?Ò?ÀÀVÄÈcÑRÔRñô ð ð ˜”7ˆNr1   c                 ó   — t           S rD   )r   rY   s    r/   rß   z GlueDict.get_GlueFormula_factory  s   € ÝÐr1   rD   )T)NNF)rp   rq   rr   r0   rx   rl   r·   r¸   rÆ   rÇ   rÅ   rÉ   rà   rá   ré   rø   rÒ   rß   r]   r1   r/   rt   rt   ™   s  € € € € € ðð ð ð ð
sð sð sð sðjð ð ð$ð ð ð ð"
ð 
ð 
ð4;ð ;ð ;ðð ð ð<!ð !ð !ð$ð ð ð$/ð /ð /ðð ð ð"Pð "Pð "PðH)ð )ð )ðVð ð ð*ð ð ð ð r1   rt   c                   óV   — e Zd Z	 dd„Zdd„Zd„ Zd„ Zd„ Zd„ Zd	„ Z	d
„ Z
d„ Zd„ Zd„ ZdS )ÚGlueNFc                 ó¼   — || _         || _        || _        ddlm}  |¦   «         | _        |r	|| _        d S t          j         	                    ddd¦  «        | _        d S )Nr   )ÚProver9ÚgrammarsÚsample_grammarszglue.semtype)
r»   Úremove_duplicatesÚ	depparserr‰   r  ÚproverÚsemtype_fileÚosÚpathri   )r.   r#  r   r!  r»   r  s         r/   r0   zGlue.__init__  su   € ð ˆŒØ!2ˆÔØ"ˆŒà Ð Ð Ð Ð Ð à�g‘i”iˆŒàð 	Ø ,ˆDÔÐÐå "¤§¢ØÐ-¨~ñ!ô !ˆDÔÐÐr1   c           	      óî   — |r| j                              |¦  «         d S | j                              t          j                             t          j                             ddd¦  «        ¦  «        ¦  «         d S )Nr  r  zglue_train.conll)	r!  ÚtrainÚtrain_from_filer‰   rŠ   Úfindr$  r%  ri   )r.   Ú	depgraphss     r/   Útrain_depparserzGlue.train_depparser/  st   € Øð 	ØŒN× Ò  Ñ+Ô+Ð+Ð+Ð+àŒN×*Ò*Ý”	—’Ý”G—L’L Ð->Ð@RÑSÔSñô ñô ð ð ð r1   c                 óŠ   — g }|                       |¦  «        D ]*}|                     |                      |¦  «        ¦  «         Œ+|S rD   )Úparse_to_compiledr“   Úget_readings)r.   ÚsentenceÚreadingsÚagendas       r/   Úparse_to_meaningzGlue.parse_to_meaning9  sL   € ØˆØ×,Ò,¨XÑ6Ô6ð 	7ð 	7ˆFØ�OŠO˜D×-Ò-¨fÑ5Ô5Ñ6Ô6Ð6Ð6Øˆr1   c                 ó  — g }t          |¦  «        }t          ¦   «         }t          ¦   «         }|�rT|                     ¦   «         }|j                             ¦   «         }t          |t          j        ¦  «        �r|D ]Ë}	 t          |j        t          j        ¦  «        r|j        j	        }	nt          j
        ¦   «         }	|j                             ||	¦  «         ||         D ]P}
|j        |
j        z  s?	 |                     |                     |
¦  «        ¦  «         Œ;# t          j        $ r Y ŒLw xY wŒQŒ·# t          j        $ r Y ŒÈw xY w	 ||j                                      |¦  «         �n# t$          $ r |g||j        <   Y �n w xY w|D ]Æ}||         D ]»}	 t          |j        t          j        ¦  «        r|j        j	        }	nt          j
        ¦   «         }	|                     ||	¦  «         |j        |j        z  s?	 |                     |                     |¦  «        ¦  «         n# t          j        $ r Y nw xY wŒ§# t          j        $ r Y Œ¸w xY wŒÇ	 ||                              |¦  «         n# t$          $ r	 |g||<   Y nw xY w|�°T|D ];}||         D ]0}t          |j        ¦  «        |k    r|                      ||¦  «         Œ1Œ<|D ];}||         D ]0}t          |j        ¦  «        |k    r|                      ||¦  «         Œ1Œ<|S rD   )rŽ   ÚdictÚpopr+   r7   r#   r   rM   r6   ÚbindingsÚBindingDictr8   Úunifyr,   r‘   r;   r5   ÚUnificationExceptionrÈ   Ú_add_to_reading_list)r.   r1  r0  Úagenda_lengthÚatomicsÚ
nonatomicsÚcurÚ	glue_simpÚkeyr6  ÚatomicÚ	nonatomicÚentryr°   s                 r/   r.  zGlue.get_readings?  s»  € ØˆÝ˜F™œˆÝ‘&”&ˆÝ‘V”Vˆ
Øñ 3	/Ø—*’*‘,”,ˆCØœ×)Ò)Ñ+Ô+ˆIÝØ�;Ô4ñô ñ 0/ð #ð ð �CðÝ% c¤hµÔ0QÑRÔRð AØ'*¤xÔ'8˜H˜Hå'2Ô'>Ñ'@Ô'@˜HØ!Ô,×2Ò2°3¸ÑAÔAÐAØ&-¨c¤lð )ð )˜Fà #¤¨f¬nÑ <ð)ð!)Ø$*§M¢M°#·+²+¸fÑ2EÔ2EÑ$FÔ$FÐ$FÐ$FøÝ'2Ô'Rð !)ð !)ð !)Ø$( Dð!)øøøð)ð)øõ 'Ô;ð ð ð Ø˜ðøøøð=Ø˜yÔ3Ô4×;Ò;¸CÑ@Ô@Ð@Ñ@øÝð =ð =ð =Ø8;°u�J˜yÔ3Ñ4Ð4Ñ4ð=øøøð &ð !ð !�CØ%/°¤_ð !ð !˜	ð!Ý)Ø )¤µÔ0Qñ ô  ð Eð ,5¬>Ô+B  å+6Ô+BÑ+DÔ+D Ø%ŸOšO¨C°Ñ:Ô:Ð:à #¤¨iÔ.?Ñ ?ð)ð!)Ø$*§M¢M°)×2CÒ2CÀCÑ2HÔ2HÑ$IÔ$IÐ$IÐ$IøÝ'2Ô'Rð !)ð !)ð !)Ø$( Dð!)øøøøøå*Ô?ð !ð !ð !Ø ˜Dð!øøøð!!ð$/Ø˜IÔ&×-Ò-¨cÑ2Ô2Ð2Ð2øÝð /ð /ð /Ø*-¨�G˜IÑ&Ð&Ð&ð/øøøðe ñ 3	/ðj ð 	<ð 	<ˆEØ˜e”nð <ð <�Ý�r”z‘?”? mÒ3Ð3Ø×-Ò-¨b°(Ñ;Ô;Ð;øð<ð  ð 	<ð 	<ˆEØ  Ô'ð <ð <�Ý�r”z‘?”? mÒ3Ð3Ø×-Ò-¨b°(Ñ;Ô;Ð;øð<ð ˆs’   Á>A3D2Ã2(DÄD2ÄD-Ä*D2Ä,D-Ä-D2Ä2EÅEÅ E* Å*FÆFÆA$H9Ç:(H#È"H9È#H5È2H9È4H5È5H9È9IÉ
IÉI, É,I?É>I?c                 óö   — d}| j         rQ|D ]N}	 |                     |j        | j        ¦  «        rd} n(Œ(# t          $ r}t          d|¦  «         Y d }~ŒGd }~ww xY w|r|                     |j        ¦  «         d S d S )NTFz2Error when checking logical equality of statements)r   Úequivr&   r"  Ú	ExceptionÚprintr‘   )r.   ÚglueformulaÚreading_listÚadd_readingÚreadingr?   s         r/   r:  zGlue._add_to_reading_listƒ  sÍ   € ØˆØÔ!ð 
	SØ'ð 	Sð 	S�ðSØ—}’} [Ô%8¸$¼+ÑFÔFð Ø&+˜Ø˜ðøõ !ð Sð Sð Sõ ÐNÐPQÑRÔRÐRÐRÐRÐRÐRÐRøøøøð	Søøøð ð 	5Ø×Ò Ô 3Ñ4Ô4Ð4Ð4Ð4ð	5ð 	5s   �"4´
A¾AÁAc                 ób   ‡ — ˆ fd„‰                       |¦  «        D ¦   «         }ˆ fd„|D ¦   «         S )Nc                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r]   )Údepgraph_to_glue)re   Údgr.   s     €r/   r  z*Glue.parse_to_compiled.<locals>.<listcomp>•  s'   ø€ ÐMÐMÐM¨b�×%Ò% bÑ)Ô)ÐMÐMÐMr1   c                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r]   )Úgfl_to_compiled)re   Úgflr.   s     €r/   r  z*Glue.parse_to_compiled.<locals>.<listcomp>–  s'   ø€ Ð:Ð:Ð:¨c�×$Ò$ SÑ)Ô)Ð:Ð:Ð:r1   )Ú	dep_parse)r.   r/  Úgflss   `  r/   r-  zGlue.parse_to_compiled”  sB   ø€ ØMÐMÐMÐM°D·N²NÀ8Ñ4LÔ4LÐMÑMÔMˆØ:Ð:Ð:Ð:°TÐ:Ñ:Ô:Ð:r1   c                 óä   — | j         €)ddlm}  ||                      ¦   «         ¬¦  «        | _         | j         j        s|                      ¦   «          | j                              || j        ¬¦  «        S )z³
        Return a dependency graph for the sentence.

        :param sentence: the sentence to be parsed
        :type sentence: list(str)
        :rtype: DependencyGraph
        Nr   ©Ú
MaltParser©Útagger)r»   )r!  Ú
nltk.parserW  Úget_pos_taggerÚ_trainedr+  r*   r»   )r.   r/  rW  s      r/   rS  zGlue.dep_parse˜  sz   € ð Œ>Ð!Ø-Ð-Ð-Ð-Ð-Ð-à'˜Z¨t×/BÒ/BÑ/DÔ/DÐEÑEÔEˆDŒNØŒ~Ô&ð 	#Ø× Ò Ñ"Ô"Ð"ØŒ~×#Ò# H°d´lÐ#ÑCÔCÐCr1   c                 óP   — |                       ¦   «                              |¦  «        S rD   )Úget_glue_dictr·   )r.   r¹   s     r/   rN  zGlue.depgraph_to_glueª  s"   € Ø×!Ò!Ñ#Ô#×7Ò7¸ÑAÔAÐAr1   c                 ó*   — t          | j        ¦  «        S rD   )rt   r#  rY   s    r/   r^  zGlue.get_glue_dict­  s   € Ý˜Ô)Ñ*Ô*Ð*r1   c                 óÔ   — t          ¦   «         }g }|D ]*}|                     |                     |¦  «        ¦  «         Œ+| j        r#t	          d¦  «         |D ]}t	          |¦  «         Œ|S )NzCompiled Glue Premises:)r   r“   rW   r»   rG  )r.   rR  Úindex_counterÚreturn_listr°   Úcgfs         r/   rQ  zGlue.gfl_to_compiled°  s}   € Ý™	œ	ˆØˆØð 	:ð 	:ˆBØ×Ò˜rŸzšz¨-Ñ8Ô8Ñ9Ô9Ð9Ð9àŒ<ð 	ÝÐ+Ñ,Ô,Ð,Ø"ð ð �Ý�c‘
”
�
�
àÐr1   c                 óì   — ddl m} t          g d¢¦  «        }|                     d¬¦  «        }t	          ||¬¦  «        }t          ||¬¦  «        }t          ||¬¦  «        }t          ddg|¬¦  «        }|S )	Nr   )Úbrown)	)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.*ri  Únews)Ú
categories)Úbackoff)z(A|a|An|an)$r   )z(Every|every|All|all)$r   )Únltk.corpusre  r   Útagged_sentsr   r   r   )r.   re  Úregexp_taggerÚbrown_trainÚunigram_taggerÚbigram_taggerÚtrigram_taggerÚmain_taggers           r/   r[  zGlue.get_pos_tagger½  sª   € Ø%Ð%Ð%Ð%Ð%Ð%å$ð
ð 
ð 
ñ
ô 
ˆð ×(Ò(°FÐ(Ñ;Ô;ˆÝ& {¸MÐJÑJÔJˆÝ$ [¸.ÐIÑIÔIˆÝ& {¸MÐJÑJÔJˆõ #Ø*Ð,UÐVØ"ð
ñ 
ô 
ˆð
 Ðr1   ©NFNFrD   )rp   rq   rr   r0   r+  r2  r.  r:  r-  rS  rN  r^  rQ  r[  r]   r1   r/   r  r    sÐ   € € € € € àRWðð ð ð ð$ð ð ð ðð ð ðBð Bð BðH5ð 5ð 5ð";ð ;ð ;ðDð Dð Dð$Bð Bð Bð+ð +ð +ðð ð ðð ð ð ð r1   r  c                   ó"   — e Zd Zdd„Zd„ Zd„ ZdS )ÚDrtGlueFormulaNc                 ó  — |st          ¦   «         }t          |t          ¦  «        r%t          j                             |¦  «        | _        n<t          |t          j        ¦  «        r|| _        nt          d|›d|j        ›�¦  «        ‚t          |t          ¦  «        r,t          j
        ¦   «                              |¦  «        | _        n<t          |t          j        ¦  «        r|| _        nt          d|›d|j        ›�¦  «        ‚|| _        d S r    )r"   r#   r$   r   ÚDrtExpressionr%   r&   r'   r(   r   r)   r*   r+   r   r,   r-   s       r/   r0   zDrtGlueFormula.__init__Ü  s
  € Øð 	Ý‘e”eˆGå�g�sÑ#Ô#ð 	ÝÔ,×7Ò7¸Ñ@Ô@ˆDŒLˆLÝ˜¥Ô!2Ñ3Ô3ð 	Ø"ˆDŒLˆLå�,à�7�7˜GÔ-Ð-ð/ñô ð õ
 �d�CÑ Ô ð 	Ý#Ô5Ñ7Ô7×=Ò=¸dÑCÔCˆDŒIˆIÝ˜�kÔ4Ñ5Ô5ð 	ØˆDŒIˆIå�,à�4�4˜œ˜ð)ñô ð ð
 ˆŒˆˆr1   c                 ó*   — t          j        |¦  «        S rD   )r   ÚDrtVariableExpressionrE   s     r/   rG   z&DrtGlueFormula.make_VariableExpressionö  s   € ÝÔ(¨Ñ.Ô.Ð.r1   c                 ó,   — t          j        ||¦  «        S rD   )r   ÚDrtLambdaExpressionrI   s      r/   r:   z$DrtGlueFormula.make_LambdaExpressionù  s   € ÝÔ& x°Ñ6Ô6Ð6r1   rD   )rp   rq   rr   r0   rG   r:   r]   r1   r/   r{  r{  Û  sF   € € € € € ðð ð ð ð4/ð /ð /ð7ð 7ð 7ð 7ð 7r1   r{  c                   ó   — e Zd Zd„ ZdS )ÚDrtGlueDictc                 ó   — t           S rD   )r{  rY   s    r/   rß   z#DrtGlueDict.get_GlueFormula_factoryþ  s   € ÝÐr1   N)rp   rq   rr   rß   r]   r1   r/   rƒ  rƒ  ý  s#   € € € € € ðð ð ð ð r1   rƒ  c                   ó   — e Zd Z	 dd„Zd„ ZdS )ÚDrtGlueNFc                 óˆ   — |s!t           j                             ddd¦  «        }t                               | ||||¦  «         d S )Nr  r  zdrt_glue.semtype)r$  r%  ri   r  r0   )r.   r#  r   r!  r»   s        r/   r0   zDrtGlue.__init__  sM   € ð ð 	Ýœ7Ÿ<š<ØÐ-Ð/Añô ˆLõ 	�Š�d˜LÐ*;¸YÈÑPÔPÐPÐPÐPr1   c                 ó*   — t          | j        ¦  «        S rD   )rƒ  r#  rY   s    r/   r^  zDrtGlue.get_glue_dict  s   € Ý˜4Ô,Ñ-Ô-Ð-r1   ry  )rp   rq   rr   r0   r^  r]   r1   r/   r†  r†    s>   € € € € € àRWðQð Qð Qð Qð.ð .ð .ð .ð .r1   r†  r4   c                 ó´  — ddl m} g d¢}t          d¦  «         t          g d¢¦  «        } ||¬¦  «        }t	          |d¬¦  «        }t          |¦  «        D ]€\  }}|| k    s| d	k    rot          d
|› d|› �¦  «         |                     |                     ¦   «         ¦  «        D ]#}t          |                     ¦   «         ¦  «         Œ$t          d¦  «         Œ�d S )Nr   rV  )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 himselfz"============== DEMO ==============))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)$ri  )z^(big|gray|former)$rh  )z^(him|himself)$ÚPRPrX  F)r!  r»   r4   z[[[Example z]]]  rª   )	rZ  rW  rG  r   r  r�   r2  r�   r7   )	Úshow_examplerW  ÚexamplesrY  r!  r+   rž   r/  rK  s	            r/   Údemor�    s#  € Ø%Ð%Ð%Ð%Ð%Ð%ðð ð €Hõ$ 
Ð
.Ñ/Ô/Ð/åð	
ð 	
ð 	
ñô €Fð  �
 &Ð)Ñ)Ô)€IÝ˜)¨UÐ3Ñ3Ô3€Då" 8Ñ,Ô,ð ð ‰ˆˆHØ�ÒÐ °Ò 2Ð 2ÝÐ2 Ð2Ð2¨Ð2Ð2Ñ3Ô3Ð3Ø×0Ò0°·²Ñ1AÔ1AÑBÔBð *ð *�Ý�g×&Ò&Ñ(Ô(Ñ)Ô)Ð)Ð)Ý�"‰IŒIˆIøðð r1   Ú__main__)r4   )r$  Ú	itertoolsr   r‰   Únltk.internalsr   Únltk.semr   r   Únltk.sem.logicr   r   r	   r
   r   Únltk.tagr   r   r   r   rÝ   rØ   r   r4  rt   r  r{  rƒ  r†  r�  rp   r]   r1   r/   ú<module>r–     s=  ðð 
€	€	€	Ø Ð Ð Ð Ð Ð à €€€Ø "Ð "Ð "Ð "Ð "Ð "Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %ðð ð ð ð ð ð ð ð ð ð ð ð ð ð NÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ Mð 
Ø
ØØØ
Øðð €ð 3Ð2Ð2Ð ðrð rð rð rð rñ rô rð rðj@ð @ð @ð @ð @ˆtñ @ô @ð @ðF|ð |ð |ð |ð |ñ |ô |ð |ð~7ð 7ð 7ð 7ð 7�[ñ 7ô 7ð 7ðDð ð ð ð �(ñ ô ð ð
.ð .ð .ð .ð .ˆdñ .ô .ð .ð/ð /ð /ð /ðd ˆzÒÐØ€D�F„F€F€F€Fð Ðr1   