示例#1
0
def get_next_sentence():
    session = create_session()

    user = flask.request.remote_user if flask.request.remote_user is not None else "guest"
    claim = get_next_assignment(session,
                                user,
                                testMode='test' in request.args,
                                oracleAnnotatorMode='oracle' in request.args)

    session.close()

    return jsonify(claim)
示例#2
0
def get_claim(claim_id):
    session = create_session()
    claim = session.query(Claim).join(Sentence).filter(
        Claim.id == int(claim_id)).first()

    doc = get_wiki_clean(claim.sentence.entity_id, redirects)["text"]

    ret = {
        "id": claim.id,
        "entity": claim.sentence.entity_id,
        "body": doc,
        "claim": {
            "text": claim.text
        },
        "sentence": claim.sentence.text
    }

    session.close()
    return jsonify(ret)
示例#3
0
from collections import defaultdict

from statsmodels.stats.inter_rater import fleiss_kappa

from annotation.schema.annotations_rds import create_session

session = create_session()

claims = session.execute("""
select claim.id,
annotation.user,
annotation.verifiable,
date_format(annotation.created, '%Y-%m-%d') as Date,
date_format(annotation.created, '%Y-%U') AS Week
from annotation
inner join claim on claim.id = annotation.claim_id
where claim.isReval = 1
order by Date asc
    """).fetchall()

claims_dict = defaultdict(list)


def row_ct(row):
    rowct = []
    for i in range(5):
        rowct.append(row.count(i))

    return rowct

示例#4
0
def post_labels(label_id):
    labels = request.get_json()

    session = create_session()
    claim = session.query(Claim).join(Sentence).filter(
        Claim.id == int(label_id)).first()

    user = flask.request.remote_user if flask.request.remote_user is not None else "guest"

    anno = Annotation(user=user,
                      claim_id=claim.id,
                      created=func.now(),
                      sentencesVisited=int(labels["countAll"]),
                      customPagesAdded=int(labels["customCount"]),
                      timeTakenToAnnotate=int(labels["timer"]),
                      isTestMode=bool(labels['testingMode']),
                      isOracleMaster=bool(labels['oracleMode']),
                      page=claim.sentence.entity_id,
                      version=4,
                      verifiable=int(labels["verifiable"]))
    session.add(anno)
    session.commit()

    # Treat flagged-but-submitted claims as normal submissions
    if int(labels['verifiable']) == 1 or int(labels['verifiable']) == -1:
        for verdict in labels["supporting"]:
            vdct = AnnotationVerdict(annotation_id=anno.id, verdict=1)
            session.add(vdct)
            session.commit()

            session.add(
                LineAnnotation(page=claim.sentence.entity_id,
                               line_number=verdict,
                               verdict_id=vdct.id))

            for doc in labels['sentences'][str(verdict)].keys():
                for line in labels['sentences'][str(verdict)][doc].keys():
                    if bool(labels['sentences'][str(verdict)][doc][line]):
                        session.add(
                            LineAnnotation(page=doc,
                                           line_number=int(line),
                                           verdict_id=vdct.id))

        for verdict in labels["refuting"]:
            vdct = AnnotationVerdict(annotation_id=anno.id, verdict=2)
            session.add(vdct)
            session.commit()

            session.add(
                LineAnnotation(page=claim.sentence.entity_id,
                               line_number=verdict,
                               verdict_id=vdct.id))

            for doc in labels['sentences'][str(verdict)].keys():
                for line in labels['sentences'][str(verdict)][doc].keys():
                    if bool(labels['sentences'][str(verdict)][doc][line]):
                        session.add(
                            LineAnnotation(page=doc,
                                           line_number=int(line),
                                           verdict_id=vdct.id))

    session.commit()
    session.close()
    return jsonify([])