Commit 044a6cbfdf7c24c0d020c06991cc206b4d713541
1 parent
4c2dc86c
Added script for creating TEI xml Walenty file.
Showing
6 changed files
with
167 additions
and
132 deletions
dictionary/ajax_vocabulary_management.py
| @@ -127,15 +127,12 @@ def create_tei_walenty(lemmas, form_dict): | @@ -127,15 +127,12 @@ def create_tei_walenty(lemmas, form_dict): | ||
| 127 | os.chdir(tmp_folder) | 127 | os.chdir(tmp_folder) |
| 128 | tmpfile, tmpfilename = mkstemp(dir=tmp_folder) | 128 | tmpfile, tmpfilename = mkstemp(dir=tmp_folder) |
| 129 | os.close(tmpfile) | 129 | os.close(tmpfile) |
| 130 | - q_frame_opinions = [] | 130 | + frame_opinion_values = Frame_Opinion_Value.objects.none() |
| 131 | if form_dict['frame_opinions']: | 131 | if form_dict['frame_opinions']: |
| 132 | - for pk in form_dict['frame_opinions']: | ||
| 133 | - q_frame_opinions.append(Q(value__pk=pk)) | 132 | + frame_opinion_values = Frame_Opinion_Value.objects.filter(pk__in=form_dict['frame_opinions']) |
| 134 | createteixml(tmpfilename, | 133 | createteixml(tmpfilename, |
| 135 | lemmas, | 134 | lemmas, |
| 136 | - frame_char_models=[], | ||
| 137 | - form_dict=form_dict, | ||
| 138 | - q_frame_opinions=q_frame_opinions) | 135 | + frame_opinion_values) |
| 139 | file_name = tmpfilename + '.xml' | 136 | file_name = tmpfilename + '.xml' |
| 140 | os.rename(tmpfilename, file_name) | 137 | os.rename(tmpfilename, file_name) |
| 141 | return file_name | 138 | return file_name |
dictionary/management/commands/create_TEI_walenty.py
0 → 100644
| 1 | +#-*- coding:utf-8 -*- | ||
| 2 | + | ||
| 3 | +#Copyright (c) 2015, Bartłomiej Nitoń | ||
| 4 | +#All rights reserved. | ||
| 5 | + | ||
| 6 | +#Redistribution and use in source and binary forms, with or without modification, are permitted provided | ||
| 7 | +#that the following conditions are met: | ||
| 8 | + | ||
| 9 | +# Redistributions of source code must retain the above copyright notice, this list of conditions and | ||
| 10 | +# the following disclaimer. | ||
| 11 | +# Redistributions in binary form must reproduce the above copyright notice, this list of conditions | ||
| 12 | +# and the following disclaimer in the documentation and/or other materials provided with the distribution. | ||
| 13 | + | ||
| 14 | +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED | ||
| 15 | +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A | ||
| 16 | +# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR | ||
| 17 | +# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED | ||
| 18 | +# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
| 19 | +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | ||
| 20 | +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
| 21 | +# POSSIBILITY OF SUCH DAMAGE. | ||
| 22 | + | ||
| 23 | +import datetime | ||
| 24 | +import os | ||
| 25 | + | ||
| 26 | +from django.core.management.base import BaseCommand | ||
| 27 | + | ||
| 28 | +from dictionary.models import Lemma, Frame_Opinion_Value, \ | ||
| 29 | + get_checked_statuses | ||
| 30 | +from dictionary.teixml import createteixml | ||
| 31 | +from settings import WALENTY_PATH | ||
| 32 | + | ||
| 33 | +class Command(BaseCommand): | ||
| 34 | + args = 'none' | ||
| 35 | + | ||
| 36 | + def handle(self, *args, **options): | ||
| 37 | + now = datetime.datetime.now().strftime('%Y%m%d') | ||
| 38 | + filename_base = '%s_%s.xml' % ('walenty', now) | ||
| 39 | + outpath = os.path.join(WALENTY_PATH, filename_base) | ||
| 40 | + checked_statuses = get_checked_statuses() | ||
| 41 | + lemmas = Lemma.objects.filter(old=False).order_by('entry_obj__name') | ||
| 42 | + checked_lemmas = lemmas.filter(status__in=checked_statuses) | ||
| 43 | + frame_opinion_values = Frame_Opinion_Value.objects.all() | ||
| 44 | + createteixml(outpath, checked_lemmas, frame_opinion_values) | ||
| 45 | + | ||
| 0 | \ No newline at end of file | 46 | \ No newline at end of file |
dictionary/management/commands/create_walenty.py renamed to dictionary/management/commands/create_text_walenty.py
dictionary/models.py
| @@ -936,6 +936,12 @@ class Atribute_Model(Model): | @@ -936,6 +936,12 @@ class Atribute_Model(Model): | ||
| 936 | # priorytet prezentowania atrybutow w argumencie | 936 | # priorytet prezentowania atrybutow w argumencie |
| 937 | priority = PositiveIntegerField(db_column='priorytet', primary_key=True) | 937 | priority = PositiveIntegerField(db_column='priorytet', primary_key=True) |
| 938 | 938 | ||
| 939 | + def use_subparams(self): | ||
| 940 | + if (self.possible_parameters.exists() and | ||
| 941 | + self.possible_parameters.annotate(subparams_count=Count('possible_subparams')).filter(subparams_count__gt=0).exists()): | ||
| 942 | + return True | ||
| 943 | + return False | ||
| 944 | + | ||
| 939 | def __unicode__(self): | 945 | def __unicode__(self): |
| 940 | return '%s' % (self.atr_model_name) | 946 | return '%s' % (self.atr_model_name) |
| 941 | 947 |
dictionary/static/js/argument_form_utils.js
| @@ -268,8 +268,8 @@ function argument_form_submit() { | @@ -268,8 +268,8 @@ function argument_form_submit() { | ||
| 268 | } | 268 | } |
| 269 | // tworzymy typy fraz | 269 | // tworzymy typy fraz |
| 270 | else { | 270 | else { |
| 271 | - arguments_form_change(1, null, dialogParent.closest(".argument-add-form"), ''); | ||
| 272 | - // realization_arguments_form_change(1, '', false, dialogParent.closest(".argument-add-form")); | 271 | + //arguments_form_change(1, null, dialogParent.closest(".argument-add-form"), ''); |
| 272 | + realization_arguments_form_change(1, '', false, dialogParent.closest(".argument-add-form")); | ||
| 273 | } | 273 | } |
| 274 | } | 274 | } |
| 275 | this_dialog.dialog('close'); | 275 | this_dialog.dialog('close'); |
dictionary/teixml.py
| @@ -25,7 +25,6 @@ from semantics.models import LexicalUnitExamples | @@ -25,7 +25,6 @@ from semantics.models import LexicalUnitExamples | ||
| 25 | File with functions responsible for creating TEI xml. | 25 | File with functions responsible for creating TEI xml. |
| 26 | ''' | 26 | ''' |
| 27 | 27 | ||
| 28 | -import codecs | ||
| 29 | import datetime | 28 | import datetime |
| 30 | import operator | 29 | import operator |
| 31 | 30 | ||
| @@ -39,20 +38,20 @@ from dictionary.models import Atribute_Model, Frame_Opinion_Value, Frame_Char_Mo | @@ -39,20 +38,20 @@ from dictionary.models import Atribute_Model, Frame_Opinion_Value, Frame_Char_Mo | ||
| 39 | XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace' | 38 | XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace' |
| 40 | 39 | ||
| 41 | 40 | ||
| 42 | -def createteixml(outpath, lemmas, frame_char_models, | ||
| 43 | - form_dict, q_frame_opinions): | 41 | +def createteixml(outpath, lemmas, frame_opinion_values): |
| 44 | root = write_root() | 42 | root = write_root() |
| 45 | write_header(root) | 43 | write_header(root) |
| 46 | - #lemmas = lemmas.filter(entry=u'administrować') | ||
| 47 | - write_entries(root, lemmas, frame_char_models, | ||
| 48 | - form_dict, q_frame_opinions) | ||
| 49 | - with codecs.open(outpath, 'wt', 'utf-8') as output_file: | ||
| 50 | - output_file.write(etree.tostring(root, pretty_print = True)) | 44 | + #lemmas = lemmas.filter(entry=u'brnąć') |
| 45 | + write_entries(root, lemmas, frame_opinion_values) | ||
| 46 | + with open(outpath, 'w') as output_file: | ||
| 47 | + output_file.write(etree.tostring(root, pretty_print=True, | ||
| 48 | + xml_declaration=True, encoding='UTF-8', | ||
| 49 | + doctype=u'<!DOCTYPE TEI SYSTEM "tei_all.dtd">')) | ||
| 51 | 50 | ||
| 52 | def write_root(): | 51 | def write_root(): |
| 53 | root = etree.Element('TEI') | 52 | root = etree.Element('TEI') |
| 54 | - root.attrib[etree.QName(XML_NAMESPACE, 'lang')] = 'pl' | ||
| 55 | - root.attrib['xmlns'] = 'http://www.tei-c.org/ns/1.0' | 53 | + root.attrib[etree.QName(XML_NAMESPACE, 'lang')] = u'pl' |
| 54 | + root.attrib['xmlns'] = u'http://www.tei-c.org/ns/1.0' | ||
| 56 | return root | 55 | return root |
| 57 | 56 | ||
| 58 | def write_header(root): | 57 | def write_header(root): |
| @@ -61,30 +60,26 @@ def write_header(root): | @@ -61,30 +60,26 @@ def write_header(root): | ||
| 61 | 60 | ||
| 62 | title_stmt = etree.SubElement(file_desc, 'titleStmt') | 61 | title_stmt = etree.SubElement(file_desc, 'titleStmt') |
| 63 | title = etree.SubElement(title_stmt, 'title') | 62 | title = etree.SubElement(title_stmt, 'title') |
| 64 | - title.text = 'Polish Valence Dictionary (Walenty)' | ||
| 65 | -# | 63 | + title.text = u'Polish Valence Dictionary (Walenty)' |
| 64 | + | ||
| 66 | publication_stmt = etree.SubElement(file_desc, 'publicationStmt') | 65 | publication_stmt = etree.SubElement(file_desc, 'publicationStmt') |
| 67 | publisher = etree.SubElement(publication_stmt, 'publisher') | 66 | publisher = etree.SubElement(publication_stmt, 'publisher') |
| 68 | - publisher.text = 'IPI PAN ZIL' | 67 | + publisher.text = u'IPI PAN ZIL' |
| 69 | date = etree.SubElement(publication_stmt, 'date') | 68 | date = etree.SubElement(publication_stmt, 'date') |
| 70 | date.attrib['when'] = datetime.datetime.now().strftime('%Y-%m-%d') | 69 | date.attrib['when'] = datetime.datetime.now().strftime('%Y-%m-%d') |
| 71 | 70 | ||
| 72 | source_desc = etree.SubElement(file_desc, 'sourceDesc') | 71 | source_desc = etree.SubElement(file_desc, 'sourceDesc') |
| 73 | p = etree.SubElement(source_desc, 'p') | 72 | p = etree.SubElement(source_desc, 'p') |
| 74 | - p.text = 'File generated using Slowal. Mentioned tool available at: walenty.ipipan.waw.pl.' | 73 | + p.text = u'File generated using Slowal. Mentioned tool available at: walenty.ipipan.waw.pl.' |
| 75 | 74 | ||
| 76 | -def write_entries(root, lemmas, frame_char_models, | ||
| 77 | - form_dict, q_frame_opinions): | 75 | +def write_entries(root, lemmas, frame_opinion_values): |
| 78 | text = etree.SubElement(root, 'text') | 76 | text = etree.SubElement(root, 'text') |
| 79 | body = etree.SubElement(text, 'body') | 77 | body = etree.SubElement(text, 'body') |
| 80 | for lemma in lemmas: | 78 | for lemma in lemmas: |
| 81 | - frame_opinions = None | ||
| 82 | - if q_frame_opinions: | ||
| 83 | - frame_opinions = lemma.frame_opinions.filter(reduce(operator.or_, q_frame_opinions)) | ||
| 84 | - write_entry(body, lemma, frame_char_models, | ||
| 85 | - form_dict, frame_opinions) | 79 | + frame_opinions = lemma.frame_opinions.filter(value__in=frame_opinion_values) |
| 80 | + write_entry(body, lemma, frame_opinions, frame_opinion_values) | ||
| 86 | 81 | ||
| 87 | -def write_entry(body_elem, lemma, frame_char_models, form_dict, frame_opinions): | 82 | +def write_entry(body_elem, lemma, frame_opinions, frame_opinion_values): |
| 88 | entry_xml_id = 'wal_%s-ent' % str(lemma.entry_obj.id) | 83 | entry_xml_id = 'wal_%s-ent' % str(lemma.entry_obj.id) |
| 89 | entry_elem = etree.SubElement(body_elem, 'entry') | 84 | entry_elem = etree.SubElement(body_elem, 'entry') |
| 90 | entry_elem.attrib[etree.QName(XML_NAMESPACE, 'id')] = entry_xml_id | 85 | entry_elem.attrib[etree.QName(XML_NAMESPACE, 'id')] = entry_xml_id |
| @@ -95,15 +90,15 @@ def write_entry(body_elem, lemma, frame_char_models, form_dict, frame_opinions): | @@ -95,15 +90,15 @@ def write_entry(body_elem, lemma, frame_char_models, form_dict, frame_opinions): | ||
| 95 | pos_elem = etree.SubElement(form_elem, 'pos') | 90 | pos_elem = etree.SubElement(form_elem, 'pos') |
| 96 | pos_elem.text = lemma.entry_obj.pos.tag | 91 | pos_elem.text = lemma.entry_obj.pos.tag |
| 97 | 92 | ||
| 98 | - write_syntactic_layer(entry_elem, lemma, form_dict, frame_opinions) | 93 | + write_syntactic_layer(entry_elem, lemma, frame_opinions, frame_opinion_values) |
| 99 | write_examples_layer(entry_elem, lemma) | 94 | write_examples_layer(entry_elem, lemma) |
| 100 | write_semantic_layer(entry_elem, lemma) | 95 | write_semantic_layer(entry_elem, lemma) |
| 101 | write_meanings_layer(entry_elem, lemma) | 96 | write_meanings_layer(entry_elem, lemma) |
| 102 | write_connections_layer(entry_elem, lemma) | 97 | write_connections_layer(entry_elem, lemma) |
| 103 | 98 | ||
| 104 | -def write_syntactic_layer(entry_elem, lemma, form_dict, frame_opinions): | 99 | +def write_syntactic_layer(entry_elem, lemma, frame_opinions, frame_opinion_values): |
| 105 | synt_layer_fs_elem = etree.SubElement(entry_elem, 'fs') | 100 | synt_layer_fs_elem = etree.SubElement(entry_elem, 'fs') |
| 106 | - synt_layer_fs_elem.attrib['type'] = 'syntacticLayer' | 101 | + synt_layer_fs_elem.attrib['type'] = 'syntactic_layer' |
| 107 | schemata_f_elem = etree.SubElement(synt_layer_fs_elem, 'f') | 102 | schemata_f_elem = etree.SubElement(synt_layer_fs_elem, 'f') |
| 108 | schemata_f_elem.attrib['name'] = 'schemata' | 103 | schemata_f_elem.attrib['name'] = 'schemata' |
| 109 | vColl_elem = etree.SubElement(schemata_f_elem, 'vColl') | 104 | vColl_elem = etree.SubElement(schemata_f_elem, 'vColl') |
| @@ -118,7 +113,8 @@ def write_syntactic_layer(entry_elem, lemma, form_dict, frame_opinions): | @@ -118,7 +113,8 @@ def write_syntactic_layer(entry_elem, lemma, form_dict, frame_opinions): | ||
| 118 | pred_val=pred_val, | 113 | pred_val=pred_val, |
| 119 | aspect_val=aspect_val).order_by('text_rep') | 114 | aspect_val=aspect_val).order_by('text_rep') |
| 120 | for frame in matchingframes: | 115 | for frame in matchingframes: |
| 121 | - if not form_dict['frame_opinions'] or (frame_opinions and frame_opinions.filter(frame=frame).count() > 0): | 116 | + if (not frame_opinion_values.exists() or |
| 117 | + frame_opinions.filter(frame=frame).exists()): | ||
| 122 | write_schema(vColl_elem, frame, lemma) | 118 | write_schema(vColl_elem, frame, lemma) |
| 123 | 119 | ||
| 124 | def write_schema(parent_elem, schema, lemma): | 120 | def write_schema(parent_elem, schema, lemma): |
| @@ -139,13 +135,14 @@ def write_schema(parent_elem, schema, lemma): | @@ -139,13 +135,14 @@ def write_schema(parent_elem, schema, lemma): | ||
| 139 | opinion_symbol.attrib['value'] = schema_opinion | 135 | opinion_symbol.attrib['value'] = schema_opinion |
| 140 | 136 | ||
| 141 | # zwrotnosc | 137 | # zwrotnosc |
| 142 | - reflex = 'false' | ||
| 143 | - if schema.characteristics.filter(type=u'ZWROTNOŚĆ', value__value=u'się').exists(): | ||
| 144 | - reflex = 'true' | 138 | + reflex = schema.characteristics.get(type=u'ZWROTNOŚĆ') |
| 145 | selfmark_f_elem = etree.SubElement(schema_fs_elem, 'f') | 139 | selfmark_f_elem = etree.SubElement(schema_fs_elem, 'f') |
| 146 | - selfmark_f_elem.attrib['name'] = 'selfMark' | 140 | + selfmark_f_elem.attrib['name'] = 'reflexive_mark' |
| 147 | selfmark_binary = etree.SubElement(selfmark_f_elem, 'binary') | 141 | selfmark_binary = etree.SubElement(selfmark_f_elem, 'binary') |
| 148 | - selfmark_binary.attrib['value'] = reflex | 142 | + if reflex.value.value: |
| 143 | + selfmark_binary.attrib['value'] = 'true' | ||
| 144 | + else: | ||
| 145 | + selfmark_binary.attrib['value'] = 'false' | ||
| 149 | 146 | ||
| 150 | # aspekt | 147 | # aspekt |
| 151 | aspect = schema.characteristics.get(type=u'ASPEKT').value.value | 148 | aspect = schema.characteristics.get(type=u'ASPEKT').value.value |
| @@ -167,9 +164,11 @@ def write_schema(parent_elem, schema, lemma): | @@ -167,9 +164,11 @@ def write_schema(parent_elem, schema, lemma): | ||
| 167 | predicativity = schema.characteristics.get(type=u'PREDYKATYWNOŚĆ').value.value | 164 | predicativity = schema.characteristics.get(type=u'PREDYKATYWNOŚĆ').value.value |
| 168 | predicativity_f_elem = etree.SubElement(schema_fs_elem, 'f') | 165 | predicativity_f_elem = etree.SubElement(schema_fs_elem, 'f') |
| 169 | predicativity_f_elem.attrib['name'] = 'predicativity' | 166 | predicativity_f_elem.attrib['name'] = 'predicativity' |
| 167 | + predicativity_binary = etree.SubElement(predicativity_f_elem, 'binary') | ||
| 170 | if predicativity: | 168 | if predicativity: |
| 171 | - predicativity_symbol = etree.SubElement(predicativity_f_elem, 'symbol') | ||
| 172 | - predicativity_symbol.attrib['value'] = predicativity | 169 | + predicativity_binary.attrib['value'] = 'true' |
| 170 | + else: | ||
| 171 | + predicativity_binary.attrib['value'] = 'false' | ||
| 173 | 172 | ||
| 174 | # pozycje składniowe | 173 | # pozycje składniowe |
| 175 | write_positions_feature(schema, schema_xml_id, schema_fs_elem) | 174 | write_positions_feature(schema, schema_xml_id, schema_fs_elem) |
| @@ -204,20 +203,20 @@ def write_position_elem(parent_elem, schema_xml_id, position): | @@ -204,20 +203,20 @@ def write_position_elem(parent_elem, schema_xml_id, position): | ||
| 204 | 203 | ||
| 205 | def write_control_features(parent_elem, position): | 204 | def write_control_features(parent_elem, position): |
| 206 | controls1 = position.categories.filter(control=True).exclude(category__endswith='2') | 205 | controls1 = position.categories.filter(control=True).exclude(category__endswith='2') |
| 207 | - if controls1.exists(): | ||
| 208 | - control = controls1[0].category | ||
| 209 | - control1_f_elem = etree.SubElement(parent_elem, 'f') | ||
| 210 | - control1_f_elem.attrib['name'] = 'control1' | ||
| 211 | - control1_symbol_elem = etree.SubElement(control1_f_elem, 'symbol') | ||
| 212 | - control1_symbol_elem.attrib['value'] = control | ||
| 213 | - | ||
| 214 | controls2 = position.categories.filter(control=True, category__endswith='2') | 206 | controls2 = position.categories.filter(control=True, category__endswith='2') |
| 215 | - if controls2.exists(): | ||
| 216 | - control = controls2[0].category | ||
| 217 | - control2_f_elem = etree.SubElement(parent_elem, 'f') | ||
| 218 | - control2_f_elem.attrib['name'] = 'control2' | ||
| 219 | - control2_symbol_elem = etree.SubElement(control2_f_elem, 'symbol') | ||
| 220 | - control2_symbol_elem.attrib['value'] = control | 207 | + if controls1.exists() or controls2.exists(): |
| 208 | + control_f_elem = etree.SubElement(parent_elem, 'f') | ||
| 209 | + control_f_elem.attrib['name'] = 'control' | ||
| 210 | + vColl_elem = etree.SubElement(control_f_elem, 'vColl') | ||
| 211 | + vColl_elem.attrib['org'] = 'set' | ||
| 212 | + if controls1.exists(): | ||
| 213 | + control = controls1[0].category | ||
| 214 | + control1_symbol_elem = etree.SubElement(vColl_elem, 'symbol') | ||
| 215 | + control1_symbol_elem.attrib['value'] = control | ||
| 216 | + if controls2.exists(): | ||
| 217 | + control = controls2[0].category | ||
| 218 | + control2_symbol_elem = etree.SubElement(vColl_elem, 'symbol') | ||
| 219 | + control2_symbol_elem.attrib['value'] = control | ||
| 221 | 220 | ||
| 222 | def write_phrases_feature(parent_elem, position, position_xml_id): | 221 | def write_phrases_feature(parent_elem, position, position_xml_id): |
| 223 | sorted_phrases = sortArguments(position.arguments.all()) | 222 | sorted_phrases = sortArguments(position.arguments.all()) |
| @@ -246,19 +245,17 @@ def write_attribute(parent_elem, attribute): | @@ -246,19 +245,17 @@ def write_attribute(parent_elem, attribute): | ||
| 246 | attribute_model = Atribute_Model.objects.get(atr_model_name=attribute.type) | 245 | attribute_model = Atribute_Model.objects.get(atr_model_name=attribute.type) |
| 247 | attr_f_elem = etree.SubElement(parent_elem, 'f') | 246 | attr_f_elem = etree.SubElement(parent_elem, 'f') |
| 248 | attr_f_elem.attrib['name'] = attribute_model.sym_name | 247 | attr_f_elem.attrib['name'] = attribute_model.sym_name |
| 249 | -# attr_f_elem.text = unicode(attribute) | ||
| 250 | 248 | ||
| 251 | attribute_type = attribute_model.type.sym_name | 249 | attribute_type = attribute_model.type.sym_name |
| 252 | selection_modes = attribute_model.values_selection_modes | 250 | selection_modes = attribute_model.values_selection_modes |
| 253 | - if (attribute_type == 'text' and | ||
| 254 | - (not selection_modes.exists() or attribute.values.count() == 1)): | 251 | + if attribute_type == 'text' and not selection_modes.exists(): |
| 255 | write_simple_text_attr(attr_f_elem, attribute) | 252 | write_simple_text_attr(attr_f_elem, attribute) |
| 256 | elif attribute_type == 'text' and selection_modes.exists(): | 253 | elif attribute_type == 'text' and selection_modes.exists(): |
| 257 | - write_complex_text_attr(attr_f_elem, attribute) | 254 | + write_complex_text_attr(attr_f_elem, attribute_model, attribute) |
| 258 | elif attribute_type == 'parameter' and not selection_modes.exists(): | 255 | elif attribute_type == 'parameter' and not selection_modes.exists(): |
| 259 | - write_simple_parameter_attr(attr_f_elem, attribute) | 256 | + write_simple_parameter_attr(attr_f_elem, attribute_model, attribute) |
| 260 | elif attribute_type == 'parameter' and selection_modes.exists(): | 257 | elif attribute_type == 'parameter' and selection_modes.exists(): |
| 261 | - write_complex_parameter_attr(attr_f_elem, attribute) | 258 | + write_complex_parameter_attr(attr_f_elem, attribute_model, attribute) |
| 262 | elif attribute_type == 'argument' and not selection_modes.exists(): | 259 | elif attribute_type == 'argument' and not selection_modes.exists(): |
| 263 | write_simple_phrase_type_attr(attr_f_elem, attribute) | 260 | write_simple_phrase_type_attr(attr_f_elem, attribute) |
| 264 | elif attribute_type == 'argument' and selection_modes.exists(): | 261 | elif attribute_type == 'argument' and selection_modes.exists(): |
| @@ -270,22 +267,32 @@ def write_simple_text_attr(parent_elem, attribute): | @@ -270,22 +267,32 @@ def write_simple_text_attr(parent_elem, attribute): | ||
| 270 | string_elem = etree.SubElement(parent_elem, 'string') | 267 | string_elem = etree.SubElement(parent_elem, 'string') |
| 271 | string_elem.text = unicode(attribute).strip("'") | 268 | string_elem.text = unicode(attribute).strip("'") |
| 272 | 269 | ||
| 273 | -def write_complex_text_attr(parent_elem, attribute): | 270 | +def write_complex_text_attr(parent_elem, attribute_model, attribute): |
| 274 | complex_lemma_fs_elem = etree.SubElement(parent_elem, 'fs') | 271 | complex_lemma_fs_elem = etree.SubElement(parent_elem, 'fs') |
| 275 | - complex_lemma_fs_elem.attrib['type'] = 'complexLemma' | ||
| 276 | - write_selection_mode_and_separator(complex_lemma_fs_elem, attribute) | 272 | + complex_lemma_fs_elem.attrib['type'] = '%s_def' % parent_elem.attrib['name'] |
| 273 | + write_selection_mode_and_separator(complex_lemma_fs_elem, attribute_model, attribute) | ||
| 277 | write_lemmas(complex_lemma_fs_elem, attribute) | 274 | write_lemmas(complex_lemma_fs_elem, attribute) |
| 278 | 275 | ||
| 279 | -def write_selection_mode_and_separator(parent_elem, attribute): | ||
| 280 | - selection_mode = attribute.selection_mode.name | 276 | +def write_selection_mode_and_separator(parent_elem, attr_model, attribute): |
| 277 | + if attribute.selection_mode: | ||
| 278 | + selection_mode = attribute.selection_mode.name | ||
| 279 | + else: | ||
| 280 | + selection_mode = attr_model.values_selection_modes.order_by('priority')[0].name | ||
| 281 | sel_mode_f_elem = etree.SubElement(parent_elem, 'f') | 281 | sel_mode_f_elem = etree.SubElement(parent_elem, 'f') |
| 282 | - sel_mode_f_elem.attrib['name'] = 'selectionMode' | 282 | + sel_mode_f_elem.attrib['name'] = 'selection_mode' |
| 283 | sel_mode_symbol_elem = etree.SubElement(sel_mode_f_elem, 'symbol') | 283 | sel_mode_symbol_elem = etree.SubElement(sel_mode_f_elem, 'symbol') |
| 284 | sel_mode_symbol_elem.attrib['value'] = selection_mode | 284 | sel_mode_symbol_elem.attrib['value'] = selection_mode |
| 285 | 285 | ||
| 286 | - separator = attribute.separator.symbol | 286 | + if attribute.separator: |
| 287 | + separator = attribute.separator.symbol | ||
| 288 | + else: | ||
| 289 | + separator = attr_model.value_separators.order_by('priority')[0].symbol | ||
| 290 | + if separator == ';': | ||
| 291 | + separator = 'coord' | ||
| 292 | + elif separator == ',': | ||
| 293 | + separator = 'concat' | ||
| 287 | separator_f_elem = etree.SubElement(parent_elem, 'f') | 294 | separator_f_elem = etree.SubElement(parent_elem, 'f') |
| 288 | - separator_f_elem.attrib['name'] = 'separator' | 295 | + separator_f_elem.attrib['name'] = 'cooccurrence' |
| 289 | separator_symbol_elem = etree.SubElement(separator_f_elem, 'symbol') | 296 | separator_symbol_elem = etree.SubElement(separator_f_elem, 'symbol') |
| 290 | separator_symbol_elem.attrib['value'] = separator | 297 | separator_symbol_elem.attrib['value'] = separator |
| 291 | 298 | ||
| @@ -297,58 +304,54 @@ def write_lemmas(parent_elem, attribute): | @@ -297,58 +304,54 @@ def write_lemmas(parent_elem, attribute): | ||
| 297 | vColl_elem.attrib['org'] = 'set' | 304 | vColl_elem.attrib['org'] = 'set' |
| 298 | 305 | ||
| 299 | for lemma in lemmas: | 306 | for lemma in lemmas: |
| 300 | -# lemma_fs_elem = etree.SubElement(vColl_elem, 'fs') | ||
| 301 | -# lemma_fs_elem.attrib['type'] = 'lemma' | ||
| 302 | -# lemma_f_elem = etree.SubElement(lemma_fs_elem, 'f') | ||
| 303 | -# lemma_f_elem.attrib['name'] = 'base' | ||
| 304 | string_elem = etree.SubElement(vColl_elem, 'string') | 307 | string_elem = etree.SubElement(vColl_elem, 'string') |
| 305 | string_elem.text = lemma.strip("'") | 308 | string_elem.text = lemma.strip("'") |
| 306 | 309 | ||
| 307 | -def write_simple_parameter_attr(parent_elem, attribute): | 310 | +def write_simple_parameter_attr(parent_elem, attribute_model, attribute): |
| 308 | param_value = attribute.values.all()[0] | 311 | param_value = attribute.values.all()[0] |
| 309 | - write_parameter(parent_elem, param_value) | 312 | + write_parameter(parent_elem, attribute_model, param_value) |
| 310 | 313 | ||
| 311 | -def write_parameter(parent_elem, param_value): | ||
| 312 | - if param_value.parameter.subparameters.exists(): | 314 | +def write_parameter(parent_elem, attribute_model, param_value): |
| 315 | + if attribute_model.use_subparams(): | ||
| 313 | param_fs_elem = etree.SubElement(parent_elem, 'fs') | 316 | param_fs_elem = etree.SubElement(parent_elem, 'fs') |
| 314 | - param_fs_elem.attrib['type'] = 'complexAttr'#param_value.type.sym_name | 317 | + param_fs_elem.attrib['type'] = '%s_def' % parent_elem.attrib['name'] |
| 315 | 318 | ||
| 316 | - value_f_elem = etree.SubElement(param_fs_elem, 'f') # TODO: powininen byc symbol, ale takie comprepnp ma spacje | ||
| 317 | - value_f_elem.attrib['name'] = 'value' | ||
| 318 | - #value_f_elem.text = param_value.parameter.type.name | ||
| 319 | - value = param_value.parameter.type.name.replace(' ', '_') | 319 | + value_f_elem = etree.SubElement(param_fs_elem, 'f') |
| 320 | + value_f_elem.attrib['name'] = 'conjunction' | ||
| 321 | + value = param_value.parameter.type.name | ||
| 320 | symbol_elem = etree.SubElement(value_f_elem, 'symbol') | 322 | symbol_elem = etree.SubElement(value_f_elem, 'symbol') |
| 321 | symbol_elem.attrib['value'] = value | 323 | symbol_elem.attrib['value'] = value |
| 322 | - write_parameter_subparameters(param_fs_elem, param_value.parameter) | 324 | + if param_value.parameter.subparameters.exists(): |
| 325 | + write_parameter_subparameters(param_fs_elem, param_value.parameter) | ||
| 323 | else: | 326 | else: |
| 324 | value = unicode(param_value) | 327 | value = unicode(param_value) |
| 325 | - if value: | ||
| 326 | - value = value.replace(' ', '_') | 328 | + if attribute_model.sym_name == 'reflexive_mark': |
| 329 | + selfmark_binary = etree.SubElement(parent_elem, 'binary') | ||
| 330 | + if value: | ||
| 331 | + selfmark_binary.attrib['value'] = 'true' | ||
| 332 | + else: | ||
| 333 | + selfmark_binary.attrib['value'] = 'false' | ||
| 334 | + elif value: | ||
| 327 | symbol_elem = etree.SubElement(parent_elem, 'symbol') | 335 | symbol_elem = etree.SubElement(parent_elem, 'symbol') |
| 328 | symbol_elem.attrib['value'] = value | 336 | symbol_elem.attrib['value'] = value |
| 329 | - #parent_elem.text = unicode(param_value) # TODO: powininen byc symbol, ale takie comprepnp ma spacje | ||
| 330 | - | 337 | + |
| 331 | def write_parameter_subparameters(parent_elem, parameter): | 338 | def write_parameter_subparameters(parent_elem, parameter): |
| 332 | subparams_f_elem = etree.SubElement(parent_elem, 'f') | 339 | subparams_f_elem = etree.SubElement(parent_elem, 'f') |
| 333 | - subparams_f_elem.attrib['name'] = 'subparameters' | 340 | + subparams_f_elem.attrib['name'] = 'constraints' |
| 334 | vColl_elem = etree.SubElement(subparams_f_elem, 'vColl') | 341 | vColl_elem = etree.SubElement(subparams_f_elem, 'vColl') |
| 335 | vColl_elem.attrib['org'] = 'set' | 342 | vColl_elem.attrib['org'] = 'set' |
| 336 | for subparameter in parameter.subparameters.order_by('name'): | 343 | for subparameter in parameter.subparameters.order_by('name'): |
| 337 | write_subparameter(vColl_elem, subparameter) | 344 | write_subparameter(vColl_elem, subparameter) |
| 338 | 345 | ||
| 339 | def write_subparameter(parent_elem, subparameter): | 346 | def write_subparameter(parent_elem, subparameter): |
| 340 | -# subparam_fs_elem = etree.SubElement(parent_elem, 'fs') | ||
| 341 | -# subparam_fs_elem.attrib['type'] = 'subparameter' | ||
| 342 | -# value_f_elem = etree.SubElement(subparam_fs_elem, 'f') | ||
| 343 | -# value_f_elem.attrib['name'] = 'value' | ||
| 344 | symbol_elem = etree.SubElement(parent_elem, 'symbol') | 347 | symbol_elem = etree.SubElement(parent_elem, 'symbol') |
| 345 | symbol_elem.attrib['value'] = subparameter.name | 348 | symbol_elem.attrib['value'] = subparameter.name |
| 346 | 349 | ||
| 347 | -def write_complex_parameter_attr(parent_elem, attribute): | 350 | +def write_complex_parameter_attr(parent_elem, attribute_model, attribute): |
| 348 | vColl_elem = etree.SubElement(parent_elem, 'vColl') | 351 | vColl_elem = etree.SubElement(parent_elem, 'vColl') |
| 349 | vColl_elem.attrib['org'] = 'set' | 352 | vColl_elem.attrib['org'] = 'set' |
| 350 | for value in attribute.values.order_by('parameter__type'): | 353 | for value in attribute.values.order_by('parameter__type'): |
| 351 | - write_parameter(vColl_elem, value) | 354 | + write_parameter(vColl_elem, attribute_model, value) |
| 352 | 355 | ||
| 353 | def write_simple_phrase_type_attr(parent_elem, attribute): | 356 | def write_simple_phrase_type_attr(parent_elem, attribute): |
| 354 | write_phrase(parent_elem, attribute.values.all()[0].argument, None) | 357 | write_phrase(parent_elem, attribute.values.all()[0].argument, None) |
| @@ -360,7 +363,7 @@ def write_complex_phrase_type_attr(parent_elem, attribute): | @@ -360,7 +363,7 @@ def write_complex_phrase_type_attr(parent_elem, attribute): | ||
| 360 | write_phrases_set(parent_elem, phrases) | 363 | write_phrases_set(parent_elem, phrases) |
| 361 | else: | 364 | else: |
| 362 | complex_phrase_fs_elem = etree.SubElement(parent_elem, 'fs') | 365 | complex_phrase_fs_elem = etree.SubElement(parent_elem, 'fs') |
| 363 | - complex_phrase_fs_elem.attrib['type'] = 'complexPhraseAttr' | 366 | + complex_phrase_fs_elem.attrib['type'] = '%s_def' % parent_elem.attrib['name'] |
| 364 | write_typed_phrase_attr(complex_phrase_fs_elem, attribute) | 367 | write_typed_phrase_attr(complex_phrase_fs_elem, attribute) |
| 365 | 368 | ||
| 366 | def write_phrases_set(parent_elem, phrases): | 369 | def write_phrases_set(parent_elem, phrases): |
| @@ -373,19 +376,19 @@ def write_phrases_set(parent_elem, phrases): | @@ -373,19 +376,19 @@ def write_phrases_set(parent_elem, phrases): | ||
| 373 | def write_typed_phrase_attr(parent_elem, attribute): | 376 | def write_typed_phrase_attr(parent_elem, attribute): |
| 374 | selection_mode = attribute.selection_mode | 377 | selection_mode = attribute.selection_mode |
| 375 | type_f_elem = etree.SubElement(parent_elem, 'f') | 378 | type_f_elem = etree.SubElement(parent_elem, 'f') |
| 376 | - type_f_elem.attrib['name'] = 'type' | 379 | + type_f_elem.attrib['name'] = 'name' |
| 377 | symbol_elem = etree.SubElement(type_f_elem, 'symbol') | 380 | symbol_elem = etree.SubElement(type_f_elem, 'symbol') |
| 378 | symbol_elem.attrib['value'] = selection_mode.name | 381 | symbol_elem.attrib['value'] = selection_mode.name |
| 379 | 382 | ||
| 380 | if attribute.values.exists(): | 383 | if attribute.values.exists(): |
| 381 | phrases_f_elem = etree.SubElement(parent_elem, 'f') | 384 | phrases_f_elem = etree.SubElement(parent_elem, 'f') |
| 382 | - phrases_f_elem.attrib['name'] = 'phrases' | 385 | + phrases_f_elem.attrib['name'] = 'constraints' |
| 383 | phrases = [value.argument for value in attribute.values.all()] | 386 | phrases = [value.argument for value in attribute.values.all()] |
| 384 | write_phrases_set(phrases_f_elem, phrases) | 387 | write_phrases_set(phrases_f_elem, phrases) |
| 385 | 388 | ||
| 386 | def write_complex_position_attr(parent_elem, attribute): | 389 | def write_complex_position_attr(parent_elem, attribute): |
| 387 | complex_positions_fs_elem = etree.SubElement(parent_elem, 'fs') | 390 | complex_positions_fs_elem = etree.SubElement(parent_elem, 'fs') |
| 388 | - complex_positions_fs_elem.attrib['type'] = 'complexPositionsAttr' | 391 | + complex_positions_fs_elem.attrib['type'] = '%s_def' % parent_elem.attrib['name'] |
| 389 | 392 | ||
| 390 | selection_mode = attribute.selection_mode | 393 | selection_mode = attribute.selection_mode |
| 391 | type_f_elem = etree.SubElement(complex_positions_fs_elem, 'f') | 394 | type_f_elem = etree.SubElement(complex_positions_fs_elem, 'f') |
| @@ -406,7 +409,7 @@ def write_complex_position_attr(parent_elem, attribute): | @@ -406,7 +409,7 @@ def write_complex_position_attr(parent_elem, attribute): | ||
| 406 | 409 | ||
| 407 | def write_examples_layer(parent_elem, lemma): | 410 | def write_examples_layer(parent_elem, lemma): |
| 408 | examples_layer_elem = etree.SubElement(parent_elem, 'fs') | 411 | examples_layer_elem = etree.SubElement(parent_elem, 'fs') |
| 409 | - examples_layer_elem.attrib['type'] = 'examplesLayer' | 412 | + examples_layer_elem.attrib['type'] = 'examples_layer' |
| 410 | 413 | ||
| 411 | examples_f_elem = etree.SubElement(examples_layer_elem, 'f') | 414 | examples_f_elem = etree.SubElement(examples_layer_elem, 'f') |
| 412 | examples_f_elem.attrib['name'] = 'examples' | 415 | examples_f_elem.attrib['name'] = 'examples' |
| @@ -415,7 +418,7 @@ def write_examples_layer(parent_elem, lemma): | @@ -415,7 +418,7 @@ def write_examples_layer(parent_elem, lemma): | ||
| 415 | vColl_elem.attrib['org'] = 'set' | 418 | vColl_elem.attrib['org'] = 'set' |
| 416 | 419 | ||
| 417 | write_examples_feature(vColl_elem, lemma) | 420 | write_examples_feature(vColl_elem, lemma) |
| 418 | - | 421 | + |
| 419 | def write_examples_feature(parent_elem, lemma): | 422 | def write_examples_feature(parent_elem, lemma): |
| 420 | entry = lemma.entry_obj | 423 | entry = lemma.entry_obj |
| 421 | for example in lemma.nkjp_examples.order_by('opinion__priority').all(): | 424 | for example in lemma.nkjp_examples.order_by('opinion__priority').all(): |
| @@ -467,7 +470,7 @@ def get_and_write_meaning_link(parent_elem, entry, example): | @@ -467,7 +470,7 @@ def get_and_write_meaning_link(parent_elem, entry, example): | ||
| 467 | 470 | ||
| 468 | meaning_link_elem = etree.SubElement(meaning_f_elem, 'fs') | 471 | meaning_link_elem = etree.SubElement(meaning_f_elem, 'fs') |
| 469 | meaning_link_elem.attrib['sameAs'] = meaning_xml_id | 472 | meaning_link_elem.attrib['sameAs'] = meaning_xml_id |
| 470 | - meaning_link_elem.attrib['type'] = 'lexicalUnit' | 473 | + meaning_link_elem.attrib['type'] = 'lexical_unit' |
| 471 | except LexicalUnitExamples.DoesNotExist: | 474 | except LexicalUnitExamples.DoesNotExist: |
| 472 | pass | 475 | pass |
| 473 | 476 | ||
| @@ -492,7 +495,7 @@ def create_and_write_phrase_link(parent_elem, entry, example, phrase_selection): | @@ -492,7 +495,7 @@ def create_and_write_phrase_link(parent_elem, entry, example, phrase_selection): | ||
| 492 | 495 | ||
| 493 | def write_semantic_layer(parent_elem, lemma): | 496 | def write_semantic_layer(parent_elem, lemma): |
| 494 | semantic_layer_elem = etree.SubElement(parent_elem, 'fs') | 497 | semantic_layer_elem = etree.SubElement(parent_elem, 'fs') |
| 495 | - semantic_layer_elem.attrib['type'] = 'semanticLayer' | 498 | + semantic_layer_elem.attrib['type'] = 'semantic_layer' |
| 496 | 499 | ||
| 497 | frames_f_elem = etree.SubElement(semantic_layer_elem, 'f') | 500 | frames_f_elem = etree.SubElement(semantic_layer_elem, 'f') |
| 498 | frames_f_elem.attrib['name'] = 'frames' | 501 | frames_f_elem.attrib['name'] = 'frames' |
| @@ -532,7 +535,7 @@ def write_frame_meaning_link(parent_elem, entry, meaning): | @@ -532,7 +535,7 @@ def write_frame_meaning_link(parent_elem, entry, meaning): | ||
| 532 | link = u'#wal_%d.%d-mng' % (entry.id, meaning.id) | 535 | link = u'#wal_%d.%d-mng' % (entry.id, meaning.id) |
| 533 | lex_unit_link_elem = etree.SubElement(parent_elem, 'fs') | 536 | lex_unit_link_elem = etree.SubElement(parent_elem, 'fs') |
| 534 | lex_unit_link_elem.attrib['sameAs'] = link | 537 | lex_unit_link_elem.attrib['sameAs'] = link |
| 535 | - lex_unit_link_elem.attrib['type'] = 'lexicalUnit' | 538 | + lex_unit_link_elem.attrib['type'] = 'lexical_unit' |
| 536 | 539 | ||
| 537 | def write_frame_arguments(parent_elem, entry, frame): | 540 | def write_frame_arguments(parent_elem, entry, frame): |
| 538 | arguments_f_elem = etree.SubElement(parent_elem, 'f') | 541 | arguments_f_elem = etree.SubElement(parent_elem, 'f') |
| @@ -559,7 +562,7 @@ def write_roles(parent_elem, arg): | @@ -559,7 +562,7 @@ def write_roles(parent_elem, arg): | ||
| 559 | for role in arg.roles.order_by('gradient'): | 562 | for role in arg.roles.order_by('gradient'): |
| 560 | if role.gradient: | 563 | if role.gradient: |
| 561 | attribute_f_elem = etree.SubElement(parent_elem, 'f') | 564 | attribute_f_elem = etree.SubElement(parent_elem, 'f') |
| 562 | - attribute_f_elem.attrib['name'] = 'roleAttribute' | 565 | + attribute_f_elem.attrib['name'] = 'role_attribute' |
| 563 | attribute_symbol_elem = etree.SubElement(attribute_f_elem, 'symbol') | 566 | attribute_symbol_elem = etree.SubElement(attribute_f_elem, 'symbol') |
| 564 | attribute_symbol_elem.attrib['value'] = unicode(role) | 567 | attribute_symbol_elem.attrib['value'] = unicode(role) |
| 565 | else: | 568 | else: |
| @@ -571,10 +574,10 @@ def write_roles(parent_elem, arg): | @@ -571,10 +574,10 @@ def write_roles(parent_elem, arg): | ||
| 571 | def write_selective_preferences(parent_elem, arg, arg_base_id): | 574 | def write_selective_preferences(parent_elem, arg, arg_base_id): |
| 572 | if(arg.selective_preference): | 575 | if(arg.selective_preference): |
| 573 | sel_prefs_f_elem = etree.SubElement(parent_elem, 'f') | 576 | sel_prefs_f_elem = etree.SubElement(parent_elem, 'f') |
| 574 | - sel_prefs_f_elem.attrib['name'] = 'selPrefs' | 577 | + sel_prefs_f_elem.attrib['name'] = 'sel_prefs' |
| 575 | 578 | ||
| 576 | sel_prefs_groups_fs_elem = etree.SubElement(sel_prefs_f_elem, 'fs') | 579 | sel_prefs_groups_fs_elem = etree.SubElement(sel_prefs_f_elem, 'fs') |
| 577 | - sel_prefs_groups_fs_elem.attrib['type'] = 'selPrefsGroups' | 580 | + sel_prefs_groups_fs_elem.attrib['type'] = 'sel_prefs_groups' |
| 578 | 581 | ||
| 579 | write_synsets_sel_prefs(sel_prefs_groups_fs_elem, arg) | 582 | write_synsets_sel_prefs(sel_prefs_groups_fs_elem, arg) |
| 580 | write_predefined_sel_prefs(sel_prefs_groups_fs_elem, arg) | 583 | write_predefined_sel_prefs(sel_prefs_groups_fs_elem, arg) |
| @@ -594,12 +597,6 @@ def write_synsets_sel_prefs(parent_elem, arg): | @@ -594,12 +597,6 @@ def write_synsets_sel_prefs(parent_elem, arg): | ||
| 594 | write_synset(vColl_elem, synset) | 597 | write_synset(vColl_elem, synset) |
| 595 | 598 | ||
| 596 | def write_synset(parent_elem, synset): | 599 | def write_synset(parent_elem, synset): |
| 597 | -# synset_fs_elem = etree.SubElement(parent_elem, 'fs') | ||
| 598 | -# synset_fs_elem.attrib['type'] = 'synset' | ||
| 599 | -# | ||
| 600 | -# plWN_id_elem = etree.SubElement(synset_fs_elem, 'f') | ||
| 601 | -# plWN_id_elem.attrib['name'] = 'plwnid' | ||
| 602 | - | ||
| 603 | id_numeric_elem = etree.SubElement(parent_elem, 'numeric') | 600 | id_numeric_elem = etree.SubElement(parent_elem, 'numeric') |
| 604 | id_numeric_elem.attrib['value'] = str(synset.id) | 601 | id_numeric_elem.attrib['value'] = str(synset.id) |
| 605 | 602 | ||
| @@ -616,12 +613,6 @@ def write_predefined_sel_prefs(parent_elem, arg): | @@ -616,12 +613,6 @@ def write_predefined_sel_prefs(parent_elem, arg): | ||
| 616 | write_predef(vColl_elem, predef) | 613 | write_predef(vColl_elem, predef) |
| 617 | 614 | ||
| 618 | def write_predef(parent_elem, predef): | 615 | def write_predef(parent_elem, predef): |
| 619 | -# predef_fs_elem = etree.SubElement(parent_elem, 'fs') | ||
| 620 | -# predef_fs_elem.attrib['type'] = 'predef' | ||
| 621 | -# | ||
| 622 | -# name_f_elem = etree.SubElement(predef_fs_elem, 'f') | ||
| 623 | -# name_f_elem.attrib['name'] = 'name' | ||
| 624 | - | ||
| 625 | name_symbol_elem = etree.SubElement(parent_elem, 'symbol') | 616 | name_symbol_elem = etree.SubElement(parent_elem, 'symbol') |
| 626 | name_symbol_elem.attrib['value'] = predef.name | 617 | name_symbol_elem.attrib['value'] = predef.name |
| 627 | 618 | ||
| @@ -644,10 +635,8 @@ def write_relation(parent_elem, relation, arg_base_id): | @@ -644,10 +635,8 @@ def write_relation(parent_elem, relation, arg_base_id): | ||
| 644 | relation_f_elem = etree.SubElement(relation_fs_elem, 'f') | 635 | relation_f_elem = etree.SubElement(relation_fs_elem, 'f') |
| 645 | relation_f_elem.attrib['name'] = 'type' | 636 | relation_f_elem.attrib['name'] = 'type' |
| 646 | 637 | ||
| 647 | - type_string_elem = etree.SubElement(relation_f_elem, 'string') # TODO: tak ni powinno byc | ||
| 648 | - type_string_elem.text = relation.relation.name | ||
| 649 | -# type_symbol_elem = etree.SubElement(relation_f_elem, 'symbol') # @TODO: tak powinno byc zamiast stringa | ||
| 650 | -# type_symbol_elem.attrib['value'] = relation.relation.name | 638 | + type_symbol_elem = etree.SubElement(relation_f_elem, 'symbol') |
| 639 | + type_symbol_elem.attrib['value'] = relation.relation.name | ||
| 651 | 640 | ||
| 652 | to_f_elem = etree.SubElement(relation_fs_elem, 'f') | 641 | to_f_elem = etree.SubElement(relation_fs_elem, 'f') |
| 653 | to_f_elem.attrib['name'] = 'to' | 642 | to_f_elem.attrib['name'] = 'to' |
| @@ -661,7 +650,7 @@ def write_synset_relation_sel_prefs(parent_elem, arg): | @@ -661,7 +650,7 @@ def write_synset_relation_sel_prefs(parent_elem, arg): | ||
| 661 | relations = arg.selective_preference.synset_relations | 650 | relations = arg.selective_preference.synset_relations |
| 662 | if relations.exists(): | 651 | if relations.exists(): |
| 663 | relations_f_elem = etree.SubElement(parent_elem, 'f') | 652 | relations_f_elem = etree.SubElement(parent_elem, 'f') |
| 664 | - relations_f_elem.attrib['name'] = 'synsetRelations' | 653 | + relations_f_elem.attrib['name'] = 'synset_relations' |
| 665 | 654 | ||
| 666 | vColl_elem = etree.SubElement(relations_f_elem, 'vColl') | 655 | vColl_elem = etree.SubElement(relations_f_elem, 'vColl') |
| 667 | vColl_elem.attrib['org'] = 'set' | 656 | vColl_elem.attrib['org'] = 'set' |
| @@ -671,15 +660,13 @@ def write_synset_relation_sel_prefs(parent_elem, arg): | @@ -671,15 +660,13 @@ def write_synset_relation_sel_prefs(parent_elem, arg): | ||
| 671 | 660 | ||
| 672 | def write_synset_relation(parent_elem, relation): | 661 | def write_synset_relation(parent_elem, relation): |
| 673 | relation_fs_elem = etree.SubElement(parent_elem, 'fs') | 662 | relation_fs_elem = etree.SubElement(parent_elem, 'fs') |
| 674 | - relation_fs_elem.attrib['type'] = 'synsetRelation' | 663 | + relation_fs_elem.attrib['type'] = 'synset_relation' |
| 675 | 664 | ||
| 676 | relation_f_elem = etree.SubElement(relation_fs_elem, 'f') | 665 | relation_f_elem = etree.SubElement(relation_fs_elem, 'f') |
| 677 | relation_f_elem.attrib['name'] = 'type' | 666 | relation_f_elem.attrib['name'] = 'type' |
| 678 | 667 | ||
| 679 | - type_string_elem = etree.SubElement(relation_f_elem, 'string') | ||
| 680 | - type_string_elem.text = relation.relation.name | ||
| 681 | -# type_symbol_elem = etree.SubElement(relation_f_elem, 'symbol') # @TODO: tak powinno byc zamiast stringa | ||
| 682 | -# type_symbol_elem.attrib['value'] = relation.relation.name | 668 | + type_symbol_elem = etree.SubElement(relation_f_elem, 'symbol') |
| 669 | + type_symbol_elem.attrib['value'] = relation.relation.name | ||
| 683 | 670 | ||
| 684 | to_f_elem = etree.SubElement(relation_fs_elem, 'f') | 671 | to_f_elem = etree.SubElement(relation_fs_elem, 'f') |
| 685 | to_f_elem.attrib['name'] = 'to' | 672 | to_f_elem.attrib['name'] = 'to' |
| @@ -687,7 +674,7 @@ def write_synset_relation(parent_elem, relation): | @@ -687,7 +674,7 @@ def write_synset_relation(parent_elem, relation): | ||
| 687 | 674 | ||
| 688 | def write_meanings_layer(parent_elem, lemma): | 675 | def write_meanings_layer(parent_elem, lemma): |
| 689 | meanings_layer_elem = etree.SubElement(parent_elem, 'fs') | 676 | meanings_layer_elem = etree.SubElement(parent_elem, 'fs') |
| 690 | - meanings_layer_elem.attrib['type'] = 'meaningsLayer' | 677 | + meanings_layer_elem.attrib['type'] = 'meanings_layer' |
| 691 | 678 | ||
| 692 | meanings_f_elem = etree.SubElement(meanings_layer_elem, 'f') | 679 | meanings_f_elem = etree.SubElement(meanings_layer_elem, 'f') |
| 693 | meanings_f_elem.attrib['name'] = 'meanings' | 680 | meanings_f_elem.attrib['name'] = 'meanings' |
| @@ -708,7 +695,7 @@ def write_meaning(parent_elem, entry, lex_unit): | @@ -708,7 +695,7 @@ def write_meaning(parent_elem, entry, lex_unit): | ||
| 708 | 695 | ||
| 709 | meaning_fs_elem = etree.SubElement(parent_elem, 'fs') | 696 | meaning_fs_elem = etree.SubElement(parent_elem, 'fs') |
| 710 | meaning_fs_elem.attrib[etree.QName(XML_NAMESPACE, 'id')] = meaning_xml_id | 697 | meaning_fs_elem.attrib[etree.QName(XML_NAMESPACE, 'id')] = meaning_xml_id |
| 711 | - meaning_fs_elem.attrib['type'] = 'lexicalUnit' | 698 | + meaning_fs_elem.attrib['type'] = 'lexical_unit' |
| 712 | 699 | ||
| 713 | name_f_elem = etree.SubElement(meaning_fs_elem, 'f') | 700 | name_f_elem = etree.SubElement(meaning_fs_elem, 'f') |
| 714 | name_f_elem.attrib['name'] = 'name' | 701 | name_f_elem.attrib['name'] = 'name' |
| @@ -717,8 +704,8 @@ def write_meaning(parent_elem, entry, lex_unit): | @@ -717,8 +704,8 @@ def write_meaning(parent_elem, entry, lex_unit): | ||
| 717 | 704 | ||
| 718 | variant_f_elem = etree.SubElement(meaning_fs_elem, 'f') | 705 | variant_f_elem = etree.SubElement(meaning_fs_elem, 'f') |
| 719 | variant_f_elem.attrib['name'] = 'variant' | 706 | variant_f_elem.attrib['name'] = 'variant' |
| 720 | - variant_symbol_elem = etree.SubElement(variant_f_elem, 'symbol') | ||
| 721 | - variant_symbol_elem.attrib['value'] = lex_unit.sense | 707 | + variant_string_elem = etree.SubElement(variant_f_elem, 'string') |
| 708 | + variant_string_elem.text = lex_unit.sense | ||
| 722 | 709 | ||
| 723 | plwnluid_f_elem = etree.SubElement(meaning_fs_elem, 'f') | 710 | plwnluid_f_elem = etree.SubElement(meaning_fs_elem, 'f') |
| 724 | plwnluid_f_elem.attrib['name'] = 'plwnluid' | 711 | plwnluid_f_elem.attrib['name'] = 'plwnluid' |
| @@ -733,7 +720,7 @@ def write_meaning(parent_elem, entry, lex_unit): | @@ -733,7 +720,7 @@ def write_meaning(parent_elem, entry, lex_unit): | ||
| 733 | 720 | ||
| 734 | def write_connections_layer(parent_elem, lemma): | 721 | def write_connections_layer(parent_elem, lemma): |
| 735 | connections_layer_elem = etree.SubElement(parent_elem, 'fs') | 722 | connections_layer_elem = etree.SubElement(parent_elem, 'fs') |
| 736 | - connections_layer_elem.attrib['type'] = 'connectionsLayer' | 723 | + connections_layer_elem.attrib['type'] = 'connections_layer' |
| 737 | 724 | ||
| 738 | alternations_f_elem = etree.SubElement(connections_layer_elem, 'f') | 725 | alternations_f_elem = etree.SubElement(connections_layer_elem, 'f') |
| 739 | alternations_f_elem.attrib['name'] = 'alternations' | 726 | alternations_f_elem.attrib['name'] = 'alternations' |