示例#1
0
def statement_overview(request, lang, offset=0):
    offset = int(offset)
    language = get_language(lang)
    raw_assertions = get_top_raw_torate(language, 15, min_assertion_score=2,
                                        offset=offset)
    next = offset+1
    return respond_with('commonsense/statement_overview.html', request, locals())
示例#2
0
def feature(request, lang, lr, relation_name, concept_name):
    language = get_language(lang)
    concept = Concept.objects.get(concept_name, language)
    relation = Relation.get(relation_name)
    cls = {'left': LeftFeature, 'right': RightFeature}[lr]
    feature = cls(relation, concept)
    return respond_with('commonsense/feature.html', request, dict(
            feature = feature))
示例#3
0
def similar_concepts(request, lang, concept_name):
    # Default to retrieving 10 items.
    language = get_language(lang)
    count = int(request.GET.get('count', 10))
    try:
        concept = Concept.get(concept_name, language)
    except Concept.DoesNotExist:
        return respond_with('commonsense/concept_noinfo.html', request,
                            {'lang': lang, 'concept_name': concept_name})
    similarities = concept.similarities.values_list('concept2__text', 'score')
    return respond_with('commonsense/_weighted_concepts.html', request,
                        dict(similarities=similarities, lang=lang))
示例#4
0
def predict_features(request, lang, concept_name):
    count = int(request.GET.get('count', 5))
    language = get_language(lang)
    try:
        concept = Concept.get(concept_name, language)
    except Concept.DoesNotExist:
        return respond_with('commonsense/concept_noinfo.html', request,
                            {'lang': lang, 'concept_name': concept_name})
    
    predictions = (
        list(concept.left_ynq.select_related('surface1', 'surface2')[:count]) +
        list(concept.right_ynq.select_related('surface1', 'surface2')[:count])
    )
    predictions = sorted([p for p in predictions if not p.obsolete()])[:count]
    
    return respond_with('commonsense/_predictions.html', request,
                        dict(predictions=predictions, lang=lang))
示例#5
0
def concept(request, lang, concept_name):
    '''View for displaying a concept, specified by text.'''
    language = get_language(lang)
    try:
        concept = Concept.get(concept_name, language)
    except Concept.DoesNotExist:
        return respond_with('commonsense/concept_noinfo.html', request,
                            {'lang': lang, 'concept_name': concept_name})

    queryset = concept.raw_assertions_no_dupes().select_related('surface1', 'surface2', 'frame')
    return respond_with('commonsense/concept.html', request, dict(
        concept_name=concept_name,
        concept=concept,
        lang=lang,
        user=request.user,
        language=language,
        raw_assertions=queryset
    ))
示例#6
0
def assertion(request, lang, assertion_id):
    language = get_language(lang)
    the_assertion = get_object_or_404(Assertion.objects, pk=int(assertion_id))
    raw_assertions = the_assertion.rawassertion_set.order_by('-score')
    raw_assertions = raw_assertions.select_related('surface1', 'surface2', 'frame', 'frequency')
    
    if request.user:
        vote = Vote.objects.get_for_user(the_assertion, request.user)
        if vote:
            if (len(raw_assertions) == 1 and raw_assertions[0].creator ==
            request.user):
                if vote.is_upvote():
                    request.user.message_set.create(message=ugettext("""
                        Thanks for contributing! Here is the assertion you
                        created.
                    """))
                elif vote.is_downvote():
                    request.user.message_set.create(message=ugettext("""
                        Thanks for contributing! You disagreed with this
                        prediction, helping Open Mind make better predictions
                        in the future.
                    """))

            else:
                if vote.is_upvote():
                    request.user.message_set.create(message=ugettext("""
                      You have voted for this assertion. We encourage you to also
                      vote on the statements that support the assertion, below.
                      Vote for the ones that you think are the best way to say it.
                    """))
                elif vote.is_downvote():
                    request.user.message_set.create(message=ugettext("""
                      You have voted against this assertion. We encourage you to also
                      vote on the statements that support the assertion, below.
                      Unless they were simply misunderstood by Open Mind, you may
                      want to vote against them as well.
                    """))
    raw_assertions = raw_assertions.filter(score__gt=-1)
    return respond_with('commonsense/assertion.html', request, locals())
示例#7
0
def recent_statements(request, lang, offset=0):
    offset = int(offset)
    language = get_language(lang)
    raw_assertions = get_recent_raw(language, 15, offset)
    next = offset+1
    return respond_with('commonsense/statement_recent.html', request, locals())
示例#8
0
def concept_overview(request, lang):
    if 'concept_name' in request.POST:
        return concept(request, lang, request.POST['concept_name'])
    language = get_language(lang)
    concepts = get_random_concepts(language, 10)
    return respond_with('commonsense/concept_overview.html', request, locals())