models.py
2.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# -*- coding: utf-8 -*-
from django.db.models import AutoField, BooleanField, CharField, \
FloatField, ForeignKey, Model, \
PositiveIntegerField, TextField, URLField
from django.db.models.fields.related import ManyToManyField
class Meaning(Model):
id = AutoField(primary_key=True)
plWN_synset = PositiveIntegerField(blank=True, null=True)
wikilink = URLField(blank=True, null=True)
description = TextField(blank=True, null=True)
category = ForeignKey('Category', related_name='meanings')
def __unicode__(self):
return ' = '.join(['<%s>' % expr.text if expr.main_expression else expr.text
for expr in self.expressions.all()])
class Expression(Model):
id = AutoField(primary_key=True)
text = TextField()
meaning = ForeignKey('Meaning', related_name='expressions')
sources = ManyToManyField('Source', related_name='expressions')
score = FloatField()
NKJP_freq = PositiveIntegerField()
main_expression = ForeignKey('Expression', related_name='mentions',
blank=True, null=True)
def __unicode__(self):
return self.text
class Source(Model):
key = CharField(max_length=16, primary_key=True)
name = CharField(max_length=32)
description = TextField(blank=True, null=True)
url = URLField(blank=True, null=True)
def __unicode__(self):
return self.name
class Segment(Model):
position_in_expr = PositiveIntegerField()
expression = ForeignKey('Expression', related_name='segments')
orth = CharField(max_length=32)
base = CharField(max_length=32)
ctag = CharField(max_length=8)
msd = CharField(max_length=64)
is_head = BooleanField(default=False)
def __unicode__(self):
return self.orth
class Category(Model):
key = CharField(max_length=16, primary_key=True)
name = CharField(max_length=32)
description = TextField(blank=True, null=True)
def __unicode__(self):
return self.name