
<!--

	  TEI P5 DTD module nets. 
	  Generated 2006-01-30T20:24:13Z
Copyright 2005 TEI Consortium.
This is free software; you can redistribute it and/or
	    modify it under the terms of the GNU General Public
	    License as published by the Free Software Foundation;
	    either version 2 of the License, or (at your option) any
	    later version.
This material is distributed in the hope that it will be
	    useful, but WITHOUT ANY WARRANTY; without even the implied
	    warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
	    PURPOSE. See the GNU General Public License for more
	    details.
You should have received a copy of the GNU General Public
	    License along with this file; if not, write to the Free
	    Software Foundation, Inc., 59 Temple Place, Suite 330,
	    Boston, MA 02111-1307, USA.
To contact the TEI Consortium use the following addresses.
	    For general (non-technical) enquiries: 
		  target="mailto:info@tei-c.org"/>info@tei-c.orgFor membership enquiries: membership@tei-c.orgFor technical enquiries, particularly about the
		Guidelines, DTDs, schemas, or software available from
		the TEI-C: editors@tei-c.orgFor up to date information, consult the TEI web site at http://www.tei-c.org/P5
-->

<!ENTITY % arc 'INCLUDE' >
<![ %arc; [

<!--doc:() encodes an arc, the connection from one node to another in a graph. -->
<!ELEMENT %n.arc; %om.RR; EMPTY>
<!ATTLIST %n.arc;
 %att.global.attributes;
 label CDATA #IMPLIED
 label2 CDATA #IMPLIED
 from %data.pointer;  #REQUIRED
 to %data.pointer;  #REQUIRED >
]]>

<!ENTITY % eLeaf 'INCLUDE' >
<![ %eLeaf; [

<!--doc:(Leaf of an embedding tree.) provides explicitly for a leaf of an embedding tree, which may also
be encoded with the eTree element. -->
<!ELEMENT %n.eLeaf; %om.RR; EMPTY>
<!ATTLIST %n.eLeaf;
 %att.global.attributes;
 label CDATA #IMPLIED
 value %data.pointer;  #IMPLIED >
]]>

<!ENTITY % eTree 'INCLUDE' >
<![ %eTree; [

<!--doc:(embedding tree) provides an alternative to tree element for representing
ordered rooted tree structures. -->
<!ELEMENT %n.eTree; %om.RR;  (%n.eTree; | %n.triangle; | %n.eLeaf;)*>
<!ATTLIST %n.eTree;
 %att.global.attributes;
 label CDATA #IMPLIED
 value %data.pointer;  #IMPLIED >
]]>

<!ENTITY % forest 'INCLUDE' >
<![ %forest; [

<!--doc:() provides for groups of rooted trees. -->
<!ELEMENT %n.forest; %om.RR;  (%n.tree; | %n.eTree; | %n.triangle;)+>
<!ATTLIST %n.forest;
 %att.global.attributes;
 type %data.enumerated;  #IMPLIED >
]]>

<!ENTITY % forestGrp 'INCLUDE' >
<![ %forestGrp; [

<!--doc:(Forest group) provides for groups of forests. -->
<!ELEMENT %n.forestGrp; %om.RR;  (%n.forest;)+>
<!ATTLIST %n.forestGrp;
 %att.global.attributes;
 type %data.enumerated;  #IMPLIED >
]]>

<!ENTITY % graph 'INCLUDE' >
<![ %graph; [

<!--doc:() encodes a graph, which is a collection of nodes, and arcs which
connect the nodes. -->
<!ELEMENT %n.graph; %om.RR;  (((%n.node;,(%model.global;)*)+,(%n.arc;,(%model.global;)*)*) | ((%n.arc;,(%model.global;)*)+,(%n.node;,(%model.global;)*)+))>
<!ATTLIST %n.graph;
 %att.global.attributes;
 type %data.enumerated;  #IMPLIED
 label CDATA #IMPLIED
 order %data.count;  #IMPLIED
 size %data.count;  #IMPLIED >
]]>

<!ENTITY % iNode 'INCLUDE' >
<![ %iNode; [

<!--doc:(intermediate (or internal) node) represents an intermediate (or internal) node of a tree. -->
<!ELEMENT %n.iNode; %om.RR; EMPTY>
<!ATTLIST %n.iNode;
 %att.global.attributes;
 label CDATA #IMPLIED
 value %data.pointer;  #IMPLIED
 children %data.pointers;  #REQUIRED
 parent %data.pointer;  #IMPLIED
 ord (true|false) #IMPLIED
 follow %data.pointer;  #IMPLIED
 outDegree %data.count;  #IMPLIED >
]]>

<!ENTITY % leaf 'INCLUDE' >
<![ %leaf; [

<!--doc:() encodes the leaves (terminal nodes) of a tree. -->
<!ELEMENT %n.leaf; %om.RR; EMPTY>
<!ATTLIST %n.leaf;
 %att.global.attributes;
 label CDATA #IMPLIED
 value %data.pointer;  #IMPLIED
 parent %data.pointer;  #IMPLIED
 follow %data.pointer;  #IMPLIED >
]]>

<!ENTITY % node 'INCLUDE' >
<![ %node; [

<!--doc:() encodes a node, a possibly labeled point in a graph. -->
<!ELEMENT %n.node; %om.RR; EMPTY>
<!ATTLIST %n.node;
 %att.global.attributes;
 label CDATA #IMPLIED
 label2 CDATA #IMPLIED
 value %data.pointer;  #IMPLIED
 type %data.enumerated;  #IMPLIED
 adjTo %data.pointers;  #IMPLIED
 adjFrom %data.pointers;  #IMPLIED
 adj %data.pointers;  #IMPLIED
 inDegree %data.count;  #IMPLIED
 outDegree %data.count;  #IMPLIED
 degree %data.count;  #IMPLIED >
]]>

<!ENTITY % root 'INCLUDE' >
<![ %root; [

<!--doc:(root node) represents the root node of a tree. -->
<!ELEMENT %n.root; %om.RR; EMPTY>
<!ATTLIST %n.root;
 %att.global.attributes;
 label CDATA #IMPLIED
 value %data.pointer;  #IMPLIED
 children %data.pointers;  #REQUIRED
 ord (true|false) #IMPLIED
 outDegree %data.count;  #IMPLIED >
]]>

<!ENTITY % tree 'INCLUDE' >
<![ %tree; [

<!--doc:() encodes a tree, which is made up of a root, internal nodes,
leaves, and arcs from root to leaves. -->
<!ELEMENT %n.tree; %om.RR;  ((%n.leaf; | %n.iNode;)*,%n.root;,(%n.leaf; | %n.iNode;)*)>
<!ATTLIST %n.tree;
 %att.global.attributes;
 label CDATA #IMPLIED
 arity %data.count;  #IMPLIED
 ord (true|partial|false) "true" 
 order %data.count;  #IMPLIED >
]]>

<!ENTITY % triangle 'INCLUDE' >
<![ %triangle; [

<!--doc:(Underspecified embedding tree, so called because of its
characteristic shape when drawn.) provides for an underspecified eTree, that is,
an eTree with information left out. -->
<!ELEMENT %n.triangle; %om.RR;  (%n.eTree; | %n.triangle; | %n.eLeaf;)*>
<!ATTLIST %n.triangle;
 %att.global.attributes;
 label CDATA #IMPLIED
 value %data.pointer;  #IMPLIED >
]]>
