nsu}(RRRR/RRtjoin(Rtaccum((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyt__str__js  +cC sd|S(Nu%s((R((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyt__repr__qsN(t__name__t __module__tNoneRR$R,R#R2R8R R9R:R@RA(((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyRs          tGlueDictcB seZddZedZdZddedZdZ dZ dZ dZ dZ d Zd Zd Zd Zd ZdZRS(cC s ||_||_|jdS(N(tfilenamet file_encodingt read_file(RRFtencoding((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyRvs  cC s]|r|jny(tjj|jddd|j}WnYtk r}y,tjjd|jddd|j}Wqtk r|qXnX|j}x|D]}|j}t |sqn|ddkrqn|j dd}g}d}d} d} d} t |d kr0xt |d D]\} } | d kru|dkrh| d } n|d 7}q7| d kr|d 8}|dkr)|d | | !}|d | d | !}|j ||gq)q7| d kr|d kr)| } q)q7| dkr7|dkr%td |nPq7q7Wnt |dkr|djdd }|djd}||krt} qtd|d||!j d D} nyS|djd }|djd }|d| j}|d|d |!}Wn|dj}d}nX||kr=i||s(tcleartnltktdatatloadRFRGt LookupErrort splitlinesRKtlentsplitRDt enumeratetappendRR=t frozensettextend(Rt empty_firsttcontentstetlinestlinetpartst glue_formulast paren_countt tuple_startt tuple_commat relationshipstitct meaning_termt glue_termt rel_starttrel_endtstart_inheritancetend_inheritancetsemt supertypetrelsR((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyRH{s (,                    -     cC sd}x|D]}d|}x||D]}d}x|||D]}|dkrf||d7}n|dt|d7}|d|7}|r|t|||kr|d|7}n|d7}|d7}qCWq(Wq W|S( Nuu%siu: u iu : %su (RS(RR?tpoststr_postrelsetRdtgf((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyR@s     c C s|dkrb|jd}tt|djg}|j|d}|j||t|S|j|||}xStt|djgD]2} |j| } |j|j|| ||qW|S(Niudeps( RDtnodestsumtlisttvaluestto_glueformula_listRtlookupRX( RtdepgraphtnodeR5tverbosettoptdepListtroott glueformulastdep_idxR)((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyRws  & #cC s|j|}d}x(|D] }||kr||}PqqW|dkrPgS|j|||j|||}t|std|d|d|dfn|j||d|||S(NuKThere is no GlueDict entry for sem type of '%s' with tag '%s', and rel '%s'uwordutagurel(t get_semtypesRDtadd_missing_dependenciest_lookup_semtype_optionRStKeyErrort#get_glueformulas_from_semtype_entry(RRzRyR5t semtype_namestsemtypeR+Rx((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyRxs     "cC s|dj}|dkr||j|d}|jd||}|d}|dj|g|d|j|dndS(Nurelumainuheadusubjudepsuaddress(tlowerRst lookup_uniquet setdefaultRV(RRzRytreltheadnodetsubjtrelation((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyRs  c stfdtt|djgD}y||}Wntk rt}xNt|tdgD]3}t|t|krv||krv|}qvqvW|sd|krd}qdSn||}nX|S(Nc3 sC|]9}j|djtkrj|djVqdS(urelN(RsRtOPTIONAL_RELATIONSHIPS(R<R)(Ry(s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pys sudeps(RWRtRuRvRRRDRS(RRRzRyRcRxt best_matcht relset_option((Rys_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyRs" &       cC sz|dj}|dj}|dkrQ|tkrCt|gStdgSn%|d krk|d|gS|dgSdS( uj Based on the node, return a list of plausible semtypes in order of plausibility. ureluworduspecudefaultunmoduvmodutagN(unmoduvmod(Rt SPEC_SEMTYPES(RRzRtword((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyR5s    c C sg}|j}x|D]\}} ||j||| } t|sX|| _nd|t|df| _|j| j|||j| _|j| qW|S(Nu%s%si(tget_GlueFormula_factorytget_meaning_formulaRSRtinitialize_labelsRR4RV( RRxRRzRyR5RtglueFormulaFactoryRRRr((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyRGs   $cC s"|jdd}|jd|S(u :param generic: A meaning formula string containing the parameter "" :param word: The actual word to be replace "" u.uu(treplace(RtgenericR((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyRWscC st|tjr`|j|jj|||}|djrPtj|Stj|Sn:tj |j |j ||||j |j |||SdS(Ni( RRtAtomicExpressiontfind_label_nameR+RtisupperR tConstantExpressionR0RR!t consequent(RtexprRzRyt unique_indexR+((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyR`s! c C sy}|jd}|| }||d}|dkrW|j||j|d||S|j||j|||||SWntk r|j|}|dkr|S|dkrd|S|dkrd |S|dkr|j|j|dS|d krd |j|fS|d kr@|j|jd ||S|dkrh|j|jd||S|j|j|||SnXdS(Nu.iusuperuheadufuvu%svuru%sruvaru%s%suauconjaubuconjb(R=RRsRt ValueErrort get_labeltupper( RR+RzRyRtdott before_dott after_dottlbl((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyRms0  !)        cC s|d}dddddddd d d d d ddddddddddddddg|d}t|d}|dkr|t|S|SdS( 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 uaddressufuguhuiujukulumunuoupuqurusutuuuvuwuxuyuzuaubucudueiiiN(tintR;(RRztvaluetlettertnum((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyRs *2 cC sgtt|djgD]6}|j|dj|jkr |j|^q }t|dkrtd|d|fn7t|dkrtd|d|fn|dSdS( u\ Lookup 'key'. There should be exactly one item in the associated relation. udepsureliu#'%s' doesn't contain a feature '%s'uwordiu&'%s' should only have one feature '%s'N(RtRuRvRsRRSR(RRRzRyR)tdeps((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyRs#6cC stS(N(R(R((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyRsN(RBRCRDRtTrueRHR@tFalseRwRxRRRRRRRRRR(((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyREts  Y        tGluecB szeZd ed edZd dZdZdZdZdZ dZ dZ dZ d Z d ZRS( cC sh||_||_||_ddlm}||_|rI||_ntjj ddd|_dS(Ni(tProver9ugrammarsusample_grammarsu glue.semtype( R{tremove_duplicatest depparserRNRtprovert semtype_filetostpathR>(RRRRR{R((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyRs     cC sK|r|jj|n.|jjtjjtjjddddS(Nugrammarsusample_grammarsuglue_train.conll( Rttrainttrain_from_fileRNROtfindRRR>(Rt depgraphs((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyttrain_depparsers cC s:g}x-|j|D]}|j|j|qW|S(N(tparse_to_compiledRXt get_readings(Rtsentencetreadingstagenda((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pytparse_to_meaningscC sg}t|}t}t}x9|r_|j}|jj}t|tjrax|D]}yt|jtjr|jj } n tj } |j j || xV||D]J} |j | j @sy|j|j| Wqtjk rqXqqWWqatjk rqaXqaWy||j j|Wq\tk r]|g||j |s!tjjddd}ntj|||||dS(Nugrammarsusample_grammarsudrt_glue.semtype(RRR>RR(RRRRR{((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyR}scC s t|jS(N(RR(R((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyRsN(RBRCRDRRR(((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyR|sc C sddlm}ddddddg}td tddd d!d"d#d$d%g}|d|}td|dt}xt|D]u\}}||ks|dkrtd||fx-|j|jD]}t|j qWtdqqWdS(&Ni(RuDavid sees MaryuDavid eats a sandwichuevery man chases a doguevery man believes a dog sleepsuJohn gives David a sandwichuJohn chases himselfu"============== DEMO ==============u^(David|Mary|John)$uNNPuN^(sees|eats|chases|believes|gives|sleeps|chases|persuades|tries|seems|leaves)$uVBu!^(go|order|vanish|find|approach)$u^(a)$uex_quantu ^(every)$u univ_quantu.^(sandwich|man|dog|pizza|unicorn|cat|senator)$uNNu^(big|gray|former)$uJJu^(him|himself)$uPRPRRR{u[[[Example %s]]] %su(u^(David|Mary|John)$uNNP(uN^(sees|eats|chases|believes|gives|sleeps|chases|persuades|tries|seems|leaves)$uVB(u!^(go|order|vanish|find|approach)$uVB(u^(a)$uex_quant(u ^(every)$u univ_quant(u.^(sandwich|man|dog|pizza|unicorn|cat|senator)$uNN(u^(big|gray|former)$uJJ(u^(him|himself)$uPRP( RRRRRRRURRTR ( t show_exampleRtexamplesRRRRdRR((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pytdemos2  u__main__(%t __future__RRRRRNtnltk.internalsRt nltk.compatRtnltk.tagRRRRtnltk.sem.logicR R R R R Rtnltk.semRRRRtobjectRRRERRRRRRB(((s_/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/sem/glue.pyts8  "(  T< *