
`]c           @  s  d  d l  m Z m Z m Z d  d l Z d  d l m Z d  d l m Z d  d l	 Z	 d  d l
 m Z d  d l m Z m Z m Z m Z d  d l m Z m Z m Z m Z m Z d  d l m Z d  d	 l m Z d  d
 l m Z i d d 6d d 6d d 6d d 6d d 6d d 6Z d d d g Z e d e f d     Y Z e d e  f d     Y Z! d e f d     YZ" d e f d     YZ# d  e! f d!     YZ$ d" e" f d#     YZ% d  d$  Z& e' d% k re&   n  d S(&   i(   t   print_functiont   divisiont   unicode_literalsN(   t   chain(   t   string_types(   t   Counter(   t   UnigramTaggert   BigramTaggert   TrigramTaggert   RegexpTagger(   t
   Expressiont   Variablet   VariableExpressiont   LambdaExpressiont   AbstractVariableExpression(   t   python_2_unicode_compatible(   t   drt(   t   linearlogicu   ex_quantu   au   anu
   univ_quantu   everyu   def_artu   theu   no_quantu   nou   defaultu   nmodu   vmodu   punctt   GlueFormulac           B  sz   e  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 RS(   c         C  s   | s t    } n  t | t  r6 t j |  |  _ n4 t | t  rQ | |  _ n t d | | j f   t | t  r t j	   j
 |  |  _ n7 t | t j  r | |  _ n t d | | j f   | |  _ d  S(   Nu1   Meaning term neither string or expression: %s, %su.   Glue term neither string or expression: %s, %s(   t   sett
   isinstanceR   R
   t
   fromstringt   meaningt   RuntimeErrort	   __class__R   t   LinearLogicParsert   parset   gluet   indices(   t   selfR   R   R   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyt   __init__+   s"    c         C  s  |  j  | j  @r, t j d |  | f   n |  j  | j  B} y" t j |  j | j | j   } Wn9 t j k
 r t j d |  j   | j   f   n X| j } | r xI |  j j   j j d d d  D]" } |  j	 t
 d |  |  } q Wn  |  j j |  } |  j | | |  S(   u    self = (\x.(walk x), (subj -o f))
            arg  = (john        ,  subj)
            returns ((walk john),          f)
        u0   '%s' applied to '%s'.  Indices are not disjoint.u   '%s' applied to '%s'Niu   v%s(   R   R   t   LinearLogicApplicationExceptiont   ApplicationExpressionR   t   simplifyR   t
   antecedentt   dependenciest   make_LambdaExpressionR   t   applytoR   (   R   t   argt   return_indicest   return_gluet   arg_meaning_abstractedt   dept   return_meaning(    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR%   E   s$    #	c         C  s
   t  |  S(   N(   R   (   R   t   name(    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyt   make_VariableExpressionf   s    c         C  s   t  | |  S(   N(   R   (   R   t   variablet   term(    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR$   i   s    c         C  sd   t  | t  s t  t  | j t  s- t  |  j |  j | j j |  j  t j	 | j
 |  j
   S(   N(   R   R   t   AssertionErrorR   R   R   R$   R.   R   t   ImpExpressionR   (   R   t   other(    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyt   lambda_abstractl   s
    c         C  sb   | s t    } n  |  j j   j | |  j  \ } } | |  j |  j | t | j   g   g S(   u)   From Iddo Lev's PhD Dissertation p108-109(   R   R   R!   t   compile_posR   R   R   t   get(   R   t   countert   compiled_gluet	   new_forms(    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyt   compilet   s    c         C  s(   |  j  |  j j   |  j j   |  j  S(   N(   R   R   R!   R   R   (   R   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR!      s    c         C  s4   |  j  | j  k o3 |  j | j k o3 |  j | j k S(   N(   R   R   R   (   R   R2   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyt   __eq__   s    c         C  s   |  | k S(   N(    (   R   R2   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyt   __ne__   s    c         C  s   t  |   t  |  k  S(   N(   t   str(   R   R2   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyt   __lt__   s    c         C  sf   t  |  j t  s t  d |  j |  j f } |  j rb | d d j d   |  j D  d 7} n  | S(   Nu   %s : %su    : {u   , c         s  s   |  ] } t  |  Vq d  S(   N(   R<   (   t   .0t   index(    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pys	   <genexpr>   s    u   }(   R   R   R   R0   R   R   t   join(   R   t   accum(    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyt   __str__   s
    	+c         C  s   d |  S(   Nu   %s(    (   R   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyt   __repr__   s    N(   t   __name__t
   __module__t   NoneR   R%   R-   R$   R3   R9   R!   R:   R;   R=   RB   RC   (    (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR   )   s   	!								t   GlueDictc           B  s   e  Z d d   Z e d  Z d   Z d d e d  Z d   Z	 d   Z
 d   Z d   Z d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z RS(   c         C  s    | |  _  | |  _ |  j   d  S(   N(   t   filenamet   file_encodingt	   read_file(   R   RH   t   encoding(    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR      s    		c         C  s]  | r |  j    n  y( t j j |  j d d d |  j } WnY t k
 r } y, t j j d |  j d d d |  j } Wq t k
 r |  q Xn X| j   } x| D]} | j   } t	 |  s q n  | d d k r q n  | j
 d d  } g  } d } d }	 d }
 d  } t	 |  d	 k r0xt | d	  D] \ } } | d
 k ru| d k rh| d	 }	 n  | d	 7} q7| d k r| d	 8} | d k r)| d	 |	 |
 !} | d	 |
 d	 | !} | j | | g  q)q7| d k r| d	 k r)| }
 q)q7| d k r7| d k r%t d |   n  Pq7q7Wn  t	 |  d k r| d j d  d	 } | d j d  } | | k rt   } qt d   | d | | !j
 d  D  } n  yS | d j d
  } | d j d  } | d |  j   } | d | d	 | !} Wn | d j   } d  } n X| |  k r=i  |  | <n  | d  k r| rx |  | D]_ } | |  | k rg  |  | | <n  |  | | } |  | | j |  |  | | j |  qZWqUd  |  | k rg  |  | d  <n  |  | d  j |  q | |  | k rg  |  | | <n  | r@|  | | j |  | |  n  |  | | j |  q Wd  S(   Nt   formatu   textRK   u   file:i    u   #u    : i   i   u   (u   )u   ,u&   Formula syntax is incorrect for entry u   [u   ]c         s  s   |  ] } | j    Vq d  S(   N(   t   strip(   R>   t   r(    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pys	   <genexpr>   s    (   t   cleart   nltkt   datat   loadRH   RI   t   LookupErrort
   splitlinesRM   t   lent   splitRF   t	   enumeratet   appendR   R?   t	   frozensett   extend(   R   t   empty_firstt   contentst   et   linest   linet   partst   glue_formulast   paren_countt   tuple_startt   tuple_commat   relationshipst   it   ct   meaning_termt	   glue_termt	   rel_startt   rel_endt   start_inheritancet   end_inheritancet   semt	   supertypet   relsR   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyRJ      s    		#

*

 c         C  s   d } x |  D] } d | } x |  | D] } d } x |  | | D] } | d k rf | | d 7} n | d t  |  d 7} | d | 7} | r | t  |  | |  k r | d | 7} n  | d 7} | d 7} qC Wq( Wq W| S(	   Nu    u   %si   u   : u    i   u    : %su   
(   RU   (   R   RA   t   post   str_post   relsetRf   t   gf(    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyRB     s    
 
c         C  s   | d  k r_ | j d } t t | d j      } | j | d } |  j | | t   |  S|  j | | |  } xJ t | d j     D]2 }	 | j |	 }
 | j |  j | |
 | |   q W| S(   Ni    u   deps(	   RF   t   nodest   listR   t   valuest   to_glueformula_listR   t   lookupRZ   (   R   t   depgrapht   nodeR6   t   verboset   topt   depListt   roott   glueformulast   dep_idxR*   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyRx   +  s    c         C  s   |  j  |  } d  } x( | D]  } | |  k r |  | } Pq q W| d  k rP g  S|  j | |  |  j | | |  } t |  s t d | d | d | d f   n  |  j | | d | | |  S(   NuK   There is no GlueDict entry for sem type of '%s' with tag '%s', and rel '%s'u   wordu   tagu   rel(   t   get_semtypesRF   t   add_missing_dependenciest   _lookup_semtype_optionRU   t   KeyErrort#   get_glueformulas_from_semtype_entry(   R   R{   Rz   R6   t   semtype_namest   semtypeR,   Ry   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyRy   <  s     
"c         C  s   | d j    } | d k r| | j | d } |  j d | |  } | d } | d j | g   | d | j | d  n  d  S(   Nu   relu   mainu   headu   subju   depsu   address(   t   lowerRu   t   lookup_uniquet
   setdefaultRX   (   R   R{   Rz   t   relt   headnodet   subjt   relation(    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR   V  s    
c           s   t    f d   t | d j     D  } y | | } Wn t k
 r t    } xN t |  t d  g  D]3 } t |  t |  k rm | | k  rm | } qm qm W| s d  | k r d  } q d  Sn  | | } n X| S(   Nc         3  sC   |  ]9 }   j  | d  j   t k r   j  | d  j   Vq d S(   u   relN(   Ru   R   t   OPTIONAL_RELATIONSHIPS(   R>   R*   (   Rz   (    s,   lib/python2.7/site-packages/nltk/sem/glue.pys	   <genexpr>c  s   u   deps(   RY   R   Rw   R   R   RF   RU   (   R   R   R{   Rz   Re   Ry   t
   best_matcht   relset_option(    (   Rz   s,   lib/python2.7/site-packages/nltk/sem/glue.pyR   a  s"    	 	c         C  sz   | d j    } | d j    } | d k rQ | t k rC t | g St d g Sn% | d	 k rk | d | g S| d g Sd S(
   uj   
        Based on the node, return a list of plausible semtypes in order of
        plausibility.
        u   relu   wordu   specu   defaultu   nmodu   vmodu   tagN(   u   nmodu   vmod(   R   t   SPEC_SEMTYPES(   R   R{   R   t   word(    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR     s    c         C  s   g  } |  j    } x | D] \ } }	 | |  j | |  |	  }
 t |  sX | |
 _ n d | t |  d f |
 _ |  j |
 j | | | j    |
 _ | j |
  q W| S(   Nu   %s%si   (   t   get_GlueFormula_factoryt   get_meaning_formulaRU   R   t   initialize_labelsR   R5   RX   (   R   Ry   R   R{   Rz   R6   R   t   glueFormulaFactoryR   R   Rt   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR     s    $c         C  s"   | j  d d  } | j  d |  S(   u   
        :param generic: A meaning formula string containing the
        parameter "<word>"
        :param word: The actual word to be replace "<word>"
        u   .u    u   <word>(   t   replace(   R   t   genericR   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR     s    c         C  s   t  | t j  r` |  j | j j   | | |  } | d j   rP t j |  St j |  Sn: t j	 |  j
 | j | | |  |  j
 | j | | |   Sd  S(   Ni    (   R   R   t   AtomicExpressiont   find_label_nameR,   R   t   isupperR   t   ConstantExpressionR1   R   R"   t
   consequent(   R   t   exprR{   Rz   t   unique_indexR,   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR     s    !c   	      C  s  y} | j  d  } | |  } | | d } | d k rW |  j | | j | d | |  S|  j | |  j | | |  | |  SWnt k
 r|  j |  } | d k r | S| d k r d | S| d k r d	 | S| d k r |  j | j | d  S| d
 k rd | j   | f S| d k r@|  j |  j d | |   S| d k rh|  j |  j d | |   S|  j |  j | | |   Sn Xd  S(   Nu   .i   u   superu   headu   fu   vu   %svu   ru   %sru   varu   %s%su   au   conjau   bu   conjb(   R?   R   Ru   R   t
   ValueErrort	   get_labelt   upper(	   R   R,   R{   Rz   R   t   dott
   before_dott	   after_dott   lbl(    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR     s:    
c         C  s   | d } d d d d d d d d	 d
 d d d d d d d d d d d d d d d d d g | d } t  |  d } | d k r | t |  S| Sd S(    u   
        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
        u   addressu   fu   gu   hu   iu   ju   ku   lu   mu   nu   ou   pu   qu   ru   su   tu   uu   vu   wu   xu   yu   zu   au   bu   cu   du   ei   i   i    N(   t   intR<   (   R   R{   t   valuet   lettert   num(    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR     s@    
c         C  s   g  t  | d j     D]6 } | j | d j   | j   k r | j | ^ q } t |  d k r t d | d | f   n7 t |  d k r t d | d | f   n | d Sd S(	   u\   
        Lookup 'key'. There should be exactly one item in the associated relation.
        u   depsu   reli    u#   '%s' doesn't contain a feature '%s'u   wordi   u&   '%s' should only have one feature '%s'N(   R   Rw   Ru   R   RU   R   (   R   R   R{   Rz   R*   t   deps(    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR     s    6c         C  s   t  S(   N(   R   (   R   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR     s    N(   RD   RE   RF   R   t   TrueRJ   RB   t   FalseRx   Ry   R   R   R   R   R   R   R   R   R   R   (    (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyRG      s   u										$	+	t   Gluec           B  sz   e  Z d e d e d   Z d d  Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d	   Z d
   Z RS(   c         C  sh   | |  _  | |  _ | |  _ d d l m } |   |  _ | rI | |  _ n t j j	 d d d  |  _ d  S(   Ni(   t   Prover9u   grammarsu   sample_grammarsu   glue.semtype(
   R|   t   remove_duplicatest	   depparserRP   R   t   provert   semtype_filet   ost   pathR@   (   R   R   R   R   R|   R   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR      s    				c         C  sK   | r |  j  j |  n. |  j  j t j j t j j d d d    d  S(   Nu   grammarsu   sample_grammarsu   glue_train.conll(	   R   t   traint   train_from_fileRP   RQ   t   findR   R   R@   (   R   t	   depgraphs(    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyt   train_depparser2  s
    		c         C  s:   g  } x- |  j  |  D] } | j |  j |   q W| S(   N(   t   parse_to_compiledRZ   t   get_readings(   R   t   sentencet   readingst   agenda(    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyt   parse_to_meaning<  s    c         C  s   g  } t  |  } t   } t   } x9| r_| j   } | j j   } t | t j  rax | D] } y t | j t j  r | j j	 }	 n t j
   }	 | j j | |	  xV | | D]J }
 | j |
 j @s y | j | j |
   Wqt j k
 r qXq q WWqa t j k
 rqa Xqa Wy | | j j |  Wq\t k
 r]| g | | j <q\Xq' x | D] } x | | D] } y t | j t j  r| j j	 }	 n t j
   }	 | j | |	  | j | j @sy | j | j |   Wqt j k
 rqXn  Wqyt j k
 rqyXqyWqhWy | | j |  Wq' t k
 r[| g | | <q' Xq' WxK | D]C } x: | | D]. } t  | j  | k rx|  j | |  qxqxWqgWxK | D]C } x: | | D]. } t  | j  | k r|  j | |  qqWqW| S(   N(   RU   t   dictt   popR   R!   R   R   R1   R    t   bindingst   BindingDictR"   t   unifyR   RX   R%   R   t   UnificationExceptionR   t   _add_to_reading_list(   R   R   R   t   agenda_lengtht   atomicst
   nonatomicst   curt	   glue_simpt   keyR   t   atomict	   nonatomict   entryRt   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR   B  sn    			c         C  s   t  } |  j rl xZ | D]O } y& | j | j |  j  rA t } Pn  Wq t k
 rd } t d |  q Xq Wn  | r | j | j  n  d  S(   Nu2   Error when checking logical equality of statements(	   R   R   t   equivR   R   R   t	   Exceptiont   printRX   (   R   t   glueformulat   reading_listt   add_readingt   readingR]   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR     s    	c         C  sK   g  |  j  |  D] } |  j |  ^ q } g  | D] } |  j |  ^ q2 S(   N(   t	   dep_parset   depgraph_to_gluet   gfl_to_compiled(   R   R   t   dgt   gflst   gfl(    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR     s    +c         C  sl   |  j  d k r: d d l m } | d |  j    |  _  n  |  j  j sS |  j   n  |  j  j | d |  j S(   u   
        Return a dependency graph for the sentence.

        :param sentence: the sentence to be parsed
        :type sentence: list(str)
        :rtype: DependencyGraph
        i(   t
   MaltParsert   taggerR|   N(	   R   RF   t
   nltk.parseR   t   get_pos_taggert   _trainedR   R   R|   (   R   R   R   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR     s    
c         C  s   |  j    j |  S(   N(   t   get_glue_dictRx   (   R   Rz   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR     s    c         C  s   t  |  j  S(   N(   RG   R   (   R   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR     s    c         C  sk   t    } g  } x$ | D] } | j | j |   q W|  j rg t d  x | D] } t |  qP Wn  | S(   Nu   Compiled Glue Premises:(   R   RZ   R9   R|   R   (   R   R   t   index_countert   return_listRt   t   cgf(    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR     s    		
c         C  s   d d l  m } t d d d d d d  d! d" d# g	  } | j d d  } t | d | } t | d | } t | d | } t d$ d% g d | } | S(&   Ni(   t   brownu   ^-?[0-9]+(.[0-9]+)?$u   CDu   (The|the|A|a|An|an)$u   ATu   .*able$u   JJu   .*ness$u   NNu   .*ly$u   RBu   .*s$u   NNSu   .*ing$u   VBGu   .*ed$u   VBDu   .*t
   categoriesu   newst   backoffu   (A|a|An|an)$u   ex_quantu   (Every|every|All|all)$u
   univ_quant(   u   ^-?[0-9]+(.[0-9]+)?$u   CD(   u   (The|the|A|a|An|an)$u   AT(   u   .*able$u   JJ(   u   .*ness$u   NN(   u   .*ly$u   RB(   u   .*s$u   NNS(   u   .*ing$u   VBG(   u   .*ed$u   VBD(   u   .*u   NN(   u   (A|a|An|an)$u   ex_quant(   u   (Every|every|All|all)$u
   univ_quant(   t   nltk.corpusR   R	   t   tagged_sentsR   R   R   (   R   R   t   regexp_taggert   brown_traint   unigram_taggert   bigram_taggert   trigram_taggert   main_tagger(    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR     s&    	N(   RD   RE   RF   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR     s   
		D						t   DrtGlueFormulac           B  s&   e  Z d d   Z d   Z d   Z RS(   c         C  s   | s t    } n  t | t  r9 t j j |  |  _ n7 t | t j  rW | |  _ n t d | | j f   t | t  r t	 j
   j |  |  _ n7 t | t	 j  r | |  _ n t d | | j f   | |  _ d  S(   Nu1   Meaning term neither string or expression: %s, %su.   Glue term neither string or expression: %s, %s(   R   R   R   R   t   DrtExpressionR   R   R   R   R   R   R   R   R
   R   (   R   R   R   R   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR     s"    c         C  s   t  j |  S(   N(   R   t   DrtVariableExpression(   R   R,   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR-     s    c         C  s   t  j | |  S(   N(   R   t   DrtLambdaExpression(   R   R.   R/   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR$     s    N(   RD   RE   RF   R   R-   R$   (    (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR     s   	t   DrtGlueDictc           B  s   e  Z d    Z RS(   c         C  s   t  S(   N(   R   (   R   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR     s    (   RD   RE   R   (    (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR      s   t   DrtGluec           B  s&   e  Z d e d e d   Z d   Z RS(   c         C  s>   | s! t  j j d d d  } n  t j |  | | | |  d  S(   Nu   grammarsu   sample_grammarsu   drt_glue.semtype(   R   R   R@   R   R   (   R   R   R   R   R|   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR     s    	c         C  s   t  |  j  S(   N(   R   R   (   R   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR     s    N(   RD   RE   RF   R   R   R   (    (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyR     s   c   	   
   C  s  d d l  m } d d d d d d g } t d	  t d d d  d! d" d# d$ d% g  } | d |  } t d | d t  } x t |  D]u \ } } | |  k s |  d k r t d | | f  x- | j | j    D] } t | j	    q Wt d  q q Wd  S(&   Ni(   R   u   David sees Maryu   David eats a sandwichu   every man chases a dogu   every man believes a dog sleepsu   John gives David a sandwichu   John chases himselfu"   ============== DEMO ==============u   ^(David|Mary|John)$u   NNPuN   ^(sees|eats|chases|believes|gives|sleeps|chases|persuades|tries|seems|leaves)$u   VBu!   ^(go|order|vanish|find|approach)$u   ^(a)$u   ex_quantu	   ^(every)$u
   univ_quantu.   ^(sandwich|man|dog|pizza|unicorn|cat|senator)$u   NNu   ^(big|gray|former)$u   JJu   ^(him|himself)$u   PRPR   R   R|   u   [[[Example %s]]]  %su    (   u   ^(David|Mary|John)$u   NNP(   uN   ^(sees|eats|chases|believes|gives|sleeps|chases|persuades|tries|seems|leaves)$u   VB(   u!   ^(go|order|vanish|find|approach)$u   VB(   u   ^(a)$u   ex_quant(   u	   ^(every)$u
   univ_quant(   u.   ^(sandwich|man|dog|pizza|unicorn|cat|senator)$u   NN(   u   ^(big|gray|former)$u   JJ(   u   ^(him|himself)$u   PRP(
   R   R   R   R	   R   R   RW   R   RV   R!   (	   t   show_exampleR   t   examplesR   R   R   Rf   R   R   (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyt   demo  s4    	
 u   __main__((   t
   __future__R    R   R   R   t	   itertoolsR   t   sixR   RP   t   nltk.internalsR   t   nltk.tagR   R   R   R	   t   nltk.sem.logicR
   R   R   R   R   t   nltk.compatR   t   nltk.semR   R   R   R   t   objectR   R   RG   R   R   R   R   R   RD   (    (    (    s,   lib/python2.7/site-packages/nltk/sem/glue.pyt   <module>   s<   "(
s "2