<!-- ================================================================================= -->
<!-- File Name : nndef_v1_0.dtd -->
<!-- Document Type : NNDEF (NN definition Markup Language) -->
<!-- Creation date : November 22, 2003 -->
<!-- Last Modification : December 17, 2003 -->
<!-- Comments : Copyright 2003 Pejman Makhfi -->
<!-- ================================================================================= -->
<!-- DISCLAIMER: THIS
WORK IS PROVIDED "AS IS." THE COPYRIGHT HOLDER AND THE -->
<!-- CONTRIBUTING AUTHORS OF THIS WORK MAKE NO REPRESENTATIONS OR WARRANTIES
(i) -->
<!-- EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF
MERCHANTABILITY, -->
<!-- FITNESS FOR A PARTICULAR PURPOSE, TITLE OR NON-INFRINGEMENT; (ii)
THAT THE -->
<!-- CONTENTS OF SUCH WORK ARE FREE FROM ERROR OR SUITABLE FOR ANY PURPOSE;
NOR THAT -->
<!-- IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY
PATENTS, -->
<!-- COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. IN NO EVENT WILL THE COPYRIGHT
HOLDER -->
<!-- AND THE CONTRIBUTORS TO THIS WORK BE LIABLE TO ANY PARTY FOR ANY
DIRECT, -->
<!-- INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES FOR ANY USE OF THIS WORK,
INCLUDING, -->
<!-- WITHOUT LIMITATION, ANY LOST PROFITS, BUSINESS INTERRUPTION, LOSS
OF PROGRAMS OR -->
<!-- OTHER DATA ON YOUR INFORMATION HANDLING SYSTEM OR OTHERWISE, EVEN
IF THE -->
<!-- COPYRIGHT HOLDER OR ANY CONTRIBUTORS TO THIS WORK IS EXPRESSLY ADVISED
OF THE -->
<!-- POSSIBILITY OF SUCH DAMAGES. -->
<!-- Permission to
use and distribute the NNDEF DTD and its accompanying documentation -->
<!-- for any purpose and without fee is hereby granted in perpetuity,
provided that -->
<!-- the above copyright notice and this paragraph appear in all copies.
-->
<!-- The copyright holders make no representations about the suitability
of the DTD -->
<!-- for any purpose. -->
<!-- ============================= Entity definitions ============================== -->
<!ENTITY % EXT.COMBINATIONFUNCTION "">
<!ENTITY % EXT.TRANSFERFUNCTION "">
<!-- =================================================================================
netsum - sum of all inputs
dist - Distance function, used by RBF
======================================================================================
-->
<!ENTITY % COMBINATIONFUNCTION "(
netsum|
dist|
%EXT.COMBINATIONFUNCTION;
)">
<!-- =================================================================================
hardlim - Hard limit or Threshold 0 to 1
hardlims - Symmetric hard limit or Threshold -1 to 1
satlin - Saturating linear 0 to 1
satlins - Symmetric saturating linear -1 to 1
purelin - Linear transfer function -inf to +inf
logsig - Log sigmoid 0 to 1
tansig - Hyperbolic tangent sigmoid -1 to 1
radbas - Radial basis function 0 to 1
compet - Competitive function, what is the output? Used by PNN
======================================================================================
-->
<!ENTITY % TRANSFERFUNCTION "(
hardlim|
hardlims|
satlin|
satlins|
purelin|
logsig|
tansig|
radbas|
compet|
%EXT.TRANSFERFUNCTION;
)">
<!--
<!ENTITY % EXT.COMBINATIONFUNCTION "">
<!ENTITY % EXT.TRANSFERFUNCTION
"">
-->
<!ENTITY % INT "CDATA"
>
<!-- content must be an integer, no fractions or exponent -->
<!ENTITY % REAL "CDATA">
<!-- covering 'float', long and 'double' -->
<!ENTITY % PERCENTAGE "CDATA">
<!-- a REAL between 0.0 and 100.0 -->
<!ENTITY % STRING "CDATA" >
<!-- Regular String content -->
<!ENTITY % DATE "CDATA">
<!-- DATE in the following format: MM/DD/YYYY -->
<!ENTITY % DATETIME "CDATA">
<!-- DATE and TIME in the following format: MM/DD/YYYY HH:MM -->
<!ELEMENT NNDEF (Network,
Layer+)>
<!ATTLIST NNDEF
version CDATA #FIXED '1.0'
>
<!ELEMENT Network (Extension*,Name,Description,CreatedOn,Author,InputList?,OutputList?)>
<!-- AutoScale is used
only for linear scaling -->
<!ATTLIST Network
Type (MLP|RBF) #IMPLIED
Layers %INT; #IMPLIED
Inputs %INT; #IMPLIED
Outputs %INT; #IMPLIED
AutoScale (on|off) #IMPLIED
>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Description (#PCDATA)>
<!ELEMENT CreatedOn (#PCDATA)>
<!ELEMENT Author (
Name,
Contact)
>
<!ELEMENT Contact (#PCDATA)>
<!ATTLIST Contact
Type CDATA #IMPLIED
>
<!ELEMENT InputList
(Input+)>
<!ELEMENT OutputList (Output+)>
<!ELEMENT Input (Option*)>
<!ATTLIST Input
OrderId %INT; #IMPLIED
Name CDATA #IMPLIED
ScaleOffset %REAL; #IMPLIED
ScaleBy %REAL; #IMPLIED
>
<!ELEMENT Option EMPTY>
<!ATTLIST Option
ActualValue CDATA #IMPLIED
TransValue %REAL; #IMPLIED
>
<!ELEMENT Output (Option*)>
<!ATTLIST Output
OrderId %INT; #IMPLIED
Name CDATA #IMPLIED
ScaleOffset %REAL; #IMPLIED
RescaleBy %REAL; #IMPLIED
>
<!ELEMENT Layer (Extension*, Neuron+)>
<!ATTLIST Layer
OrderId %INT; #IMPLIED
TransferFunction %TRANSFERFUNCTION; #IMPLIED
CombinationFunction %COMBINATIONFUNCTION; #IMPLIED
>
<!ELEMENT Neuron (Extension*,
InputWeights, Bias)>
<!ATTLIST Neuron
OrderId %INT; #IMPLIED
TransferFunction %TRANSFERFUNCTION; #IMPLIED
CombinationFunction %COMBINATIONFUNCTION; #IMPLIED
>
<!ELEMENT InputWeights (Weight+)>
<!ELEMENT Weight (#PCDATA)>
<!ATTLIST Weight
OrderId %INT; #IMPLIED
Value %REAL; #IMPLIED
>
<!ELEMENT Bias (#PCDATA)>
<!ATTLIST Bias
Value %REAL; #IMPLIED
>
<!ELEMENT Extension ANY>
<!ATTLIST Extension
name CDATA #IMPLIED
type CDATA #IMPLIED
value CDATA #IMPLIED
>