Ë
    ÎÆVh’  ã                   óP   — d Z ddlZddlZddlmZ  G d„ de«      Z G d„ de«      Zy)zÀ
CorpusReader for PanLex Lite, a stripped down version of PanLex distributed
as an SQLite database. See the README.txt in the panlex_lite corpus directory
for more information on PanLex Lite.
é    N)ÚCorpusReaderc                   ó.   — e Zd ZdZdZd„ Zdd„Zd„ Zd„ Zy)	ÚPanLexLiteCorpusReadera,  
        SELECT dnx2.mn, dnx2.uq, dnx2.ap, dnx2.ui, ex2.tt, ex2.lv
        FROM dnx
        JOIN ex ON (ex.ex = dnx.ex)
        JOIN dnx dnx2 ON (dnx2.mn = dnx.mn)
        JOIN ex ex2 ON (ex2.ex = dnx2.ex)
        WHERE dnx.ex != dnx2.ex AND ex.tt = ? AND ex.lv = ?
        ORDER BY dnx2.uq DESC
    a¯  
        SELECT s.tt, sum(s.uq) AS trq FROM (
            SELECT ex2.tt, max(dnx.uq) AS uq
            FROM dnx
            JOIN ex ON (ex.ex = dnx.ex)
            JOIN dnx dnx2 ON (dnx2.mn = dnx.mn)
            JOIN ex ex2 ON (ex2.ex = dnx2.ex)
            WHERE dnx.ex != dnx2.ex AND ex.lv = ? AND ex.tt = ? AND ex2.lv = ?
            GROUP BY ex2.tt, dnx.ui
        ) s
        GROUP BY s.tt
        ORDER BY trq DESC, s.tt
    c                 ó@  — t        j                  t        j                  j	                  |d«      «      j                  «       | _        i | _        i | _        | j                  j                  d«      D ],  }|d   | j                  |d   <   |d   | j                  |d   <   Œ. y )Nz	db.sqlitezSELECT uid, lv FROM lvé   r   )
Úsqlite3ÚconnectÚosÚpathÚjoinÚcursorÚ_cÚ_uid_lvÚ_lv_uidÚexecute)ÚselfÚrootÚrows      úN/home/dcms/DCMS/lib/python3.12/site-packages/nltk/corpus/reader/panlex_lite.pyÚ__init__zPanLexLiteCorpusReader.__init__-   s   € Ü—/‘/¤"§'¡'§,¡,¨t°[Ó"AÓB×IÑIÓKˆŒàˆŒØˆŒà—7‘7—?‘?Ð#;Ó<ò 	*ˆCØ#& q¡6ˆDL‰L˜˜Q™Ñ Ø#& q¡6ˆDL‰L˜˜Q™Ò ñ	*ó    Nc                 ó®   — |€)| j                   j                  d«      j                  «       S | j                   j                  d|f«      j                  «       S )aÍ  
        Return a list of PanLex language varieties.

        :param lc: ISO 639 alpha-3 code. If specified, filters returned varieties
            by this code. If unspecified, all varieties are returned.
        :return: the specified language varieties as a list of tuples. The first
            element is the language variety's seven-character uniform identifier,
            and the second element is its default name.
        :rtype: list(tuple)
        z#SELECT uid, tt FROM lv ORDER BY uidz0SELECT uid, tt FROM lv WHERE lc = ? ORDER BY uid)r   r   Úfetchall)r   Úlcs     r   Úlanguage_varietiesz)PanLexLiteCorpusReader.language_varieties7   sI   € ð ˆ:Ø—7‘7—?‘?Ð#HÓI×RÑRÓTÐTà—7‘7—?‘?ØBÀRÀEóç‰h‹jðr   c                 óˆ  — | j                   |   }i }| j                  j                  | j                  ||f«      D ]e  }|d   }| j                  |d      }||vr|d   |d   |d   ||gidœ||<   |||   d   vrg ||   d   |<   ||   d   |   j                  |d   «       Œg |D cg c]  }t        |||   «      ‘Œ c}S c c}w )	a)  
        Return a list of meanings for an expression.

        :param expr_uid: the expression's language variety, as a seven-character
            uniform identifier.
        :param expr_tt: the expression's text.
        :return: a list of Meaning objects.
        :rtype: list(Meaning)
        r   é   r   é   é   )ÚuqÚapÚuiÚexr#   é   )r   r   r   Ú	MEANING_Qr   ÚappendÚMeaning)r   Úexpr_uidÚexpr_ttÚexpr_lvÚmn_infoÚiÚmnÚuids           r   ÚmeaningszPanLexLiteCorpusReader.meaningsJ   sñ   € ð —,‘,˜xÑ(ˆàˆà—‘—‘ §¡°'¸7Ð1CÓDò 	0ˆAØ1‘ˆBØ—,‘,˜q ™tÑ$ˆCà˜‘=à˜A™$Ø˜A™$Ø˜A™$Ø# g YÐ/ñ	˜‘ð ˜' "™+ dÑ+Ñ+Ø)+˜‘˜DÑ! #Ñ&àB‰K˜Ñ˜cÑ"×)Ñ)¨!¨A©$Õ/ð	0ð" 4;Ö;¨R”˜˜G B™KÕ(Ò;Ð;ùÒ;s   Â&B?c                 ó¬   — | j                   |   }| j                   |   }| j                  j                  | j                  |||f«      j	                  «       S )a4  
        Return a list of translations for an expression into a single language
        variety.

        :param from_uid: the source expression's language variety, as a
            seven-character uniform identifier.
        :param from_tt: the source expression's text.
        :param to_uid: the target language variety, as a seven-character
            uniform identifier.
        :return: a list of translation tuples. The first element is the expression
            text and the second element is the translation quality.
        :rtype: list(tuple)
        )r   r   r   ÚTRANSLATION_Qr   )r   Úfrom_uidÚfrom_ttÚto_uidÚfrom_lvÚto_lvs         r   Útranslationsz#PanLexLiteCorpusReader.translationsl   sK   € ð —,‘,˜xÑ(ˆØ—‘˜VÑ$ˆàw‰w‰˜t×1Ñ1°G¸WÀeÐ3LÓM×VÑVÓXÐXr   )N)	Ú__name__Ú
__module__Ú__qualname__r%   r1   r   r   r/   r7   © r   r   r   r      s&   „ ð€Ið€Mò*óò& <óDYr   r   c                   ó@   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	ˆ xZ
S )r'   zn
    Represents a single PanLex meaning. A meaning is a translation set derived
    from a single source.
    c                 ó.   •— t        ‰|   di |¤Ž || d<   y )Nr-   r;   )Úsuperr   )r   r-   ÚattrÚ	__class__s      €r   r   zMeaning.__init__‡   s   ø€ Ü‰ÑÑ ˜4Ò ØˆˆTŠ
r   c                 ó   — | d   S )z@
        :return: the meaning's id.
        :rtype: int
        r-   r;   ©r   s    r   Úidz
Meaning.id‹   ó   € ð
 D‰zÐr   c                 ó   — | d   S )z`
        :return: the meaning's source's quality (0=worst, 9=best).
        :rtype: int
        r    r;   rB   s    r   ÚqualityzMeaning.quality’   rD   r   c                 ó   — | d   S )zG
        :return: the meaning's source id.
        :rtype: int
        r!   r;   rB   s    r   ÚsourcezMeaning.source™   rD   r   c                 ó   — | d   S )zM
        :return: the meaning's source group id.
        :rtype: int
        r"   r;   rB   s    r   Úsource_groupzMeaning.source_group    rD   r   c                 ó   — | d   S )zÕ
        :return: the meaning's expressions as a dictionary whose keys are language
            variety uniform identifiers and whose values are lists of expression
            texts.
        :rtype: dict
        r#   r;   rB   s    r   ÚexpressionszMeaning.expressions§   s   € ð D‰zÐr   )r8   r9   r:   Ú__doc__r   rC   rF   rH   rJ   rL   Ú__classcell__)r@   s   @r   r'   r'      s&   ø„ ñô
òòòòör   r'   )rM   r
   r   Únltk.corpus.reader.apir   r   Údictr'   r;   r   r   ú<module>rQ      s2   ðñó 
Û å /ôjY˜\ô jYôZ-ˆdõ -r   