# Path: conceptnet/corpus/models.py
# class ScoredModel(object):
# class Language(models.Model):
# class Sentence(models.Model, ScoredModel):
# class TaggedSentence(models.Model):
# class DependencyParse(models.Model):
# class Frequency(models.Model):
#     class Meta:
#     def get_rating(self, user):
#     def set_rating(self, user, val, activity=None):
#     def update_score(self):
# def denormalize_votes(sender, instance, created=False, **kwargs):
# def get_lang(lang_code):
#     def __str__(self):
#     def get(id):
#     def nl(self):
#     def __unicode__(self):
#     def update_consistency(self):
#     def tagged_words(self):
#     def __unicode__(self):
#     def from_string(sentence_id, depstring):
#     def __unicode__(self):
#     def __unicode__(self):
#     _PARSE_RE = re.compile(r"(.+)\((.*)-(\d+)'*, (.*)-(\d+)'*\)")


from django.db import models
from django.db.models import Q
from conceptnet.corpus.models import Language, Sentence, User, ScoredModel, Frequency
from events.models import Event, Activity
from voting.models import Vote, SCORES
from django.contrib.contenttypes import generic
from csc_utils.cache import cached
from datetime import datetime
from urllib import quote as urlquote
        from django.db.models import F
import re

                # use get_or_create so it's atomic
                surface_form, _ = SurfaceForm.objects.get_or_create(concept=concept,
                text=text, residue=residue, language=lang)
                return surface_form
    
    def update_raw(self):
        for raw in self.left_rawassertion_set.all():
            raw.update_assertion()
        for raw in self.right_rawassertion_set.all():
            raw.update_assertion()
    
    def update(self, stem, residue):
        self.concept = Concept.get_raw(stem, self.language, auto_create=True)
        self.residue = residue
        self.save()
        self.update_raw()
        return self
    
    @property
    def urltext(self):
        return urlquote(self.text)
    
    def __unicode__(self):
        return self.text
    
    class Meta:
        unique_together = (('language', 'text'),)
        ordering = ['-use_count']


# Path: conceptnet/corpus/models.py
# class ScoredModel(object):
# class Language(models.Model):
# class Sentence(models.Model, ScoredModel):
# class TaggedSentence(models.Model):
# class DependencyParse(models.Model):
# class Frequency(models.Model):
#     class Meta:
#     def get_rating(self, user):
#     def set_rating(self, user, val, activity=None):
#     def update_score(self):
# def denormalize_votes(sender, instance, created=False, **kwargs):
# def get_lang(lang_code):
#     def __str__(self):
#     def get(id):
#     def nl(self):
#     def __unicode__(self):
#     def update_consistency(self):
#     def tagged_words(self):
#     def __unicode__(self):
#     def from_string(sentence_id, depstring):
#     def __unicode__(self):
#     def __unicode__(self):
#     _PARSE_RE = re.compile(r"(.+)\((.*)-(\d+)'*, (.*)-(\d+)'*\)")


# Path: conceptnet/models.py
from django.db import models
from django.db.models import Q
from conceptnet.corpus.models import Language, Sentence, User, ScoredModel, Frequency
from events.models import Event, Activity
from voting.models import Vote, SCORES
from django.contrib.contenttypes import generic
from csc_utils.cache import cached
from datetime import datetime
from urllib import quote as urlquote
        from django.db.models import F
import re


                # use get_or_create so it's atomic
                surface_form, _ = SurfaceForm.objects.get_or_create(concept=concept,
                text=text, residue=residue, language=lang)
                return surface_form
    
    def update_raw(self):
        for raw in self.left_rawassertion_set.all():
            raw.update_assertion()
        for raw in self.right_rawassertion_set.all():
            raw.update_assertion()
    
    def update(self, stem, residue):
        self.concept = Concept.get_raw(stem, self.language, auto_create=True)
        self.residue = residue
        self.save()
        self.update_raw()
        return self
    
    @property
    def urltext(self):
        return urlquote(self.text)
    
    def __unicode__(self):
        return self.text
    
    class Meta:
        unique_together = (('language', 'text'),)
        ordering = ['-use_count']


class Assertion(models.Model, ScoredModel):