IssueID #1224: added support and example for morphological lexicon

This commit is contained in:
Cyprian Laskowski 2020-10-16 15:40:39 +02:00
parent 3e129eba41
commit 8a1c1bc812
3 changed files with 112 additions and 26 deletions

View File

@ -23,6 +23,19 @@
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="orthography_id" type="xsd:integer"/>
<xsd:attribute name="dynamic_accentuation_id" type="xsd:integer"/>
<xsd:attribute name="tonemic_accentuation_id" type="xsd:integer"/>
<xsd:attribute name="pronunciation_id" type="xsd:integer"/>
<xsd:attribute name="hyphenation_id" type="xsd:integer"/>
<xsd:attribute name="norm">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="non-standard"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
@ -101,8 +114,8 @@
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:int"/>
<xsd:attribute name="sloleks_id" type="xsd:string"/>
<xsd:attribute name="sloleks_key" type="xsd:string"/>
<xsd:attribute name="sloleksId" type="xsd:string"/>
<xsd:attribute name="sloleksKey" type="xsd:string"/>
<xsd:attribute name="type" use="required"> <!-- types of headwords allowed; hmm, probably should standardise allowed settings -->
<xsd:simpleType>
<xsd:restriction base="xsd:string">
@ -507,29 +520,101 @@
</xsd:simpleContent>
</xsd:complexType>
<!-- Normalisation types for form representations -->
<xsd:simpleType name="formNormType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="standard"/>
<xsd:enumeration value="non-standard"/>
<xsd:enumeration value="variant"/>
</xsd:restriction>
</xsd:simpleType>
<!-- Form representation wrapper -->
<xsd:complexType name="formRepresentationType">
<!-- Container for all kinds of form representation lists -->
<xsd:complexType name="formRepresentationsType">
<xsd:sequence>
<xsd:element name="measureList" type="measureListType"/>
<xsd:element name="norm" type="formNormType" minOccurs="0"/>
<xsd:element name="form" type="xsd:string"/>
<xsd:element name="orthographyList" type="orthographyListType"/>
<xsd:element name="accentuationList" type="accentuationListType" minOccurs="0" maxOccurs="2"/>
<xsd:element name="pronunciationList" type="pronunciationListType" minOccurs="0"/>
<xsd:element name="hyphenationList" type="hyphenationListType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:int" use="required"/>
</xsd:complexType>
<!-- List of form representations -->
<xsd:complexType name="formRepresentationListType">
<xsd:complexType name="orthographyType">
<xsd:sequence>
<xsd:element name="formRepresentation" type="formRepresentationType" maxOccurs="unbounded"/>
<xsd:element name="form" type="formType"/>
<xsd:element name="measureList" type="measureListType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:integer" use="required"/>
<xsd:attribute name="morphologyPatterns" type="xsd:string"/>
<xsd:attribute name="status" type="xsd:string"/>
<xsd:attribute name="norm" type="xsd:string"/> <!-- closed set? -->
</xsd:complexType>
<xsd:complexType name="orthographyListType">
<xsd:sequence>
<xsd:element name="orthography" type="orthographyType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="accentuationType">
<xsd:sequence>
<xsd:element name="form" type="formType"/>
<xsd:element name="measureList" type="measureListType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:integer" use="required"/>
<xsd:attribute name="orthography_id" type="xsd:integer" use="required"/>
<xsd:attribute name="stressPatterns" type="xsd:string"/>
<xsd:attribute name="status" type="xsd:string"/>
<xsd:attribute name="norm" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="accentuationListType">
<xsd:sequence>
<xsd:element name="accentuation" type="accentuationType" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="type">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="dynamic"/>
<xsd:enumeration value="tonemic"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
<xsd:simpleType name="formType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:complexType name="pronunciationFormType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="script" type="xsd:string" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="pronunciationType">
<xsd:sequence>
<xsd:element name="form" type="pronunciationFormType" maxOccurs="unbounded"/>
<xsd:element name="measureList" type="measureListType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:integer" use="required"/>
<xsd:attribute name="dynamic_accentuation_id" type="xsd:integer" use="required"/>
<xsd:attribute name="tonemic_accentuation_id" type="xsd:integer"/>
<xsd:attribute name="status" type="xsd:string"/>
<xsd:attribute name="norm" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="pronunciationListType">
<xsd:sequence>
<xsd:element name="pronunciation" type="pronunciationType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="hyphenationType">
<xsd:sequence>
<xsd:element name="form" type="formType"/>
<xsd:element name="measureList" type="measureListType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:integer" use="required"/>
<xsd:attribute name="orthography_id" type="xsd:integer" use="required"/>
</xsd:complexType>
<xsd:complexType name="hyphenationListType">
<xsd:sequence>
<xsd:element name="hyphenation" type="hyphenationType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
@ -538,7 +623,7 @@
<xsd:sequence>
<xsd:element name="msd" type="msdType" maxOccurs="unbounded"/>
<xsd:element name="grammarFeatureList" type="grammarFeatureListType" minOccurs="0"/>
<xsd:element name="formRepresentationList" type="formRepresentationListType"/>
<xsd:element name="formRepresentations" type="formRepresentationsType"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:int" use="required"/>
</xsd:complexType>

View File

@ -16,9 +16,9 @@
<xsd:sequence>
<xsd:element name="status" type="statusType" minOccurs="0"/>
<xsd:element name="headword" type="headwordType"/>
<xsd:element name="lexicalUnit" type="lexicalUnitType" minOccurs="0"/>
<xsd:element name="grammar" type="grammarType" minOccurs="0"/>
<xsd:element name="measureList" type="measureListType" minOccurs="0"/>
<xsd:element name="lexicalUnit" type="lexicalUnitType"/>
<xsd:element name="grammar" type="grammarType"/>
<xsd:element name="measureList" type="measureListType"/>
<xsd:element name="relatedEntryList" type="relatedEntryListType" minOccurs="0"/>
<xsd:element name="labelList" type="labelListType" minOccurs="0"/>
<xsd:element name="comment" type="commentType" minOccurs="0"/>

View File

@ -6,10 +6,11 @@ validated both with this schema and with an appropriate more specific schema bas
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd" />
<!-- top-level element is a dictionary -->
<xsd:element name="dictionary" type="dictionaryType"/>
<xsd:element name="dictionary" type="rootType"/>
<xsd:element name="lexicon" type="rootType"/>
<!-- top-level type consists of sequence of entries -->
<xsd:complexType name="dictionaryType">
<xsd:complexType name="rootType">
<xsd:sequence>
<xsd:element name="entry" type="entryType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>