<?xml version="1.0" encoding="utf-8"?>
<pml_schema
  xmlns="http://ufal.mff.cuni.cz/pdt/pml/schema/"
  version="1.1">
  <revision>2.14</revision>
  <description>Schema for Latvian Treebank syntax layer: dependency based
	hybrid annotation style (default).</description>
  <reference name="mdata" readas="pml"/>

  <import schema="lvmschema.xml" type="m-node.type"/>
  <import schema="lvmschema.xml" type="bool.type"/>

  <derive type="m-node.type">
    <structure>
      <member name="id" as_attribute="1" role="#ID" required="1">
        <cdata format="PMLREF"/>
      </member>
    </structure>
  </derive>

  <root name="lvadata" type="a-adata.type"/>

  <type name="a-adata.type">
    <structure>
      <member name="meta" required="0" type="a-meta.type"/>
      <member name="trees" role="#TREES" required="1">
        <list type="a-root.type" ordered="1"/>
      </member>
    </structure>
  </type>
  
  <type name="a-meta.type">
    <structure>
      <member name="annotation_info">
        <structure name="a-annotation-info">
          <member name="version_info"><cdata format="any"/></member>
          <member name="desc"><cdata format="any"/></member>
        </structure>
      </member>
    </structure>
  </type>

  <type name="a-root.type"> <!-- Root.-->
    <structure role="#NODE" name="a-node">
      <member name="id" role="#ID" as_attribute="1" required="1"><cdata format="ID"/></member>
      <member name="s.rf"><cdata format="PMLREF"/></member>
      <member name="ord" role="#ORDER"><cdata format="nonNegativeInteger"/></member>
	  <member name="comment"><cdata format="string"/></member> <!-- Field where different annotators can leave comments to each other about this tree.-->
      <member name="children" role="#CHILDNODES">
        <sequence content_pattern="node*, pmcinfo, node*">
		  <element name="node" type="a-node.type"/>
		  <element name="pmcinfo" type="a-pmcinfo.type"/>
        </sequence>
      </member>	  
    </structure>
  </type>
  
  
  <type name="a-node.type"> <!-- Arbitrary node. It can be head of dependency and/or expressed with multi-word unit. -->
    <structure role="#NODE" name="a-node">
      <member name="id" role="#ID" as_attribute="1" required="1"><cdata format="ID"/></member>
      <member name="m.rf" role="#KNIT" type="m-node.type"/>
      <member name="reduction"><cdata format="any"/></member>
	  <member name="role" type="a-role.type" required="1"/>
      <member name="ord" role="#ORDER"><cdata format="nonNegativeInteger"/></member>
      <member name="children" role="#CHILDNODES">
        <sequence content_pattern="node*,(xinfo | pmcinfo |coordinfo)?, node*">
		  <element name="node" type="a-node.type"/>
		  <element name="xinfo" type="a-xinfo.type"/>
		  <element name="pmcinfo" type="a-pmcinfo.type"/>
 		  <element name="coordinfo" type="a-coordinfo.type"/>
       </sequence>
      </member>
    </structure>
  </type>

  <type name="a-xinfo.type"> <!-- Information about multi-word unit - x-word. -->
    <structure role="#NODE" name="a-xinfo">
	  <member name="xtype" type="a-xtype.type" required="1"/>
      <member name="tag"  required="1"><cdata format="any"/></member>
      <member name="ord" role="#ORDER"><cdata format="nonNegativeInteger"/></member>
      <member name="children" role="#CHILDNODES">
        <sequence content_pattern="node+">
		  <element name="node" type="a-node.type"/>
        </sequence>
      </member>
    </structure>
  </type>
  
  <type name="a-pmcinfo.type"> <!-- Information about multi-word/token unit - punctuation mark construct. -->
    <structure role="#NODE" name="a-pminfo">
	  <member name="pmctype" type="a-pmctype.type" required="1"/>
	  <member name="ord" role="#ORDER"><cdata format="nonNegativeInteger"/></member>
      <member name="children" role="#CHILDNODES">
        <sequence content_pattern="node+">
		  <element name="node" type="a-node.type"/>
        </sequence>
      </member>
    </structure>
  </type>

  <type name="a-coordinfo.type"> <!-- Information about multi-word/token unit - coordination. -->
    <structure role="#NODE" name="a-coordinfo">
	  <member name="coordtype" type="a-coordtype.type" required="1"/>
      <member name="tag"><cdata format="any"/></member>
	  <member name="ord" role="#ORDER"><cdata format="nonNegativeInteger"/></member>
      <member name="children" role="#CHILDNODES">
        <sequence content_pattern="node+">
		  <element name="node" type="a-node.type"/>
        </sequence>
      </member>
    </structure>
  </type>
  
  <type name="a-pmctype.type">
    <choice>
      <value>sent</value>		<!-- sentence -->
	  <value>utter</value>		<!-- utterance -->
	  <value>mainCl</value>		<!-- main clause -->
      <value>subrCl</value>		<!-- subordinate clause -->
	  <value>interj</value>		<!-- punctuation mark construct for interjections** -->
	  <value>spcPmc</value>		<!-- punctuation mark construct for pmc** -->
	  <!--<value>numPmc</value>-->		<!-- punctuation mark construct for numbers** -->
	  <value>insPmc</value>		<!-- punctuation mark construct for insertion** --> 
	  <value>particle</value>	<!-- punctuation mark construct for particle** -->
	  <!--<value>tied</value>-->		<!-- tied parenthesis and tied insertion** -->
	  <!--<value>dirSp</value>-->		<!-- direct speech -->
	  <!--<value>report</value>-->		<!-- reporting verb -->
	  <value>dirSpPmc</value>	<!-- punctuation mark construct for direct speech** -->
	  <value>address</value>	<!-- address -->
	  <value>quot</value>		<!-- quotation marks -->
	  <!--<value>abbr</value>-->		<!-- abbreviation -->
	  <value>N/A</value>	<!-- not available -->
    </choice>
  </type>
  
  <type name="a-xtype.type">
    <choice>

      <value>xPred</value>
      <value>xNum</value>
      <value>xApp</value>
      <value>xSimile</value>
      <value>xPrep</value>
	  <value>xParticle</value>
	  <value>xFunctor</value>
      <value>namedEnt</value>	<!-- named entity -->
	  <value>subrAnal</value>	<!-- analogue of subordinate word-group* -->
	  <value>coordAnal</value>	<!-- analogue of coordinative word-group* -->
	  <value>unstruct</value>	<!-- multi-word expression** -->
	  <value>phrasElem</value>	<!-- phraseological elements** -->
	  <value>N/A</value>
    </choice>
  </type>
  
  <type name="a-coordtype.type">
    <choice>
	  <value>crdParts</value>		<!-- coordinated parts of senence -->	
	  <value>crdClauses</value>		<!-- coordinated clauses -->  
	  <!--<value>crdGeneral</value>-->		<!-- coordination with generalizing word -->
	  <value>N/A</value>		
	</choice>
  </type>

  <type name="a-role.type">
    <choice>
      <value>subj</value>	<!-- subject -->
      <value>attr</value>	<!-- attribute -->
      <value>obj</value>	<!-- object -->
      <value>adv</value>	<!-- adverbial modifier -->
      <value>spc</value>	<!-- semi-predicative component -->
      <value>sit</value>	<!-- situant* -->
	  <value>det</value>	<!-- determinant -->
	  <value>no</value>		<!-- particles, addresses, etc** -->
	  <value>repeat</value>	<!-- ungrammatical repeatition** -->

	  <value>ins</value>		<!-- insertion, parenthesis -->
	  <value>dirSp</value>		<!-- direct speech -->
	  
      <value>subjCl</value>		<!-- subject clause -->
      <value>predCl</value>		<!-- predicative clause -->
      <value>attrCl</value>		<!-- attribute clause -->
      <value>objCl</value>		<!-- object clause -->
      <value>appCl</value>		<!-- apposition clause* -->
      <value>placeCl</value>	<!-- subordinate clause of place -->
      <value>timeCl</value>		<!-- subordinate clause of time -->
      <value>manCl</value>		<!-- subordinate clause of manner -->
      <value>degCl</value>		<!-- subordinate clause of degree -->
      <value>causCl</value>		<!-- causal clause -->
      <value>purpCl</value>		<!-- subordinate clause of purpose -->
      <value>condCl</value>		<!-- conditional clause -->
      <value>cnsecCl</value>	<!-- consecutive clause -->
      <value>compCl</value>		<!-- comparative clause -->
      <value>cncesCl</value>	<!-- concessive clause -->
      <value>motivCl</value>	<!-- causal clause,	subordinate clause of motivation** -->
      <value>quasiCl</value>	<!-- quasi-clause -->
	  
      <value>pred</value>		<!-- predicate -->
	  <value>prep</value>		<!-- preposition -->
	  <value>conj</value>		<!-- conjunction (subordinating, coordinating) -->
	  <value>crdPart</value>	<!-- coordinated part (one of)** -->
	  <value>mod</value>		<!-- modal word -->
	  <value>auxVerb</value>	<!-- auxiliary verb -->
	  <value>basElem</value>	<!-- basic element** -->
	  <value>punct</value>		<!-- punctuation mark -->
	  <!--<value>gen</value>-->		<!-- generalizing word* -->
	  <!--<value>genList</value>-->	<!-- list of specific items, used together with generalizing word** -->
	  
	  <value>N/A</value>
	</choice>
  </type>
  
</pml_schema>