<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- <?xml-stylesheet type="text/xsl" href="inova.xsl"?> -->
<inca name="reference name" xml:base="http://www.aiai.ed.ac.uk/project/ix/repository/">
   <annotations description="Generic I-N-CA model" authorship="Austin Tate" copyright="AIAI, University of Edinburgh" version="0.3.1" date="26-Sep-2001" others="Add as required - could include WfMC annotations">
      <annotation>Structured annotations are allowed (property=value)</annotation>
   </annotations>
   <environment>
      <types>
         <!--Types and instances (domain objects) used in domain-->
         <type-definition/>
      </types>
      <grammars>
         <grammar/>
      </grammars>
      <lexicons>
         <lexicion/>
      </lexicons>
      <defaults default-grammar-issue="id" default-lexicon-ssue="id" default-grammar-constraint="id" default-lexicon-constraint="id" default-grammar-pattern="id" default-lexicon-pattern="id"/>
   </environment>
   <imports>
      <!--Adds to current model in same space of names for ids etc.-->
      <model>URI</model>
   </imports>
   <refinements>
      <refinement refinement-id="unique id">
         <scope range="unrestricted (default) or restricted">
            <!--scope is either "unrestricted" or "restricted". Optionally information on where a restricted scope reinement may be used can be kept. This is specified as an "outer scope id/node id" pair - only "unrestricted" may be used for unrestricted node refinement-->
            <!--following 2 items are optional, and only given in the case of a restricted refinement-->
            <root>or roots? refinement-id, node-id or some other suitable scoping</root>
            <node-number>node within the outer scope which a restricted refinement applies to</node-number>
         </scope>
         <!-- "self" is a reference to the current node and may be used in
         constraints and other elements.-->
         <pattern>
            <statement>Statement - node pattern in node grammar - may refer to  variables.</statement>
         </pattern>
         <variables>
            <variable/>
         </variables>
         <cond>Condition under which refinement can be used. True by default if not specified.</cond>
         <issues>
            <issue/>
         </issues>
         <nodes>
            <node/>
         </nodes>
         <constraints>
            <constraint/>
         </constraints>
      </refinement>
   </refinements>
   <variables>
      <variable id="id">
         <constraints>
            <constraint/>
         </constraints>
         <value/>
         <!--Variable within activity or across whole domain -
      id scope is appropriate to use.-->
      </variable>
   </variables>
   <issues>
      <issue>
         <cond>Condition under which issue is included. True by default.</cond>
         <statement/>
      </issue>
   </issues>
   <nodes>
      <node node-id="unique id" type="Optional node type, may be omitted if pattern differentiates and/or there is only one type of node">
         <node-parent> Or Parents? Normally a single parent or no root.
         Exceptionally may have several parents.  Parents are other nodes
         in the model.</node-parent>
         <node-number>An integer. Unique within scope of the refinement it is within</node-number>
         <!--Each (sub-)node is described by a pattern along with
                  the optional specification of a set of refinemnets
                  (via their refinement-ids) that may be used to refine
                  that node.  If no refinements are stated any available
                  "unrestricted" refinement within the domain model that matches
                  the pattern and other constraints may be used -->
         <!--Note any variables used in the node pattern must be in the top level variables list iin this case - i.e. the oiuter scope is the whole inca model in this case-->
         <pattern>
            <statement/>
         </pattern>
         <variables>
            <variable id="id">
               <constraints>
                  <constraint/>
               </constraints>
               <value/>
               <!--Variable within activity or across whole domain -
      id scope is appropriate to use.-->
            </variable>
         </variables>
         <restricted-refinements>
            <!--0..N refinement-ids
                     (in which case they are local use only). 
                     No refinements means that the "unrestricted" refinement set may be
                     used for refinements of the node -->
            <refinement-id/>
         </restricted-refinements>
      </node>
   </nodes>
   <constraints>
      <constraint>
         <cond>Condition under which constraint applies or must hold. True by default.</cond>
         <statement/>
      </constraint>
   </constraints>
</inca>
