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

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

<!--***** Version:
        *  $DateTime: 2002/02/06 10:09:09 $ $Revision: #11 $
        * Contents
        *  Body for the Open Lexicon Interchange Format (OLIF)
        * Public Identifier:
        *  -//OLIF Consortium:2002//ELEMENTS OLIF 2.0: Body//EN
        * System Identifier:
        *  oBody.mod
	* Dependencies (this DTD depends on the presence of):
	*  oKGDC.mod
	*  oTrans.mod
	*  oBodyV.mod
        * Contact:
        *  www.olif.net
        * Status:
        *  Copyright (C) 2002, OLIF Consortium
        * Comments:
******-->

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

<!ENTITY % keyAndGeneralDCs PUBLIC
 "-//OLIF Consortium:2002//ELEMENTS OLIF 2.0: Key and General DC//EN"
 "oKGDC.mod"									>
%keyAndGeneralDCs;

<!ENTITY % transfers PUBLIC
 "-//OLIF Consortium:2002//ELEMENTS OLIF 2.0: Transfers//EN"
 "oTrans.mod"									>
%transfers;

<!ENTITY % bodyValues PUBLIC
 "-//OLIF Consortium:2002//ELEMENTS OLIF 2.0: Body Values//EN"
 "oBodyV.mod" 									>
%bodyValues;

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

<!ELEMENT	body	  (entry+)						>

<!--
<i>
	<t>e</t>
	<n>body</n>
	<d>The body element groups a list of entries which contain
	 linguistic/lexical/terminological data categories for entry
	 strings/designators.</d>
</i>
-->

<!ELEMENT entry
        (
		mono,
		crossRefer*,
		transfer*
	)									>
<!ATTLIST entry
        %conceptUserId.att;
        %conceptUniversalId.att;						>

<!--
<i>
	<t>e</t>
	<n>entry</n>
	<d>The entry element groups all of the
	 linguistic/lexical/terminological data categories related to a single
	 entry string/designator.</d>
</i>
-->

<!--***** cc: element 'entry'
	* cc:
	* cc: The 'Proposal' says that 'links' are used to represent
	* cc: cross-references and transfers. This DTD models these
	* cc: links as elements (rather than pairs of attributes with
	* cc: ID/IDREF default).
*****-->

<!--***** cc: elements 'crossRefer', 'transfer'
	* cc:
	* cc: The 'Proposal' says that 'crossRefer' and 'transfer' elements
	* cc: should create relationships to other elements by using the values
	* cc: of the five key data categories of those referenced elements.
	* cc: Since this would amount to data redundancy, this DTD foresees
	* cc: references by means of identifiers as well.
*****-->

<!ELEMENT mono
	(
		keyDC,
		monoDC?,
		generalDC?
	)									>
<!ATTLIST mono
        %monoUserId.att;
        %monoUniversalId.att;							>

<!--
<i>
	<t>e</t>
	<n>mono</n>
	<d>The mono element groups the monolingual data within an entry.</d>
</i>
-->

<!ELEMENT crossRefer
	(keyDC?,

	 (
		crLinkType |
	  	orthVariantType |

		generalDC
	 )*
	)									>
<!ATTLIST crossRefer
        %crTarget.att;								>

<!--
<i>
	<t>e</t>
	<n>crossRefer</n>
	<d>The crossRefer element groups the data categories for
	 cross-references. Cross-references define relations
	 between the given entry (link source) and other entries in the lexicon
	 (link target) in the same language.</d>
</i>
-->

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

<!--
<i>
	<t>e</t>
	<n>crLinkType</n>
	<d>The crLinkType element classifies the relation between
	the entry from which the link originates and the entry to which the link
	points. The possible relations include ISO relations (most of which
	formally apply to concepts rather than the terms themselves; they have
	been adapted here for the purposes of OLIF) and the analysis contained
	in EuroWordNet (July, 2000).
	
	Example values: synonym, antonym</d>
</i>
-->

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

<!--
<i>
	<t>e</t>
	<n>orthVariantType</n>
	<d>The orthVariantType element classifies the type of
	 orthographic variant that the target of a cross-reference represents
	 (currently only used for German; used for example to list old/new
	 spelling) represents.

	 Example values: german-4</d>
</i>
-->

<!--***** ************************************************************* ******-->
<!--*****       	data categories (optional) for mono group	******-->
<!--***** ************************************************************* ******-->

<!ELEMENT monoDC
        (
		monoAdmin?,
		monoMorph?,
		monoSyn?,
		monoSem?
	)									>

<!--
<i>
	<t>e</t>
	<n>monoDC</n>
	<d>The monoDC element groups optional data categories for administrative,
	 morphological, syntactic and semantic data.</d>
</i>
-->

<!--***** ************************************************************* ******-->
<!--*****   administrative data categories (optional) for mono group	******-->
<!--***** ************************************************************* ******-->

<!ELEMENT monoAdmin
        (
		userDesignat |
		syllabification |
		geogUsage |
		entryType |
		entryFormation |
		phraseType |
		entryStatus |
		entrySource |
		originator |
		adminStatus |
		company |
		abbrev |
		orthVariant |
		depSynonym |
		timeRestrict |
		product |
		project |
		locInfo |
		confidence
	)+									>

<!--
<i>
	<t>e</t>
	<n>monoAdmin</n>
	<d>The monoAdmin element groups the administrative data within a
	monolingual entry.</d>
</i>
-->

<!ELEMENT userDesignat	%userDesignat.pcd;					>

<!--
<i>
	<t>e</t>
	<n>userDesignat</n>
	<d>The userDesignat element holds a user designator of an entry string.
	 The userDesignat element can be used if a need exists to represent the
	 entry string not just in canonical form.</d>
</i>
-->

<!ELEMENT syllabification %syllabification.pcd;					>

<!--
<i>
	<t>e</t>
	<n>syllabification</n>
	<d>The syllabification element holds data about the syllable boundaries
	 within	the entry string.

	 Example use: do-cu-men-ta-ry, li-be-ra-li-ty</d>
</i>
-->

<!--***** cc: element 'syllabification'
	* cc:
	* cc: The 'Proposal' says that the hyphen is the indicator for syllable
	* cc: boundaries. This is not optimal since the use of the hyphen as a
	* cc: syllabification mark cannot be destinguished from its ordinary
	* cc: use. Thus, one should consider using a different character a
	* cc: marker for syllabification boundaries.
*****-->

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

<!--
<i>
	<t>e</t>
	<n>geogUsage</n>
	<d>The geogUsage element holds data about the geographical usage, or
	 dialect, of the entry string.

	 Example values: CA, GB</d>
</i>
-->

<!--***** cc: element 'geogUsage'
	* cc:
	* cc: In principle, this data category could be dropped if entries
	* cc: would be bound to locale information (rather than language
	* cc: information). Locale systems can be found for example in
	* cc: XPG4, and POSIX 1.c). If a locale system would be used,
	* cc: the data category 'language' might hold information about
	* cc: language, territory/country, and codeset. The language and
	* cc: territory/country  would be follow ISO 3166 and ISO 639 (the
	* cc: two-letter abbreviations for the countries and the languages
	* cc: of the world, respectively). The codeset could mention e.g. 
	* cc: a certain ISO 8859 character set. Example data in the 'language
	* cc: category thus could be 'fr_CA.ISO8859-1'.
*****-->

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

<!--
<i>
	<t>e</t>
	<n>entryType</n>
	<d>The entryType element classifies the entry string as being a product
	 name, trademark, or orthographic variant (note that orthographic
	 variants may also be encoded as cross-references).

	 Example values: trademark, orth-var</d>
</i>
-->

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

<!--
<i>
	<t>e</t>
	<n>entryFormation</n>
	<d>The entryFormation element classifies the shape/structure of the entry
	 string.

	 Example values: abb, acr</d>
</i>
-->

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

<!--
<i>
	<t>e</t>
	<n>phraseType</n>
	<d>The phraseType element classifies the phrasal type of an entity.

	 Example values: mw</d>
</i>
-->

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

<!--
<i>
	<t>e</t>
	<n>entryStatus</n>
	<d>The entryStatus element classifies the entry status of an entry within
	 a given lexicon/termbase (note that there exists a separate data
	 category for the administrative status).

	 Example values: word</d>
</i>
-->

<!ELEMENT entrySource	%entrySource.pcd;					>

<!--
<i>
	<t>e</t>
	<n>entrySource</n>
	<d>The entrySource element holds data about the entry source, or the
	 lexicon/termbase that the entry originated from.

	 Example use: TermDB for software package X</d>
</i>
-->

<!ELEMENT originator	%originator.pcd;					>

<!--
<i>
	<t>e</t>
	<n>originator</n>
	<d>The originator element holds data about the individual who originated
	 the entry.

	 Example use: Christopher Columbus</d>
</i>
-->

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

<!--
<i>
	<t>e</t>
	<n>adminStatus</n>
	<d>The adminStatus element classifies the administrative status of an
	 entry relative to a given work environment.

	 Example values: ver</d>
</i>
-->

<!ELEMENT company	%company.pcd;						>

<!--
<i>
	<t>e</t>
	<n>company</n>
	<d>The company element holds information about the company/organisation
	 for which the entry is valid.

	 Example use: LongDistanceRunners Ltd.</d>
</i>
-->

<!ELEMENT abbrev	%abbrev.pcd;						>

<!--
<i>
	<t>e</t>
	<n>abbrev</n>
	<d>The abbrev element holds data about an abbreviated form of the entry
	 string (note that abbreviations may also be encoded as cross-references).

	 Example use: ERP</d>
</i>
-->

<!ELEMENT orthVariant	%orthVariant.pcd;					>

<!--
<i>
	<t>e</t>
	<n>orthVariant</n>
	<d>The orthVariant element holds data about an orthographic variant of the
 	 entry string (note that orthographic variants may also be encoded as
	 cross-references).

	 Example use: auf Grund</d>
</i>
-->

<!ELEMENT depSynonym	%depSynonym.pcd;					>

<!--
<i>
	<t>e</t>
	<n>depSynonym</n>
	<d>The depSynonym element holds data about a rejected or deprecated
	 synonym of the entry string.

	 Example use: IS-H</d>
</i>
-->

<!ELEMENT timeRestrict	%timeRestrict.pcd;					>

<!--
<i>
	<t>e</t>
	<n>timeRestrict</n>
	<d>The timeRestrict element holds data about a time restriction, or
	 the period of time during or since which usage of the entry is
	 valid.

	 Example use: 20011115T140324Z/20011215T140324Z</d>
</i>
-->

<!ELEMENT product	%product.pcd;						>

<!--
<i>
	<t>e</t>
	<n>product</n>
	<d>The product element holds data about a product for which an entry
	 is valid.

	 Example use: Spreadsheet3005</d>
</i>
-->

<!ELEMENT project	%project.pcd;						>

<!--
<i>
	<t>e</t>
	<n>project</n>
	<d>The project element holds data about a project for which an entry is
	 valid.

	 Example use: localization of product X from English into German</d>
</i>
-->

<!ELEMENT confidence	%confidence.pcd;					>

<!--
<i>
	<t>e</t>
	<n>confidence</n>
	<d>The confidence element holds data from terminology extraction.
	 The value of the confidence element indicates, how confident the term
	 extraction program is, that the term really is a term.

	 Example values: 0.99, high</d>
</i>
-->

<!--***** ************************************************************* ******-->
<!--*****   morphological data categories (optional) for mono group	******-->
<!--***** ************************************************************* ******-->

<!ELEMENT monoMorph
        (
		morphStruct |
		inflection |
		head |
		gender |
		case |
		number |
		person |
		tense |
		mood |
		aspect |
		degree |
		auxType
	)+									>

<!--
<i>
	<t>e</t>
	<n>monoMorph</n>
	<d>The monoMorph element groups the morphological information within a
 	 monolingual entry.</d>
</i>
-->

<!ELEMENT morphStruct %morphStruct.pcd;						>

<!--
<i>
	<t>e</t>
	<n>morphStruct</n>
	<d>The morphStruct element holds data about the morphological structure
	 of the entry string (note the possibilities provided for multiwords
	 by means of the synStruct element).

	 Example use: #[[gebrauch+s]:[gegen+stand]]#</d>
</i>
-->

<!ELEMENT inflection %inflection.olif.rec.user.ext;				>

<!--
<i>
	<t>e</t>
	<n>inflection</n>
	<d>The inflection element holds data about the inflection pattern(s)
	 of the entry string (or its head in case of a multiword/phrasal
	 entry).

	 Example use: book, 16</d>
</i>
-->

<!ELEMENT head %head.pcd;							>

<!--
<i>
	<t>e</t>
	<n>head</n>
	<d>The head element holds data about the head word in a
	 multiword/phrasal entry string.

	 Example use: infotype (planned compensation infotype)</d>
</i>
-->

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

<!--
<i>
	<t>e</t>
	<n>gender</n>
	<d>The gender element classifies grammatical gender.

	 Example values: m, f</d>
</i>
-->

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

<!--
<i>
	<t>e</t>
	<n>case</n>
	<d>The case element classifies grammatical case.

	 Example values: d, a, loc</d>
</i>
-->

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

<!--
<i>
	<t>e</t>
	<n>number</n>
	<d>The number element classifies grammatical number.

	 Example values: sg, du</d>
</i>
-->

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

<!--
<i>
	<t>e</t>
	<n>person</n>
	<d>The person element classifies grammatical person.

	 Example values: first, sec</d>
</i>
-->

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

<!--
<i>
	<t>e</t>
	<n>tense</n>
	<d>The tense element classifies verb tense.

	 Example values: pres, fut</d>
</i>
-->

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

<!--
<i>
	<t>e</t>
	<n>mood</n>
	<d>The mood element classifies verb mood or mode.
	
	 Example values: imper, cond</d>
</i>
-->

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

<!--
<i>
	<t>e</t>
	<n>aspect</n>
	<d>The aspect element classifies verbal aspect.

	 Example values: perf, iter</d>
</i>
-->

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

<!--
<i>
	<t>e</t>
	<n>degree</n>
	<d>The degree element classifies adjectival degree type.

	 Example values: comp, sup</d>
</i>
-->

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

<!--
<i>
	<t>e</t>
	<n>auxType</n>
	<d>The auxType element classifies the auxiliary type for an
	 auxiliary verb.

	 Example values: have, faire</d>
</i>
-->

<!--***** ************************************************************* ******-->
<!--*****  syntactic data categories (optional) for mono group		******-->
<!--***** ************************************************************* ******-->

<!ELEMENT monoSyn
	(
		synType |
		synPosition |
		transType |
		synStruct |
		synFrame |
		prep |
		verbPart
	)+									>

<!--
<i>
	<t>e</t>
	<n>monoSyn</n>
	<d>The monoSyn element groups the syntactic information within a
	 monolingual entry.</d>
</i>
-->

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

<!--
<i>
	<t>e</t>
	<n>synType</n>
	<d>The synType element classifies the general syntactic behavior of
	 the entry string.

	 Example values: cnt, refl, attrib</d>
</i>
-->

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

<!--
<i>
	<t>e</t>
	<n>synPosition</n>
	<d>The synPosition element classifies the unmarked positioning of the
	 entry string syntactically.

	 Example values: prenoun, cl-init</d>
</i>
-->

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

<!--
<i>
	<t>e</t>
	<n>transType</n>
	<d>The transType element classifies the transitivity type of a verb.

	 Example values: trans, ditrans</d>
</i>
-->

<!ELEMENT synStruct %synStruct.pcd;						>

<!--
<i>
	<t>e</t>
	<n>synStruct</n>
	<d>The synStruct element holds data about the constituent structure of a
	 multiword entry string (note the possibilities provided for single
	 words by means of the morphStruct element).

	 Example use: [[adj][noun]] (General Ledger)</d>
</i>
-->

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

<!--
<i>
	<t>e</t>
	<n>synFrame</n>
	<d>The synFrame element classifies the syntactic frame for the
	 entry string (subcategorisation).

	 Example values: subj-imps-opt, dobj-opt</d>
</i>
-->

<!ELEMENT prep %prep.pcd;							>

<!--
<i>
	<t>e</t>
	<n>prep</n>
	<d>The prep element holds data about prepositions that further specify
	 syntactic frame elements.

	 Example use: into, about, from, mit, wegen, ausser</d>
</i>
-->

<!ELEMENT verbPart %verbPart.pcd;						>

<!--
<i>
	<t>e</t>
	<n>verbPart</n>
	<d>The verbPart element holds data about verb particles that further
	 specify syntactic frame elements.

	 Example use: down, up, over</d>
</i>
-->

<!--***** ************************************************************* ******-->
<!--*****     semantic data categories (optional) for mono group	******-->
<!--***** ************************************************************* ******-->

<!ELEMENT monoSem
	(
		definition |
		natGender |
		semType
	)+									>

<!--
<i>
	<t>e</t>
	<n>monoSem</n>
	<d>The monoSem element groups the semantic information within
	 a monolingual entry.</d>
</i>
-->

<!ELEMENT definition %definition.pcd;						>

<!--
<i>
	<t>e</t>
	<n>definition</n>
	<d>The definition element holds a prose definition of the entry
	 string.

	 Example use: Collection of interfaces usable by a programmer</d>
</i>
-->

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

<!--
<i>
	<t>e</t>
	<n>natGender</n>
	<d>The natGender element classifies the biological gender associated
	 with the entry.

	 Example values: m, f, un</d>
</i>
-->

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

<!--
<i>
	<t>e</t>
	<n>semType</n>
	<d>The semType element classifies an entry string with
	 respect to a semantic type classification structure.

	 Example values: anim-hum-pn, cnc-class</d>
</i>
-->

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