<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
   <xs:annotation>
      <xs:documentation>KYOTO - LMF REPRESENTATION FORMAT</xs:documentation>
   </xs:annotation>
   <xs:element name="LexicalResource">
      <xs:complexType>
          <xs:sequence>
             <xs:element name="GlobalInformation">
                 <xs:complexType>
                     <xs:attribute name="label" type="xs:string"/>
                 </xs:complexType>
             </xs:element>
             <xs:element name="Lexicon" maxOccurs="unbounded">
                 <xs:complexType>
                     <xs:sequence>
                        <xs:element name="LexicalEntry" maxOccurs="unbounded">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element ref="Meta" minOccurs="0"/>
                                    <xs:element name="Lemma">
                                       <xs:complexType>
                                           <xs:attribute name="writtenForm" type="xs:string" use="required"/>
                                           <xs:attribute name="partOfSpeech" type="partOfSpeechType" use="required"/>
                                       </xs:complexType>
                                    </xs:element>
                                    <xs:element name="Sense" minOccurs="0" maxOccurs="unbounded">
                                       <xs:complexType>
                                           <xs:sequence>
                                               <xs:element ref="Meta" minOccurs="0"/>
                                               <xs:element ref="MonolingualExternalRefs" minOccurs="0"/>
                                           </xs:sequence>
                                           <xs:attribute name="id" type="xs:ID" use="required">
                                           </xs:attribute>
                                           <xs:attribute name="synset" type="xs:IDREF" use="required">
                                           </xs:attribute>
                                       </xs:complexType>
                                    </xs:element>
                                </xs:sequence>
                                <xs:attribute name="id" type="xs:ID"/>
                            </xs:complexType>
                        </xs:element>
                        <xs:element name="Synset" minOccurs="0" maxOccurs="unbounded">
                            <xs:complexType>
                       <xs:sequence>
                          <xs:element ref="Meta" minOccurs="0"/>
                          <xs:element name="Definition" minOccurs="0">
                              <xs:annotation>
                                  <xs:documentation>The gloss of the synset</xs:documentation>
                              </xs:annotation>
                              <xs:complexType>
                                  <xs:sequence>
                                         <xs:element name="Statement" minOccurs="0" maxOccurs="unbounded">
                                         <xs:annotation>
                                             <xs:documentation>examples of use</xs:documentation>
                                         </xs:annotation>
                                         <xs:complexType>
                                             <xs:attribute name="example" type="xs:string" use="required"/>
                                         </xs:complexType>
                                      </xs:element>
                                  </xs:sequence>
                                  <xs:attribute name="gloss" type="xs:string" use="required"/>
                              </xs:complexType>
                          </xs:element>
                          <xs:element name="SynsetRelations">
                              <xs:complexType>
                                  <xs:sequence>
                                      <xs:element name="SynsetRelation">
                                         <xs:annotation>
                                             <xs:documentation>Relation between synset</xs:documentation>
                                         </xs:annotation>
                                         <xs:complexType>
                                             <xs:sequence>
                                                 <xs:element ref="Meta" minOccurs="0"/>
                                             </xs:sequence>
                                                 <xs:attribute name="target" type="synsetIdType" use="required">
                                                 <xs:annotation>
                                                    <xs:documentation>synsetId</xs:documentation>
                                                 </xs:annotation>
                                             </xs:attribute>
                                             <xs:attribute name="relType" type="internalRelationType" use="required">
                                             </xs:attribute>
                                         </xs:complexType>
                                      </xs:element>
                                  </xs:sequence>
                              </xs:complexType>
                          </xs:element>
                          <xs:element ref="MonolingualExternalRefs"/>
                       </xs:sequence>
                       <xs:attribute name="id" type="synsetIdType" use="required"/>
                             <xs:attribute name="baseConcept" type="baseConceptType" use="required"/>
                         </xs:complexType>
                      </xs:element>
                  </xs:sequence>
                  <xs:attribute name="languageCoding" type="xs:string" fixed="ISO 639-3"/>
                  <xs:attribute name="label" type="xs:string"/>
                  <xs:attribute name="language" type="languageType" use="required"/>
                  <xs:attribute name="owner" type="xs:string" use="required"/>
                  <xs:attribute name="version" type="xs:string" use="required"/>
              </xs:complexType>
          </xs:element>
          <xs:element name="SenseAxes" minOccurs="0">
              <xs:complexType>
                  <xs:sequence>
                      <xs:element name="SenseAxis" maxOccurs="unbounded">
                         <xs:complexType>
                             <xs:sequence>
                                 <xs:element ref="Meta" minOccurs="0"/>
                                 <xs:element name="Target" maxOccurs="unbounded">
                                    <xs:annotation>
                                        <xs:documentation>One target for each synset</xs:documentation>
                                    </xs:annotation>
                                    <xs:complexType>
                                        <xs:attribute name="ID" type="synsetIdType" use="required"/>
                                    </xs:complexType>
                                 </xs:element>
                                 <xs:element ref="InterlingualExternalRefs"/>
                             </xs:sequence>
                             <xs:attribute name="id" type="xs:ID" use="required"/>
                             <xs:attribute name="relType" type="externalRelationType" use="required"/>
                         </xs:complexType>
                      </xs:element>
                  </xs:sequence>
              </xs:complexType>
          </xs:element>
       </xs:sequence>
   </xs:complexType>
</xs:element>
<xs:element name="Meta">
   <xs:complexType>
       <xs:attribute name="author" type="xs:string"/>
       <xs:attribute name="date" type="xs:string"/>
       <xs:attribute name="source" type="xs:string"/>
       <xs:attribute name="status" type="xs:string"/>
       <xs:attribute name="confidenceScore" type="rateType"/>
   </xs:complexType>
</xs:element>
<xs:element name="MonolingualExternalRefs">
   <xs:annotation>
         <xs:documentation>References to resources of the same language </xs:documentation>
   </xs:annotation>
   <xs:complexType>
         <xs:sequence>
               <xs:element name="MonolingualExternalRef" maxOccurs="unbounded">
                  <xs:complexType>
                      <xs:sequence>
                             <xs:element ref="Meta" minOccurs="0"/>
                      </xs:sequence>
                      <xs:attribute name="externalSystem" type="externalSystemType" use="required"/>
                      <xs:attribute name="externalReference" type="xs:string" use="required"/>
                      <xs:attribute name="relType" type="ontologyRelationType" use="optional">
                             <xs:annotation>
                                  <xs:documentation>Used only if the externalSystem is SUMO</xs:documentation>
                             </xs:annotation>
                      </xs:attribute>
                  </xs:complexType>
               </xs:element>
         </xs:sequence>
   </xs:complexType>
</xs:element>
<xs:element name="InterlingualExternalRefs">
   <xs:annotation>
         <xs:documentation>References to ontologies</xs:documentation>
   </xs:annotation>
   <xs:complexType>
         <xs:sequence>
               <xs:element name="InterlingualExternalRef" maxOccurs="unbounded">
                  <xs:complexType>
                      <xs:sequence>
                             <xs:element ref="Meta" minOccurs="0"/>
                      </xs:sequence>
                      <xs:attribute name="externalSystem" type="ontologyType" use="required">
                             <xs:annotation>
                                  <xs:documentation>The name of the ontology</xs:documentation>
                             </xs:annotation>
                      </xs:attribute>
                      <xs:attribute name="externalReference" type="xs:string" use="required">
                      </xs:attribute>
                      <xs:attribute name="relType" type="ontologyRelationType" use="optional">
                      </xs:attribute>
                  </xs:complexType>
               </xs:element>
         </xs:sequence>
   </xs:complexType>
</xs:element>
<!--°°°°°°°°°°° TYPES °°°°°°°°°°°-->
<xs:simpleType name="internalRelationType">
   <xs:annotation>
         <xs:documentation>List of internal relation types</xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:enumeration value="antonym"/>
         <xs:enumeration value="antonym_comp"/>
         <xs:enumeration value="be_in_state"/>
         <xs:enumeration value="category"/>
         <xs:enumeration value="category_term"/>
         <xs:enumeration value="causes"/>
         <xs:enumeration value="co_agent_instrument"/>
         <xs:enumeration value="co_agent_patient"/>
         <xs:enumeration value="co_agent_result"/>
         <xs:enumeration value="co_instrument_agent"/>
         <xs:enumeration value="co_instrument_patient"/>
         <xs:enumeration value="co_instrument_result"/>
         <xs:enumeration value="co_patient_agent"/>
         <xs:enumeration value="co_patient_instrument"/>
         <xs:enumeration value="co_patient_result"/>
         <xs:enumeration value="co_result_agent"/>
         <xs:enumeration value="co_result_instrument"/>
         <xs:enumeration value="co_result_patient"/>
         <xs:enumeration value="co_role"/>
         <xs:enumeration value="for_purpose_of"/>
         <xs:enumeration value="fuzzynym"/>
         <xs:enumeration value="gloss"/>
         <xs:enumeration value="has_derived"/>
         <xs:enumeration value="has_holo_location"/>
         <xs:enumeration value="has_holo_madeof"/>
         <xs:enumeration value="has_holo_member"/>
         <xs:enumeration value="has_holo_part"/>
         <xs:enumeration value="has_holo_portion"/>
         <xs:enumeration value="has_holonym"/>
         <xs:enumeration value="has_hyperonym"/>
         <xs:enumeration value="has_hyponym"/>
         <xs:enumeration value="has_mero_location"/>
         <xs:enumeration value="has_mero_madeof"/>
         <xs:enumeration value="has_mero_member"/>
         <xs:enumeration value="has_mero_part"/>
         <xs:enumeration value="has_mero_portion"/>
         <xs:enumeration value="has_meronym"/>
         <xs:enumeration value="has_pertainym"/>
         <xs:enumeration value="has_subevent"/>
         <xs:enumeration value="has_xpos_hyperonym"/>
         <xs:enumeration value="has_xpos_hyponym"/>
         <xs:enumeration value="in_manner"/>
         <xs:enumeration value="instance"/>
<xs:enumeration value="involved"/>
         <xs:enumeration value="involved_agent"/>
         <xs:enumeration value="involved_direction"/>
       <xs:enumeration value="involved_instrument"/>
       <xs:enumeration value="involved_location"/>
       <xs:enumeration value="involved_patient"/>
       <xs:enumeration value="involved_result"/>
       <xs:enumeration value="involved_source_direction"/>
       <xs:enumeration value="involved_target_direction"/>
       <xs:enumeration value="is_a_value_of"/>
       <xs:enumeration value="is_caused_by"/>
       <xs:enumeration value="is_derived_from"/>
       <xs:enumeration value="is_subevent_of"/>
       <xs:enumeration value="manner_of"/>
       <xs:enumeration value="near_antonym"/>
       <xs:enumeration value="near_synonym"/>
       <xs:enumeration value="nearest"/>
       <xs:enumeration value="pertains_to"/>
       <xs:enumeration value="region"/>
       <xs:enumeration value="region_term"/>
       <xs:enumeration value="related"/>
       <xs:enumeration value="related_to"/>
       <xs:enumeration value="results_in"/>
       <xs:enumeration value="rgloss"/>
       <xs:enumeration value="role"/>
       <xs:enumeration value="role_agent"/>
       <xs:enumeration value="role_direction"/>
       <xs:enumeration value="role_instrument"/>
       <xs:enumeration value="role_location"/>
       <xs:enumeration value="role_manner"/>
       <xs:enumeration value="role_patient"/>
       <xs:enumeration value="role_result"/>
       <xs:enumeration value="role_source_direction"/>
       <xs:enumeration value="role_target_direction"/>
       <xs:enumeration value="see_also_wn15"/>
       <xs:enumeration value="state_of"/>
       <xs:enumeration value="usage"/>
       <xs:enumeration value="usage_term"/>
       <xs:enumeration value="verb_group"/>
       <xs:enumeration value="xpos_fuzzynym"/>
       <xs:enumeration value="xpos_near_antonym"/>
       <xs:enumeration value="xpos_near_synonym"/>
   </xs:restriction>
</xs:simpleType>
<xs:simpleType name="externalRelationType">
   <xs:annotation>
       <xs:documentation>List of external relation types</xs:documentation>
   </xs:annotation>
   <xs:restriction base="xs:string">
       <xs:enumeration value="eq_synonym"/>
       <xs:enumeration value="eq_near_synonym"/>
       <xs:enumeration value="eq_has_hypernym"/>
       <xs:enumeration value="eq_has_hyponym"/>
       <xs:enumeration value="eq_involved"/>
       <xs:enumeration value="eq_role"/>
       <xs:enumeration value="eq_is_caused_by"/>
       <xs:enumeration value="eq_causes"/>
       <xs:enumeration value="eq_has_holonym"/>
       <xs:enumeration value="eq_has_meronym"/>
       <xs:enumeration value="eq_has_subevent"/>
       <xs:enumeration value="eq_is_subevent_of"/>
       <xs:enumeration value="eq_be_in_state"/>
       <xs:enumeration value="eq_is_state_of"/>
       <xs:enumeration value="eq_co_role"/>
       <xs:enumeration value="eq_generalization"/>
       <xs:enumeration value="eq_metonym"/>
       <xs:enumeration value="eq_diathesis"/>
       <xs:enumeration value="eq_in_manner"/>
       <xs:enumeration value="eq_has_instance"/>
       <xs:enumeration value="eq_belongs_to_class"/>
       <xs:enumeration value="eq_antonym"/>
   </xs:restriction>
</xs:simpleType>
<xs:simpleType name="languageType">
   <xs:annotation>
       <xs:documentation>List of all languages code from ISO 639-3: three lower case letters: eng, ita,eus, zho, jpn,spa, nld</xs:documentation>
   </xs:annotation>
   <xs:restriction base="xs:string">
       <xs:enumeration value="eus"/>
       <xs:enumeration value="eng"/>
       <xs:enumeration value="ita"/>
       <xs:enumeration value="jpn"/>
       <xs:enumeration value="nld"/>
       <xs:enumeration value="spa"/>
       <xs:enumeration value="zho"/>
   </xs:restriction>
</xs:simpleType>
<xs:simpleType name="partOfSpeechType">
   <xs:annotation>
       <xs:documentation>List of Pos type: n, v, a (adjective), r (adverb), s (satellite adjective)</xs:documentation>
   </xs:annotation>
   <xs:restriction base="xs:string">
       <xs:enumeration value="n"/>
       <xs:enumeration value="v"/>
       <xs:enumeration value="a"/>
       <xs:enumeration value="r"/>
       <xs:enumeration value="s"/>
   </xs:restriction>
</xs:simpleType>
<xs:simpleType name="versionType">
      <xs:annotation>
          <xs:documentation>List of wordnet versions: 15, 16, 17, 20, 21, 30, ...</xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedInt">
          <xs:enumeration value="15"/>
          <xs:enumeration value="16"/>
          <xs:enumeration value="17"/>
          <xs:enumeration value="18"/>
          <xs:enumeration value="19"/>
          <xs:enumeration value="20"/>
          <xs:enumeration value="21"/>
          <xs:enumeration value="30"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="synsetIdType">
      <xs:annotation>
          <xs:documentation>Format of a synset ID: language code-version-id-pos tag</xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
          <xs:pattern value="[a-z]{3}-[0-9]{2}-[0-9]+-[nvars]"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="baseConceptType">
      <xs:annotation>
          <xs:documentation>List of base concept sets: 1,2,3</xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedInt">
	  <xs:enumeration value="0"/>
          <xs:enumeration value="1"/>
          <xs:enumeration value="2"/>
          <xs:enumeration value="3"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="ontologyRelationType">
      <xs:annotation>
          <xs:documentation>List of SUMO relation types: at, plus, equal</xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:NMTOKEN">
          <xs:enumeration value="equal"/>
          <xs:enumeration value="plus"/>
          <xs:enumeration value="at"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="externalSystemType">
      <xs:annotation>
          <xs:documentation>List of External Resource: Domain, SuperSense, SUMO, TCO,wordnet3.0</xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:NMTOKEN">
          <xs:enumeration value="SUMO"/>
          <xs:enumeration value="Domain"/>
          <xs:enumeration value="TCO"/>
          <xs:enumeration value="SuperSense"/>
          <xs:enumeration value="Wordnet3.0"/>
          <xs:enumeration value="Wordnet2.1"/>
          <xs:enumeration value="Wordnet2.0"/>
          <xs:enumeration value="Wordnet1.7"/>
          <xs:enumeration value="Wordnet1.6"/>
          <xs:enumeration value="Wordnet1.5"/>
       </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="ontologyType">
       <xs:annotation>
          <xs:documentation>List of Ontologies: SUMO, DOLCE</xs:documentation>
       </xs:annotation>
       <xs:restriction base="xs:NMTOKEN">
          <xs:enumeration value="SUMO"/>
          <xs:enumeration value="DOLCE"/>
       </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="rateType">
       <xs:restriction base="xs:float">
          <xs:maxInclusive value="1"/>
          <xs:minInclusive value="0"/>
       </xs:restriction>
   </xs:simpleType>
</xs:schema>

