From 682eec59a82d4fa54c4693108bf864b31a5bdee1 Mon Sep 17 00:00:00 2001 From: dcz <dcz@ipipan.waw.pl> Date: Fri, 25 Aug 2023 14:26:35 +0200 Subject: [PATCH] Redirect from login page to entries page. Additional info for predefined selectional preferencies. --- entries/views.py | 1 + importer/Argument.py | 4 +- semantics/models.py | 9 +- shellvalier/settings.py | 3 +- .../commands/add_predefined_preferences.py | 97 +++++++++++++------ syntax/management/commands/import_tei.py | 11 ++- 6 files changed, 88 insertions(+), 37 deletions(-) diff --git a/entries/views.py b/entries/views.py index 9708d31..7823586 100644 --- a/entries/views.py +++ b/entries/views.py @@ -615,6 +615,7 @@ def get_prefs_list(argument): 'id' : p.pk, 'type' : p._meta.label, 'str' : str(p), + 'info' : str(p.info), } for p in argument.predefined.all()), key=lambda x: x['str'] ) + sorted( diff --git a/importer/Argument.py b/importer/Argument.py index 5b09f2a..50ea3f5 100644 --- a/importer/Argument.py +++ b/importer/Argument.py @@ -105,8 +105,8 @@ class SemanticRole: if self._attribute is not None: attribute = semantics.models.RoleAttribute.objects.get(attribute=self._attribute) else: - attribute=None - argument_role = semantics.models.ArgumentRole.objects.get(role=role, attribute=attribute) + attribute = None + argument_role = semantics.models.ArgumentRole.objects.get(role=role, attribute=attribute, sub_attribute=None) return argument_role def __str__(self): diff --git a/semantics/models.py b/semantics/models.py index 4dda269..e2c242c 100644 --- a/semantics/models.py +++ b/semantics/models.py @@ -58,7 +58,7 @@ class Argument(models.Model): class ArgumentRole(models.Model): role = models.ForeignKey('SemanticRole', on_delete=models.PROTECT) attribute = models.ForeignKey('RoleAttribute', null=True, on_delete=models.PROTECT) - sub_attribute = models.ForeignKey('RoleSubAttribute', null=True, on_delete=models.PROTECT) + sub_attribute = models.ForeignKey('RoleSubAttribute', default=None, blank=True, null=True, on_delete=models.PROTECT) def __str__(self): if self.attribute is None: @@ -112,6 +112,7 @@ class RoleType(models.Model): class PredefinedSelectionalPreference(models.Model): name = models.CharField(max_length=20, unique=True) members = models.ForeignKey('SelectivePreference', null=True, on_delete=models.PROTECT) + info = models.CharField(max_length=200, unique=True) # name = TODO: wymaga lokalizacji def __str__(self): @@ -146,6 +147,12 @@ class SelectivePreference(models.Model): relations = models.ManyToManyField(RelationalSelectionalPreference) synset_relations = models.ManyToManyField(SynsetRelationalSelectivePreference) + def __str__(self): + return ', '.join([str(arg) for arg in self.generals.all()]) + \ + ', '.join([str(arg) for arg in self.synsets.all()]) + \ + ', '.join([str(arg) for arg in self.relations.all()]) + \ + ', '.join([str(arg) for arg in self.synset_relations.all()]) + class SelectionalPreferenceRelation(models.Model): key = models.CharField(max_length=40, unique=True) diff --git a/shellvalier/settings.py b/shellvalier/settings.py index 29a44e7..d1843ec 100644 --- a/shellvalier/settings.py +++ b/shellvalier/settings.py @@ -174,7 +174,8 @@ STATICFILES_DIRS = [ ] LOGIN_URL = reverse_lazy('users:login') -LOGIN_REDIRECT_URL = reverse_lazy('dash') +# LOGIN_REDIRECT_URL = reverse_lazy('dash') +LOGIN_REDIRECT_URL = reverse_lazy('entries:entries') LOGOUT_REDIRECT_URL = reverse_lazy('dash') EMAIL_BACKEND = get_environment('EMAIL_BACKEND') diff --git a/syntax/management/commands/add_predefined_preferences.py b/syntax/management/commands/add_predefined_preferences.py index f8fd1b8..89fd8fd 100644 --- a/syntax/management/commands/add_predefined_preferences.py +++ b/syntax/management/commands/add_predefined_preferences.py @@ -28,7 +28,7 @@ def create_predefined_preferences(): # LUDZIE: osoba-1, grupa ludzi-1 ludzie_members = SelectivePreference() ludzie_members.save() - osoba_1 = LexicalUnit.objects.get(base='osoba', + osoba_1 = LexicalUnit.objects.get(base='osoba', sense='1', pos='noun').synset grupa_ludzi_1 = LexicalUnit.objects.get(base='grupa ludzi', @@ -36,8 +36,10 @@ def create_predefined_preferences(): pos='noun').synset ludzie_members.synsets.add(osoba_1) ludzie_members.synsets.add(grupa_ludzi_1) + ludzie_members.save() ludzie, xx = PredefinedSelectionalPreference.objects.get_or_create(name='LUDZIE', - members=ludzie_members) + members=ludzie_members, + info='osoba-1, grupa ludzi-1') # ISTOTY: osoba-1, istota żywa-1, grupa istot-1 istoty_members = SelectivePreference() @@ -51,8 +53,10 @@ def create_predefined_preferences(): sense='1', pos='noun').synset istoty_members.synsets.add(grupa_istot_1) + istoty_members.save() istoty, xx = PredefinedSelectionalPreference.objects.get_or_create(name='ISTOTY', - members=istoty_members) + members=istoty_members, + info='osoba-1, istota żywa-1, grupa istot-1') # PODMIOTY: LUDZIE, podmiot-3 podmioty_members = SelectivePreference() @@ -62,13 +66,15 @@ def create_predefined_preferences(): sense='3', pos='noun').synset podmioty_members.synsets.add(podmiot_3) + podmioty_members.save() podmioty, xx = PredefinedSelectionalPreference.objects.get_or_create(name='PODMIOTY', - members=podmioty_members) + members=podmioty_members, + info='LUDZIE, podmiot-3') # DOBRA: jedzenie-2, mienie-1, przedmiot-1, wytwór-1 ==> JADÅO, mienie-1, przedmiot-1, wytwór-1 dobra_members = SelectivePreference() dobra_members.save() - jedzenie_2 = LexicalUnit.objects.get(base='jedzenie', + jedzenie_2 = LexicalUnit.objects.get(base='jedzenie', sense='2', pos='noun').synset dobra_members.synsets.add(jedzenie_2) @@ -84,13 +90,15 @@ def create_predefined_preferences(): sense='1', pos='noun').synset dobra_members.synsets.add(wytwor_1) + dobra_members.save() dobra, xx = PredefinedSelectionalPreference.objects.get_or_create(name='DOBRA', - members=dobra_members) + members=dobra_members, + info='JADÅO, mienie-1, przedmiot-1, wytwór-1') # KOMUNIKAT: informacja-1, wypowiedź-1 komunikat_members = SelectivePreference() komunikat_members.save() - informacja_1 = LexicalUnit.objects.get(base='informacja', + informacja_1 = LexicalUnit.objects.get(base='informacja', sense='1', pos='noun').synset komunikat_members.synsets.add(informacja_1) @@ -98,8 +106,10 @@ def create_predefined_preferences(): sense='1', pos='noun').synset komunikat_members.synsets.add(wypowiedz_1) + komunikat_members.save() komunikat, xx = PredefinedSelectionalPreference.objects.get_or_create(name='KOMUNIKAT', - members=komunikat_members) + members=komunikat_members, + info='informacja-1, wypowiedź-1') # KONCEPCJA: informacja-1, wytwór umysÅ‚u-1 koncepcja_members = SelectivePreference() @@ -109,21 +119,25 @@ def create_predefined_preferences(): sense='1', pos='noun').synset koncepcja_members.synsets.add(wytwor_umyslu_1) + koncepcja_members.save() koncepcja, xx = PredefinedSelectionalPreference.objects.get_or_create(name='KONCEPCJA', - members=koncepcja_members) + members=koncepcja_members, + info='informacja-1, wytwór umysÅ‚u-1') # WYTWÓR: przedmiot-1, wytwór-1 wytwor_members = SelectivePreference() wytwor_members.save() wytwor_members.synsets.add(przedmiot_1) wytwor_members.synsets.add(wytwor_1) + wytwor_members.save() wytwor, xx = PredefinedSelectionalPreference.objects.get_or_create(name='WYTWÓR', - members=wytwor_members) + members=wytwor_members, + info='przedmiot-1, wytwór-1') # JADÅO: pokarm-1, napój-1 jadlo_members = SelectivePreference() jadlo_members.save() - pokarm_1 = LexicalUnit.objects.get(base='pokarm', + pokarm_1 = LexicalUnit.objects.get(base='pokarm', sense='1', pos='noun').synset jadlo_members.synsets.add(pokarm_1) @@ -131,13 +145,18 @@ def create_predefined_preferences(): sense='1', pos='noun').synset jadlo_members.synsets.add(napoj_1) + jadlo_members.save() jadlo, xx = PredefinedSelectionalPreference.objects.get_or_create(name='JADÅO', - members=jadlo_members) - + members=jadlo_members, + info='pokarm-1, napój-1') + + polozenie, xx = PredefinedSelectionalPreference.objects.get_or_create(name='POÅOÅ»ENIE', + info='miejsce-1, przestrzeÅ„-1, obiekt-2') + # MIEJSCE: miejsce-1, przestrzeÅ„-1, obiekt-2 ==> lokal-1, budynek-1, rejon-1, obszar-1, paÅ„stwo-1, jednostka administracyjna-1, woda-4 miejsce_members = SelectivePreference() miejsce_members.save() - miejsce_1 = LexicalUnit.objects.get(base='miejsce', + miejsce_1 = LexicalUnit.objects.get(base='miejsce', sense='1', pos='noun').synset miejsce_members.synsets.add(miejsce_1) @@ -149,13 +168,18 @@ def create_predefined_preferences(): sense='2', pos='noun').synset miejsce_members.synsets.add(obiekt_2) + miejsce_members.save() miejsce, xx = PredefinedSelectionalPreference.objects.get_or_create(name='MIEJSCE', - members=miejsce_members) - - # CZAS: chwila-1, czas-3, czas-8, godzina-3 + members=miejsce_members, + info='lokal-1, budowla-1, rejon-1, obszar-1, paÅ„stwo-1, jednostka administracyjna-1, woda-4') + + polozenie, xx = PredefinedSelectionalPreference.objects.get_or_create(name='OTOCZENIE', + info='powierzchnia-2, rzecz-4, wytwór-2, pomieszczenie-3, osoba-1') + +# CZAS: chwila-1, czas-3, czas-8, godzina-3 czas_members = SelectivePreference() czas_members.save() - chwila_1 = LexicalUnit.objects.get(base='chwila', + chwila_1 = LexicalUnit.objects.get(base='chwila', sense='1', pos='noun').synset czas_members.synsets.add(chwila_1) @@ -171,8 +195,10 @@ def create_predefined_preferences(): sense='3', pos='noun').synset czas_members.synsets.add(godzina_3) + czas_members.save() czas, xx = PredefinedSelectionalPreference.objects.get_or_create(name='CZAS', - members=czas_members) + members=czas_members, + info='chwila-1, czas-3, czas-8, godzina-3') # OBIEKTY: osoba-1, obiekt-2, zbiór-1 obiekty_members = SelectivePreference() @@ -183,39 +209,48 @@ def create_predefined_preferences(): sense='1', pos='noun').synset obiekty_members.synsets.add(zbior_1) + obiekty_members.save() obiekty, xx = PredefinedSelectionalPreference.objects.get_or_create(name='OBIEKTY', - members=obiekty_members) + members=obiekty_members, + info='osoba-1, obiekt-2, zbiór-1') # CECHA: cecha-1 cecha_members = SelectivePreference() cecha_members.save() - cecha_1 = LexicalUnit.objects.get(base='cecha', + cecha_1 = LexicalUnit.objects.get(base='cecha', sense='1', pos='noun').synset cecha_members.synsets.add(cecha_1) + cecha_members.save() cecha, xx = PredefinedSelectionalPreference.objects.get_or_create(name='CECHA', - members=cecha_members) + members=cecha_members, + info='cecha-1') # CZYNNOŚĆ: czynność-1 czynnosc_members = SelectivePreference() czynnosc_members.save() - czynnosc_1 = LexicalUnit.objects.get(base='czynność', + czynnosc_1 = LexicalUnit.objects.get(base='czynność', sense='1', pos='noun').synset czynnosc_members.synsets.add(czynnosc_1) + czynnosc_members.save() czynnosc, xx = PredefinedSelectionalPreference.objects.get_or_create(name='CZYNNOŚĆ', - members=czynnosc_members) + members=czynnosc_members, + info='czynność-1, czyn-1') # SYTUACJA ==> czynność-1, zdarzenie-2, okoliczność-1, ciÄ…g zdarzeÅ„-1 - sytuacja, xx = PredefinedSelectionalPreference.objects.get_or_create(name='SYTUACJA') + sytuacja, xx = PredefinedSelectionalPreference.objects.get_or_create(name='SYTUACJA', + info='czynność-1, zdarzenie-2, okoliczność-1, ciÄ…g zdarzeÅ„-1') # KIEDY: CZAS, SYTUACJA kiedy_members = SelectivePreference() kiedy_members.save() kiedy_members.generals.add(czas) kiedy_members.generals.add(sytuacja) + kiedy_members.save() kiedy, xx = PredefinedSelectionalPreference.objects.get_or_create(name='KIEDY', - members=kiedy_members) + members=kiedy_members, + info='CZAS, SYTUACJA') # CZEMU: CECHA, SYTUACJA, LUDZIE czemu_members = SelectivePreference() @@ -223,13 +258,15 @@ def create_predefined_preferences(): czemu_members.generals.add(cecha) czemu_members.generals.add(sytuacja) czemu_members.generals.add(ludzie) + czemu_members.save() czemu, xx = PredefinedSelectionalPreference.objects.get_or_create(name='CZEMU', - members=czemu_members) + members=czemu_members, + info='CECHA, SYTUACJA, LUDZIE') # ILOŚĆ: ilość-1, rozmiar-1, rozmiar-2, jednostka-4, wielkość-6 ilosc_members = SelectivePreference() ilosc_members.save() - ilosc_1 = LexicalUnit.objects.get(base='ilość', + ilosc_1 = LexicalUnit.objects.get(base='ilość', sense='1', pos='noun').synset ilosc_members.synsets.add(ilosc_1) @@ -249,5 +286,7 @@ def create_predefined_preferences(): sense='6', pos='noun').synset ilosc_members.synsets.add(wielkosc_6) + ilosc_members.save() ilosc, xx = PredefinedSelectionalPreference.objects.get_or_create(name='ILOŚĆ', - members=ilosc_members) + members=ilosc_members, + info='ilość-1, rozmiar-1, rozmiar-2, jednostka-4, wielkość-6') diff --git a/syntax/management/commands/import_tei.py b/syntax/management/commands/import_tei.py index b6ac6c8..2afef61 100644 --- a/syntax/management/commands/import_tei.py +++ b/syntax/management/commands/import_tei.py @@ -188,14 +188,16 @@ def import_semantic_roles(): (150, u'Time', u'242,236,54', None), (160, u'Duration', u'233,192,6', None), (170, u'Measure', u'238,72,154', None), + (180, u'Lemma', u'238,72,154', None), (190, u'Disponent', u'127,255,212', None), - (200, u'Means', u'pre', None) + (200, u'Means', u'188,143,143', None) ] + # priorities set so that, when role and attribute priorities are added, # Role_Source < Role_Foreground < Role_Background < Role_Goal # and Role can be inserted anywhere into that hierarchy attributes = [(1, u'Source', None, u'left'), (3, u'Foreground', None, u'top'), (5, u'Background', None, u'bottom'), - (7, u'Goal', None, u'right'), (8, u'Source', None, u'right')] + (7, u'Goal', None, u'right')] sub_attributes = [(1, u'Part'), (2, u'Attrib')] @@ -213,7 +215,7 @@ def import_semantic_roles(): r = ArgumentRole(role=role, attribute=None) r.save() for attribute in RoleAttribute.objects.all(): - r = ArgumentRole(role=role, attribute=attribute) + r = ArgumentRole(role=role, attribute=attribute, sub_attribute=None) r.save() for sub_attribute in RoleSubAttribute.objects.all(): r = ArgumentRole(role=role, attribute=attribute, sub_attribute=sub_attribute) @@ -221,7 +223,8 @@ def import_semantic_roles(): def import_semantic_role_types(): - role_types = [(10, u'required'), (20, u'alternative'), (30, u'typical')] + # role_types = [(10, u'required'), (20, u'alternative'), (30, u'typical')] + role_types = [(10, u'role'), (20, u'alernative'), (30, u'modifier')] for pri, name in role_types: cont = RoleType(type=name) cont.save() -- GitLab