Esempio n. 1
0
    def insert_new_language(bcp, iso, name, u):
        """
        This function is used to add a new language to the system.
        Only the bcp47 code and the language name are required.
        """
        if (bcp and name and u \
            and (not fetch_key_bcp_lang_code(bcp))):

            try:
                bcp = bcp.strip() if bcp else bcp
                iso = iso.strip() if iso else iso
                name = name.strip() if name else name
                lastid = write_omw("""INSERT INTO lang (bcp47, iso639, u)
                                      VALUES (?,?,?)
                                   """, [bcp, iso, u])
                write_omw("""INSERT INTO lang_name (lang_id, in_lang_id,
                                                    name, u)
                             VALUES (?,?,?,?)
                          """, [lastid, 1, name, u])

                return True
            except:
                return False

        else:
            return False
Esempio n. 2
0
    def rate_ili_id(ili_id, rate, u):
        """
        This function is used to give a +1 or -1 rating to ili ids. It only updates
        these values when necessary, overwritting the previous rating if it was
        different. Returns True on update and None if no changes were necessary.
        """
        ili_id = int(ili_id)
        rating = fetch_rate_id([ili_id], u)

        if ili_id in rating:

            if rating[ili_id][0][0] == rate:
                return None
            else:
                write_omw("""UPDATE ili_rating
                             SET rating = ?
                             WHERE ili_id = ?
                             AND u = ?
                          """, [rate, ili_id, u])
                return True
        else:
            write_omw("""INSERT INTO ili_rating (ili_id, rating, u)
                          VALUES (?,?,?)
                      """, [ili_id, rate, u])
            return True
Esempio n. 3
0
 def insert_new_project(code, u):
     " Adds a new project to the system "
     try:
         proj_code = code.strip() if code else code
         write_omw("""INSERT INTO proj (code, u)
                      VALUES (?,?) """, [proj_code, u])
         return True
     except:
         return False
Esempio n. 4
0
    def comment_ili_id(ili_id, comment, u):
        """
        This function is used to post a comment to ili ids.
        """
        ili_id = int(ili_id)
        comment = comment.strip() if comment else comment

        write_omw("""INSERT INTO ili_com (ili_id, com, u)
                           VALUES (?,?,?)
                      """, [ili_id, comment, u])
        return True
Esempio n. 5
0
 def insert_omw_sm(s_id, smt_id, sml_id, u):
     """
     smt_id = sense-meta-tag_id (db restricted to the ones stored in smt)
     sml_id = labels (not restricted, but meanings available in sml)
     """
     return write_omw("""INSERT INTO sm (s_id, smt_id, sml_id, u)
                         VALUES (?,?,?,?)""",
                      [s_id, smt_id, sml_id, u])
Esempio n. 6
0
 def insert_omw_f_src(f_id, src_id, conf, u):
     return write_omw("""INSERT INTO  f_src (f_id, src_id, conf, u)
                         VALUES (?,?,?,?)""",
                      [f_id, src_id, conf, u])
Esempio n. 7
0
 def insert_omw_f(lang_id, pos_id, form, u):
     return write_omw("""INSERT INTO f (lang_id, pos_id, lemma, u)
                         VALUES (?,?,?,?)""",
                      [lang_id, pos_id, form, u])
Esempio n. 8
0
 def insert_omw_ssslink_src(ssslink_id, src_id, conf, lang_id, u):
     return write_omw("""INSERT INTO ssslink_src (ssslink_id, src_id, conf, lang_id, u)
                         VALUES (?,?,?,?,?)""",
                      [ssslink_id, src_id, conf, lang_id, u])
Esempio n. 9
0
 def insert_omw_ssslink(s_id, srel_id, ss_id, u):
     return write_omw("""INSERT INTO ssslink (s_id, srel_id, ss_id, u)
                         VALUES (?,?,?,?)""",
                      [s_id, srel_id, ss_id, u])
Esempio n. 10
0
 def insert_into_ili(kind, definition, status, src, key, u):
     return write_omw("""INSERT INTO ili
                        (kind_id, def, status_id, origin_src_id, src_key, u)
                        VALUES (?,?,?,?,?,?)""",
              [kind, definition, status, src, key, u])
Esempio n. 11
0
 def insert_omw_sm_src(sm_id, src_id, conf, u):
     return write_omw("""INSERT INTO sm_src (sm_id, src_id, conf, u)
                         VALUES (?,?,?,?)""",
                      [sm_id, src_id, conf, u])
Esempio n. 12
0
 def insert_omw_s(ss_id, w_id, u):
     return write_omw("""INSERT INTO s (ss_id, w_id, u)
                         VALUES (?,?,?)""",
                      [ss_id, w_id, u])
Esempio n. 13
0
 def insert_omw_ss(ili_id, pos_id, u):
     return write_omw("""INSERT INTO ss (ili_id, pos_id, u)
                         VALUES (?,?,?)""",
                      [ili_id, pos_id, u])
Esempio n. 14
0
 def insert_src(proj_id, version, u):
     return write_omw("""INSERT INTO src (proj_id, version, u)
                         VALUES (?,?,?)""",
                      [proj_id, version, u])
Esempio n. 15
0
 def insert_omw_w(canon, u):
     return write_omw("""INSERT INTO w (canon, u)
                         VALUES (?,?)""",
                      [canon, u])
Esempio n. 16
0
 def insert_omw_wf_link(w_id, f_id, src_id, conf, u):
     return write_omw("""INSERT INTO wf_link (w_id, f_id, src_id, conf, u)
                         VALUES (?,?,?,?,?)""",
                      [w_id, f_id, src_id, conf, u])
Esempio n. 17
0
 def insert_omw_ss_src(ss_id, src_id, src_key, conf, u):
     return write_omw("""INSERT INTO ss_src (ss_id, src_id, src_key, conf, u)
                         VALUES (?,?,?,?,?)""",
                      [ss_id, src_id, src_key, conf, u])
Esempio n. 18
0
 def insert_omw_def(ss_id, lang_id, d, u):
     return write_omw("""INSERT INTO def (ss_id, lang_id, def, u)
                         VALUES (?,?,?,?)""",
                      [ss_id, lang_id, d, u])
Esempio n. 19
0
 def insert_omw_ssexe(ss_id, lang_id, e, u):
     return write_omw("""INSERT INTO ssexe (ss_id, lang_id, ssexe, u)
                         VALUES (?,?,?,?)""",
                      [ss_id, lang_id, e, u])
Esempio n. 20
0
    def updateLabels():
        """This functions is to be run after a new wordnet is uploaded
        so that concept labels for that language are created and visible
        as concept names.
        """

        sfreq=dd(int)
        f = query_omw("""SELECT id FROM smt WHERE tag='freq'""")
        if f:
            for r in query_omw("""SELECT s_id, sml_id FROM sm WHERE smt_id=?""",
                               str(f[0]['id'])):
                sfreq[r['s_id']]=r['sml_id']


        senses =dd(lambda: dd(list))
        #senses[ss_id][lang_id]=[(ls_id, lemma, freq), ...]
        forms = dd(lambda: dd(int))
        #forms[lang][word] = freq
        langs=set()
        eng_id=1 ### we know this :-)


        for r in query_omw("""SELECT s_id, ss_id, lemma, lang_id
                              FROM (SELECT w_id, canon, ss_id, s_id
                              FROM (SELECT id as s_id, ss_id, w_id FROM s)
                              JOIN w ON w_id = w.id )
                              JOIN f ON canon = f.id"""):


            senses[r['ss_id']][r['lang_id']].append((r['s_id'], r['lemma'], sfreq[r['s_id']]))
            forms[r['lang_id']][r['lemma']] += 1
            langs.add(r['lang_id'])


        for ss in senses:
            for l in senses[ss]:
                senses[ss][l].sort(key=lambda x: (-x[2],  ### sense freq (freq is good)
                                          forms[l][x[1]], ### uniqueness (freq is bad)
                                          len(x[1]),  ### length (short is good)
                                          x[1]))      ### lemma (so it is the same)

        # make the labels
        label = dd(lambda: dd(str))
        lgs=sorted(langs)
        values=list()

        for ss in senses:
            for l in lgs:
                if senses[ss][l]:
                    label[ss][l]=senses[ss][l][0][1]
                else:
                    for lx in lgs:  ### start with eng and go through till you find one
                        if senses[ss][lx]:
                            label[ss][l]=senses[ss][lx][0][1]
                            break
                    else:
                        label[ss][l]="?????"
                values.append((ss, l,  label[ss][l]))


        # write the labels (delete old ones first)
        write_omw("""DELETE FROM label""")
        blk_write_omw("""INSERT INTO label(ss_id, lang_id, label, u)
                         VALUES (?,?,?,"omw")""", values)

        return True
Esempio n. 21
0
 def insert_src_meta(src_id, attr, val, u):
     return write_omw("""INSERT INTO src_meta (src_id, attr, val, u)
                         VALUES (?,?,?,?)""",
                      [src_id, attr, val, u])