<!--***** ************************************************************* ******-->
<!--*****     		  START OF OLIF TRANSFERS 			******-->
<!--***** ************************************************************* ******-->

<!--***** ************************************************************* ******-->
<!--*****       ADMINISTRATIVE INFORMATION				******-->
<!--***** ************************************************************* ******-->

<!--***** Version:
        *  $DateTime: 2002/02/07 10:00:20 $ $Revision: #13 $
        * Contents
        *  Transfers for the Open Lexicon Interchange Format (OLIF)
        * Public Identifier:
        *  -//OLIF Consortium:2002//ELEMENTS OLIF 2.0: Transfers//EN
        * System Identifier:
        *  oTrans.mod
	* Dependencies (this DTD depends on the presence of):
	*  oTransV.mod
        * Contact:
        *  www.olif.net
        * Status:
        *  Copyright (C) 2002, OLIF Consortium
        * Comments:
******-->

<!--***** ************************************************************* ******-->
<!--*****	        SUPPLEMENTARY DECLARATIONS			******-->
<!--***** ************************************************************* ******-->

<!ENTITY % transferValues PUBLIC
 "-//OLIF Consortium:2002//ELEMENTS OLIF 2.0: Transfer Values//EN"
 "oTransV.mod" 									>
%transferValues;

<!--***** ************************************************************* ******-->
<!--*****	        	DECLARATIONS				******-->
<!--***** ************************************************************* ******-->

<!--***** ************************************************************* ******-->
<!--*****	  	     top-level for OLIF transfers		******-->
<!--***** ************************************************************* ******-->

<!ELEMENT transfer
        (keyDC?,

	 (
		trRestrictStmt |
		structChangeStmt |
		equival |

 		generalDC
	 )*
	)									>
<!ATTLIST transfer
        %trTarget.att;								
	%trDefault.att;								>

<!--
<i>
	<t>e</t>
	<n>transfer</n>
	<d>The transfer element groups data categories which define bilingual
	 transfer relations between the given entry and other entries in the
	 lexicon in different languages (cf. to crossRefer elements which
	 point to entries in the same language).</d>
</i>
-->

<!--***** ************************************************************* ******-->
<!--*****	  	     transfer restrictions			******-->
<!--***** ************************************************************* ******-->

<!ELEMENT trRestrictStmt
	(
		trRestrict,
		(logOp, trRestrict)*
	)									>

<!--
<i>
	<t>e</t>
	<n>trRestrictStmt</n>
	<d>The trRestrictStmt element groups multiple related transfer
	 restrictions (eg. alternatives connected via the logical
	 operator OR).</d>
</i>
-->

<!ELEMENT trRestrict
	(
		contextStmt,
		testStmt
	)									>

<!--
<i>
	<t>e</t>
	<n>trRestrict</n>
	<d>The trRestrict element groups data categories for a single transfer
	 restriction.</d>
</i>
-->


<!--***** ************************************************************* ******-->
<!--*****	  	     structural changes				******-->
<!--***** ************************************************************* ******-->

<!ELEMENT structChangeStmt
	(
		structChange,
		(logOpAnd, structChange)*						
	)									>

<!--
<i>
	<t>e</t>
	<n>structChangeStmt</n>
	<d>The structChangeStmt element groups multiple
	related structural changes (which can be connected via the logical
	operator AND).</d>
</i>
-->

<!ELEMENT structChange
	(
		contextStmt,
		changeType,
		changePOS?,
		changeValue?
	)									>

<!--
<i>
	<t>e</t>
	<n>structChange</n>
	<d>The structChange element groups data categories related to a
	 change in the target language vis-a-vis the source structure based
	 on the transfer restriction having been satisfied. Structural
	 changes are definable for the following parts-of-speech: noun, verb,
	 adjective, preposition.</d>
</i>
-->

<!ELEMENT changeType %changeType.olif.fix;					>

<!--
<i>
	<t>e</t>
	<n>changeType</n>
	<d>The changeType element holds data related to the type of change.

	 Example values:  change-role, add-in-target</d>
</i>
-->

<!ELEMENT changePOS %changePOS.olif.fix.user.ext;				>

<!--
<i>
	<t>e</t>
	<n>changePOS</n>
	<d>The changePOS element holds data about the part of speech of an
	 element being added or deleted

	 Example values:  noun, adj</d>
</i>
-->

<!ELEMENT changeValue %changeValue.olif.fix;					>

<!--
<i>
	<t>e</t>
	<n>changeValue</n>
	<d>The changeValue element holds data about the string or
	 data category being changed.
	 
	 Example values:  active, subj-dobj</d>
</i>
-->

<!--***** ************************************************************* ******-->
<!--*****	  	     equivalences				******-->
<!--***** ************************************************************* ******-->

<!ELEMENT equival %equival.olif.fix;						>

<!--
<i>
	<t>e</t>
	<n>equival</n>
	<d>The equival element holds data about the degree of transfer
	 relationship between words/phrases in two different languages.

	 Example values:  full, partial</d>
</i>
-->

<!--***** ************************************************************* ******-->
<!--*****	  	     contexts					******-->
<!--***** ************************************************************* ******-->

<!ELEMENT contextStmt
	(
		context,
		(logOp, context)*
	)									>

<!--
<i>
	<t>e</t>
	<n>contextStmt</n>
	<d>The contextStmt element groups multiple related contexts (contexts can be
	connected by means of logical operators).</d>
</i>
-->

<!ELEMENT context	%context.olif.fix; 					>

<!--
<i>
	<t>e</t>
	<n>context</n>
	<d>The context element holds data about one of the following:
	 a) the context for a given translation of a source word/phrase into
		 a target word/phrase
	 b) the context for a structural change in the target language

	 Example values:  pp, genobj</d>
</i>
-->

<!--***** ************************************************************* ******-->
<!--*****		  	     tests				******-->
<!--***** ************************************************************* ******-->

<!ELEMENT testStmt
	(
		test,
		(logOp, test)*
	)									>

<!--
<i>
	<t>e</t>
	<n>testStmt</n>
	<d>The testStmt element groups multiple related tests (connected
	 by means of logical operators).</d>
</i>
-->

<!ELEMENT test
	(
		testType,
		testDC?,
		testValue
	)									>

<!--
<i>
	<t>e</t>
	<n>test</n>
	<d>The test element holds data about a single test.</d>
</i>
-->

<!ELEMENT testType %testType.olif.fix;						>

<!--
<i>
	<t>e</t>
	<n>testType</n>
	<d>The testType element holds data about the type of test.

	 Example values:  string, datacat</d>
</i>
-->

<!ELEMENT testDC %testDC.olif.fix;						>

<!--
<i>
	<t>e</t>
	<n>testDC</n>
	<d>The testDC element holds data about a data category 
	 to which a test pertains.

 Example values:  semType, tense</d>
</i>
-->

<!ELEMENT testValue %testValue.pcd.mix;						>

<!--
<i>
	<t>e</t>
	<n>testValue</n>
	<d>The testValue element holds data about the string or
	data category being tested in the context(s) (eg. 'sg' if the
	test is on the data category for grammatical number).

 Example values:  anim-hum, sg</d>
</i>
-->

<!--***** ************************************************************* ******-->
<!--*****		  	     misc				******-->
<!--***** ************************************************************* ******-->

<!ELEMENT logOp		%logOp.olif.fix;					>

<!--
<i>
	<t>e</t>
	<n>logOp</n>
	<d>The logOp element holds data about a logical operator.

	Possible values:
	AND - for trRestrictStmt and structChangeStmt
	OR  - for trRestrictStmt
	NOT - for trRestrictStmt</d>
</i>
-->

<!ELEMENT logOpAnd		%logOpAnd.olif.fix;				>

<!--
<i>
	<t>e</t>
	<n>logOpAnd</n>
	<d>The logOpAnd element holds data about the logical operator AND.</d>
</i>
-->

<!--***** ************************************************************* ******-->
<!--*****     		  END OF OLIF TRANSFERS				******-->
<!--***** ************************************************************* ******-->