<?xml version="1.0" encoding="UTF-8"?>
<!-- Licensed Materials - Property of IBM

     IBM SPSS Products: Text Analytics

     (C) Copyright IBM Corp. 2003, 2014

     US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP
     Schedule Contract with IBM Corp.  -->
<Extension version="1.0" debug="false">
  <ExtensionDetails id="text_mining_workbench" label="Text Mining Workbench" version="1.0" provider="SPSS Inc." providerTag="SPSS" copyright="(c) 2006 SPSS Inc." description="SPSS Text Mining Node"/>
  <Resources>
    <HelpInfo id="help" type="native" path="/com.ibm.spss.ta.help/"/>
    <Bundle id="translations.textmining" type="properties" path="messages"/>
    <SharedLibrary id="TMWBModel" path="spss.TMWBServer/bin/TMWBModel"/>

	
	<JarFile id="axiom-api-1.2.12_fix443.jar" path="../spss.TMWBClient/lib/axiom-api-1.2.12_fix443.jar"/>
	<JarFile id="axiom-impl-1.2.12.jar" path="../spss.TMWBClient/lib/axiom-impl-1.2.12.jar"/>
	<JarFile id="axis2-adb-1.6.1.jar" path="../spss.TMWBClient/lib/axis2-adb-1.6.1.jar"/>
	<JarFile id="axis2-kernel-1.6.1.jar" path="../spss.TMWBClient/lib/axis2-kernel-1.6.1.jar"/>
	<JarFile id="axis2-transport-http-1.6.1.jar" path="../spss.TMWBClient/lib/axis2-transport-http-1.6.1.jar"/>
	<JarFile id="axis2-transport-local-1.6.1.jar" path="../spss.TMWBClient/lib/axis2-transport-local-1.6.1.jar"/>
	<JarFile id="commons-beanutils-bean-collections" path="../spss.TMWBClient/lib/commons-beanutils-bean-collections.jar"/>
	
	<JarFile id="commons-beanutils-core" path="../spss.TMWBClient/lib/commons-beanutils-core.jar"/>
	<JarFile id="commons-beanutils" path="../spss.TMWBClient/lib/commons-beanutils.jar"/>
	<JarFile id="commons-betwixt-0.7" path="../spss.TMWBClient/lib/commons-betwixt-0.7.jar"/>
	<JarFile id="commons-digester-1.7" path="../spss.TMWBClient/lib/commons-digester-1.7.jar"/>
	<JarFile id="commons-httpclient-3.1" path="../spss.TMWBClient/lib/commons-httpclient-3.1.jar"/>
	<JarFile id="commons-logging-1.1.1" path="../spss.TMWBClient/lib/commons-logging-1.1.1.jar"/>

	<JarFile id="log4j-1.2.15" path="../spss.TMWBClient/lib/log4j-1.2.15.jar"/>

	<JarFile id="WebServerAxis2.jar" path="../spss.TMWBClient/lib/WebServerAxis2.jar"/>

	<JarFile id="STAS" path="../spss.TMWBClient/STAS.jar"/>
	<JarFile id="SPSSML" path="../spss.TMWBClient/lib/spssml.jar"/>
	<JarFile id="TableLayout-bin-jdk1.5-2009-08-26" path="../spss.TMWBClient/lib/TableLayout-bin-jdk1.5-2009-08-26.jar"/>	
	<JarFile id="tmwb" path="../spss.TMWBClient/lib/tmwb.jar"/>
	<!-- Use sqlite.jar from jre JarFile id="sqlite" path="../spss.TMWBClient/lib/sqlite.jar"/ -->
	<JarFile id="dbUtilLib" path="../spss.TMWBClient/lib/dbUtilLib.jar"/>
	<JarFile id="install" path="../spss.TMWBClient/lib/install.jar"/>
	<JarFile id="looks-1.3.1" path="../spss.TMWBClient/lib/looks-1.3.1.jar"/>

	<JarFile id="poi-3.10-FINAL-20140208" path="../spss.TMWBClient/lib/poi-3.10-FINAL-20140208.jar"/>
	<JarFile id="JimiProClasses" path="../spss.TMWBClient/lib/JimiProClasses.jar"/>
	<JarFile id="jdms" path="../spss.TMWBClient/lib/jdms.jar"/>
	<JarFile id="excelxlsx" path="../spss.TMWBClient/lib/excelxlsx.jar"/>
	<JarFile id="castor-1.2" path="../spss.TMWBClient/lib/castor-1.2.jar"/>

        

  </Resources>
  <License>
	<OptionCode code="15" type="optional" description="IBM® SPSS® Text Analytics"/> 
	<OptionCode code="16" type="optional" description="IBM® SPSS® Text Analytics English Extractor"/> 
	<OptionCode code="17" type="optional" description="IBM® SPSS® Text Analytics French Extractor"/> 
	<OptionCode code="18" type="optional" description="IBM® SPSS® Text Analytics German Extractor"/> 
	<OptionCode code="19" type="optional" description="IBM® SPSS® Text Analytics Spanish Extractor"/> 
	<OptionCode code="20" type="optional" description="IBM® SPSS® Text Analytics Dutch Extractor"/> 
	<OptionCode code="21" type="optional" description="IBM® SPSS® Text Analytics Italian Extractor"/> 
	<OptionCode code="22" type="optional" description="IBM® SPSS® Text Analytics Portuguese Extractor"/>
	<OptionCode code="23" type="optional" description="IBM® SPSS® Text Analytics Japanese Extractor"/> 
	<OptionCode code="25" type="optional" description="IBM® SPSS® Text Analytics Language Weaver Translation"/>
  </License>
  <CommonObjects extensionListenerClass="com.spss.tmwb.buildnode.actions.ClemListener">
    <ContainerTypes>
      <ModelType id="tmwb_model"/>
      <ModelType id="tmwb_project"/>
    </ContainerTypes>
    <PropertyTypes>
      <PropertyType id="method" valueType="enum">
        <Enumeration>
          <Enum value="ReadText" label="Actual text" labelKey="method.ReadText.LABEL"/>
          <Enum value="ReadPath" label="Pathnames to documents" labelKey="method.ReadPath.LABEL"/>
        </Enumeration>
      </PropertyType>
      <PropertyType id="docType" valueType="enum">
        <Enumeration>
          <Enum value="0" label="Full Text" labelKey="docType.Full.LABEL"/>
          <Enum value="1" label="Structured Text" labelKey="docType.Structured.LABEL"/>
          <Enum value="2" label="XML" labelKey="docType.XML.LABEL"/>
        </Enumeration>
      </PropertyType>
      <PropertyType id="unity" valueType="enum">
        <Enumeration>
          <Enum value="1" label="Document mode" labelKey="unity.Document.LABEL"/>
          <Enum value="0" label="Paragraph mode" labelKey="unity.Paragraph.LABEL"/>
        </Enumeration>
      </PropertyType>
      <PropertyType id="encoding" valueType="enum">
        <Enumeration>
          <Enum value="auto" label="Automatic" labelKey="encoding.automatic.LABEL"/>
          <Enum value="utf-8" label="UTF-8" labelKey="encoding.utf8.LABEL"/>
          <Enum value="utf-16" label="UTF-16" labelKey="encoding.utf16.LABEL"/>
          <Enum value="iso-8859-1" label="ISO-8859-1" labelKey="encoding.iso8859-1.LABEL"/>
 		  <Enum value="iso-8859-2" label="ISO-8859-2" labelKey="encoding.iso8859-2.LABEL" />
		  <Enum value="windows-1250" label="WINDOWS-1250" labelKey="encoding.windows-1250.LABEL" />
          <Enum value="us-ascii" label="US ascii" labelKey="encoding.ascii.LABEL"/>
          <Enum value="cp850" label="CP850" labelKey="encoding.cp850.LABEL"/>
          <Enum value="shift-jis" label="Shift-JIS" labelKey="encoding.shiftjis.LABEL" />
          <Enum value="euc-jp" label="EUC-JP" labelKey="encoding.eucjp.LABEL" />
          <Enum value="iso2022-jp" label="ISO-2022-JP" labelKey="encoding.iso2022jp.LABEL" />
        </Enumeration>
      </PropertyType>
      <PropertyType id="model_output_type" valueType="enum">
        <Enumeration>
          <Enum value="Interactive"/>
          <Enum value="Model"/>
        </Enumeration>
      </PropertyType>
      <PropertyType id="interactive_view" valueType="enum">
        <Enumeration>
          <Enum value="Categories"/>
          <Enum value="TLA"/>
          <Enum value="Clusters"/>
        </Enumeration>
      </PropertyType>
      <PropertyType id="model_type" valueType="enum">
        <Enumeration>
          <Enum value="Categories"/>
          <Enum value="Concept"/>
        </Enumeration>
      </PropertyType>
      <PropertyType id="create_categories_technique_type" valueType="enum">
        <Enumeration>
          <Enum value="ConceptGrouping"/>
          <Enum value="Frequency"/>
        </Enumeration>
      </PropertyType>
      <PropertyType id="semantic_network_profile" valueType="enum">
        <Enumeration>
          <Enum value="Wider"/>
          <Enum value="Narrow"/>
        </Enumeration>
      </PropertyType>
      <PropertyType id="apply_techniques" valueType="enum">
        <Enumeration>
          <Enum value="Concept"/>
          <Enum value="Percentage"/>
          <Enum value="All"/>
        </Enumeration>
      </PropertyType>
      <PropertyType id="scoring_mode" valueType="enum">
        <Enumeration>
          <Enum value="Fields" label="Fields"/>
          <Enum value="Records" label="Records"/>
        </Enumeration>
      </PropertyType>
      <PropertyType id="field_values" valueType="enum">
        <Enumeration>
          <Enum value="Flags" label="Flags"/>
          <Enum value="Counts" label="Counts"/>
        </Enumeration>
      </PropertyType>
      <PropertyType id="add_as" valueType="enum">
        <Enumeration>
          <Enum value="Prefix" label="Prefix"/>
          <Enum value="Suffix" label="Suffix"/>
        </Enumeration>
      </PropertyType>
      <PropertyType id="category_codes" valueType="enum">
        <Enumeration>
          <Enum value="NotUsed" label="NotUsed"/>
          <Enum value="FieldNameExtension" label="FieldNameExtension"/>
          <Enum value="PrefixToCategoryName" label="PrefixToCategoryName"/>          
        </Enumeration>
      </PropertyType>
      <PropertyType id="category_path" valueType="enum">
        <Enumeration>
          <Enum value="Full" label="Full"/>
          <Enum value="Abbreviated" label="Abbreviated"/>
          <Enum value="BottomLevel" label="BottomLevel"/>          
        </Enumeration>
      </PropertyType>
      <PropertyType id="excluded_subcategories_descriptors" valueType="enum">
        <Enumeration>
          <Enum value="Ignore" label="Ignore"/>
          <Enum value="RollUpToParent" label="RollUpToParent"/>
        </Enumeration>
      </PropertyType>
       <PropertyType id="html_alg" valueType="enum">
        <Enumeration>
          <Enum value="None" label="None"/>
          <Enum value="WK" label="Use Cleaning Algorthim"/>
        </Enumeration>
      </PropertyType>      
    </PropertyTypes>        
	<Actions>
	  <Action id="selectTemplate" label="Select Template..." labelKey="action.selectTemplate.LABEL"/>
	  <Action id="createCategories" label="Create Categories..." labelKey="action.createCategories.LABEL"/>
      <Action id="copyConcepts" label="Copy" labelKey="action.copyConcepts.LABEL"/>
      <Action id="selectAllConcepts" label="Select _All" labelKey="action.selectAllConcepts.LABEL"/>
      <Action id="clearConceptSelection" label="Clear Selection" labelKey="action.clearConceptSelection.LABEL"/>
      <Action id="launchTMB" label="Text Analytics Template Editor" labelKey="action.launchTMB.LABEL" mnemonicKey="action.launchTMB.MNEMONIC" imagePath="editor.gif" largeImagePath="lg_editor.gif" description="Launch Text Analytics for IBM SPSS Modeler Premium Resource Template Editor" descriptionKey="action.launchTMB.TOOLTIP"/>
	  <Action id="launchTranslationSettings" label="Text Analytics Translation Settings..." labelKey="action.launchTranslationSettings.LABEL" mnemonicKey="action.launchTranslationSettings.MNEMONIC" imagePath="translator.gif" description="Launch Text Analytics for IBM SPSS Modeler Premium Translation Settings" descriptionKey="action.launchTranslationSettings.TOOLTIP"/>
	</Actions>
  </CommonObjects>
  
  <!-- Imported Categorizer Model interface-->
  <UserInterface actionHandler="com.spss.tmwb.buildnode.actions.MainClemWindowActionHandler">
    <Icons>
      <Icon type="standardWindow" imagePath="tmfc16.gif"/> 
	</Icons>
	<Controls>
      <MenuItem action="launchTMB" separatorBefore="true" systemMenu="tools" showIcon="true"/>
	  <ToolbarItem action="launchTMB" separatorBefore="true" showIcon="true"/><MenuItem action="launchTranslationSettings" separatorBefore="false" systemMenu="tools" showIcon="true"/>
	  	  
    </Controls>
    <Tabs>
      <!--The first tab uses a model panel class provided by the JAR file. Because the  -->
      <Tab label="Model" labelKey="modelTab.LABEL">
        <ExtensionObjectPanel id="modelPanel" panelClass="com.spss.tmwb.buildnode.panels.ModelDisplayPanel"/>
      </Tab>
    </Tabs>
  </UserInterface>

  <Node id="TextMiningWorkbench" type="modelBuilder" customPalette="text_mining" relativePosition="before" relativeTo="fileviewer" label="Text Mining" labelKey="textminingnode.LABEL" helpLink="textmining/tmfc/textmining_node_general.htm" description="Constructs text mining concept and category models from text data" descriptionKey="textminingnode_tooltip.LABEL">
    <ModelBuilder miningFunctions="[classification]" defaultModelName="${text}">
      <Algorithm value="extraction" label="Text Model" labelKey="tmwb.LABEL"/>
    </ModelBuilder>
    <Properties>
      
      
      <!-- =========== only for this node - do not replicate =========== -->
      <Property name="has_project" valueType="boolean" defaultValue="false"/>
      
      <!-- =========== debug information =========== -->
      <Property name="debug_on" valueType="boolean" defaultValue="false"/>
      
      <!-- =========== fields tab =========== -->
      <Property name="text" valueType="string" label="Text field" labelKey="text.LABEL"/>
      <Property name="method" type="method" defaultValue="ReadText" label="Text field represents" labelKey="method.LABEL"/>
      <Property name="docType" type="docType" defaultValue="0" label="Document type" labelKey="docType.LABEL"/>
      <Property name="unity" type="unity" defaultValue="1" label="Textual unity" labelKey="unity.LABEL"/>
      <Property name="para_min" valueType="integer" min="1" label="Minimum" labelKey="para_min.LABEL"/>
      <Property name="para_max" valueType="integer" min="1" defaultValue="300" label="Maximum" labelKey="para_max.LABEL"/>
      <Property name="encoding" type="encoding" defaultValue="auto" label="Input encoding" labelKey="encoding.LABEL"/>
      <Property name="custom_field" valueType="boolean" defaultValue="false" label="Partition Mode" labelKey="custom_field.LABEL"/>
      <Property name="partition" valueType="string" label="Partition" labelKey="partition.LABEL"/>

      <!-- =========== document settings tab =========== -->

      <Property name="mtag" valueType="string" label="XML Text Formatting" labelKey="mtag.LABEL"/>
      <Property name="mclef" valueType="string" label="Structured Text Formatting" labelKey="mclef.LABEL"/>

      <!-- =========== model tab =========== -->
      
      <Property name="use_model_name" valueType="boolean" label="Use model name" labelKey="use_model_name.LABEL"/>
      <Property name="model_name" valueType="string" label="Model name" labelKey="model_name.LABEL"/>
      <Property name="use_partitioned_data" valueType="boolean" label="Use partitioned data" labelKey="use_partitioned_data.LABEL"/>
      
      <Property name="model_output_type" type="model_output_type" label="Mode" labelKey="model_output_type.LABEL"/>
      <Property name="use_interactive_info" valueType="boolean" defaultValue="false" label="Use saved interactive session" labelKey="use_interactive_info.LABEL"/>
      <Property name="interactive_view" type="interactive_view" defaultValue="Categories" label="Begin workbench by" labelKey="interactive_view.MODEL"/>
      <Property name="model_type" type="model_type" defaultValue="Concept" label="Model type" labelKey="model_type.LABEL"/>
      <Property name="extract_top" valueType="integer" min="0" defaultValue="500" label="Top concepts" labelKey="extract_top.LABEL"/>
      <Property name="check_top" valueType="integer" min="0" defaultValue="75" label="Check top concepts" labelKey="check_top.LABEL"/>
      <Property name="uncheck_top" valueType="integer" min="0" defaultValue="95" label="Uncheck top concepts" labelKey="uncheck_top.LABEL"/>
      <Property name="use_check_top" valueType="boolean" label="Use check top concepts" labelKey="use_check_top.LABEL"/>
      <Property name="use_minimal_model" valueType="boolean"  defaultValue="true" label="Optimise for speed of scoring" labelKey="use_minimal_model.LABEL"/> 
      <Property name="use_uncheck_top" valueType="boolean" label="Use uncheck top concepts" labelKey="use_uncheck_top.LABEL"/>
      <Property name="language" valueType="string" defaultValue="en" label="Language" labelKey="language.LABEL"/>
      <Property name="template_name" valueType="string" label="Template name" labelKey="template_name.LABEL"/>
      <Property name="template_language" valueType="string"/>
      <Property name="template_data" valueType="string"/>
      <Property name="load_template" valueType="boolean" defaultValue="true" label="Load" labelKey="load_template.LABEL"/>
      <Property name="template_project" valueType="string"/>
      <Property name="template_loaded_timestamp" valueType="string"/>
      <Property name="reuse_extraction_results" valueType="boolean" defaultValue="false" label="Reuse cached data and results" labelKey="reuse_extraction_results.LABEL"/>
      <Property name="tap_name" valueType="string"/>
      <Property name="tap_dir" valueType="string"/>
      <Property name="tap_language" valueType="string"/>
      <Property name="taxonomy_data" valueType="string"/>
      <Property name="tap_loaded_timestamp" valueType="string"/>
      <Property name="reuse_extraction_results_sessionid" valueType="string"/>

	  
      <!-- =========== create categories dialog =========== -->

      <Property name="create_categories_technique_type" type="create_categories_technique_type" defaultValue="Frequency" label="Create categories technique type" labelKey="create_categories_technique_type.LABEL"/>
      <Property name="concept_derivation" valueType="boolean" defaultValue="true" label="Concept derivation" labelKey="concept_derivation.LABEL"/>
      <Property name="concept_inclusion" valueType="boolean" defaultValue="true" label="Concept inclusion" labelKey="concept_inclusion.LABEL"/>
      <Property name="semantic_network" valueType="boolean" defaultValue="true" label="Semantic network" labelKey="semantic_network.LABEL"/>
      <Property name="semantic_network_profile" type="semantic_network_profile" defaultValue="Wider" label="Semantic network profile" labelKey="semantic_network_profile.LABEL"/>
      <Property name="cooccurrence_rules" valueType="boolean" defaultValue="false" label="Cooccurrence rules" labelKey="cooccurrence_rules.LABEL"/>
      <Property name="type_frequency_n" valueType="integer" defaultValue="50" label="Type Frequency N" labelKey="type_frequency_n.LABEL"/>
      <Property name="maximum_category_n" valueType="integer" defaultValue="50" label="Maximum Category N" labelKey="maximum_category_n.LABEL"/>
      <Property name="apply_techniques" type="apply_techniques" defaultValue="Concept" label="Apply Techniques" labelKey="apply_techniques.LABEL"/>

      <Property name="top_concept_n" valueType="integer" defaultValue="5000" label="Top Concept N" labelKey="top_concept_n.LABEL"/><Property name="top_percentage_n" valueType="integer" defaultValue="20" label="Top Percentage N" labelKey="top_percentage_n.LABEL"/><Property name="maximum_categories_per_concept" valueType="integer" defaultValue="1" label="Maximum categories per concept" labelKey="maximum_categories_per_concept.LABEL"/><Property name="minimum_concepts_per_category" valueType="integer" defaultValue="2" label="Maximum categories per concept" labelKey="minimum_concepts_per_category.LABEL"/><Property name="maximum_concepts_per_category" valueType="integer" defaultValue="50" label="Maximum concepts per category" labelKey="maximum_concepts_per_category.LABEL"/><Property name="minimum_link_value_percent" valueType="integer" defaultValue="20" label="Minimum link value percent" labelKey="minimum_link_value_percent.LABEL"/><Property name="maximum_number_concept_per_cooccurrence" valueType="integer" defaultValue="3" label="Maximum number concept per cooccurrence" labelKey="maximum_number_concept_per_cooccurrence.LABEL"/><Property name="cooccurrence_doc_limit" valueType="boolean" defaultValue="true" label="Use doc limit for co-occurrence rules" labelKey="cooccurrence_doc_limit.LABEL"/><Property name="cooccurrence_doc_limit_n" valueType="integer" defaultValue="5000" label="Maximum number of docs to use for calculating co-occurrence rules" labelKey="cooccurrence_doc_limit_n.LABEL"/>

      <!-- =========== Expert tab =========== -->

      <Property name="concept_count_limit" valueType="integer" min="1" label="Concept count limit" labelKey="concept_count_limit.LABEL"/>
      <Property name="fix_punctuation" valueType="boolean" defaultValue="true" label="Accommodate punctuation errors" labelKey="fix_punctuation.LABEL"/>
      <Property name="fix_spelling" valueType="boolean" defaultValue="false" label="Accommodate spelling for a minimum root character limit of" labelKey="fix_spelling.LABEL"/>
      <Property name="spelling_limit" valueType="integer" min="0" defaultValue="5" label="Spelling limit" labelKey="spelling_limit.LABEL"/>
      <Property name="extract_uniterm" valueType="boolean" defaultValue="true" label="Extract uniterms" labelKey="extract_uniterm.LABEL"/>
      <Property name="extract_nonlinguistic" valueType="boolean" defaultValue="true" label="Extract non-linguistic entities" labelKey="extract_nonlinguistic.LABEL"/>
      <Property name="upper_case" valueType="boolean" defaultValue="true" label="Upper-case algorithm" labelKey="upper_case.LABEL"/>
      <Property name="group_names" valueType="boolean" defaultValue="false" label="Group partial and full person names together when possible" labelKey="group_names.LABEL"/>
      <Property name="permutation" valueType="integer" min="0" defaultValue="3" label="Maximum non-function word permutation" labelKey="permutation.LABEL"/>
      <Property name="jp_algorithm" valueType="integer" min="0" defaultValue="0" label="uncover concepts and patterns through sentiments" labelKey="jp_algorithm_sense.LABEL"/>
      <Property name="jp_algorithm_sense_mode" valueType="integer" min="0" defaultValue="1" label="sentiment mode to apply" labelKey="jp_algorithm_sense_mode.LABEL"/>

      <!-- =========== HTML Algorthim =========== -->
	  
	  <Property name="html_alg" type="html_alg" defaultValue="None" label="Content selection method" labelKey="html_lag.LABEL"/>
	  <Property name="discard_lines" valueType="boolean" defaultValue="false" label="Discard short lines" labelKey="disard_lines.LABEL"/>
	  <Property name="discard_words" valueType="boolean" defaultValue="false" label="Discard lines with short words" labelKey="disard_words.LABEL"/>
	  <Property name="discard_scw" valueType="boolean" defaultValue="false" label="Discard lines with single character words" labelKey="disard_scw.LABEL"/>
	  
	  <Property name="min_words" valueType="integer" min="1" defaultValue="10" label="Minimum number of words" labelKey="min_words.LABEL"/>
	  <Property name="min_avg_len" valueType="integer" min="1" defaultValue="3" label="Minimum average word length" labelKey="min_avg_len.LABEL"/>
	  <Property name="max_scw" valueType="integer" min="1" max="100" defaultValue="33" label="Maximum proportion SCW (%)" labelKey="max_scw.LABEL"/>
	  
	  <Property name="discard_tags" valueType="boolean" defaultValue="false" label="Discard lines containing specific tages" labelKey="disard_tags.LABEL"/>
	  <Property name="discard_spec_words" valueType="boolean" defaultValue="false" label="Discard lines containing specific words" labelKey="disard_spec_words.LABEL"/>
	  <Property name="tags" valueType="string" defaultValue="SCRIPT,STYLE,LI,IFRAME,A" label="Tags" labelKey="tags.LABEL"/>
	  <Property name="words" valueType="string" defaultValue="Copyright,(c)" label="Words" labelKey="words.LABEL"/>
	  
    </Properties>
    <Containers>
      <Container name="project"/>
    </Containers>

    <!-- Text Mining Node interface -->
    <UserInterface actionHandler="com.spss.tmwb.buildnode.actions.Actions">
      <Icons>
        <Icon type="smallNode" imagePath="sm_tm.gif"/>
        <Icon type="standardNode" imagePath="lg_tm.gif"/>
      </Icons>
      <Tabs>
        <Tab label="Fields" labelKey="fieldTab.LABEL" helpLink="textmining/tmfc/textmining_node_fieldstab.htm">
          <PropertiesPanel>
            <SingleFieldChooserControl property="text"/>

            <RadioButtonGroupControl property="method" rows="1">
              <Layout gridColumn="0" gridWidth="2"/>
            </RadioButtonGroupControl>

            <ComboBoxControl property="docType">
              <Layout rowIncrement="0" gridWidth="1"/>
              <Enabled>
                <Condition control="method" op="equals" value="ReadPath"/>
              </Enabled>
            </ComboBoxControl>

            <PropertiesSubPanel buttonLabel="Settings..." buttonLabelKey="AdditionalSettings.LABEL" helpLink="textmining/tmfc/textmining_fields_docsettings.htm" dialogTitle="Text Mining: Document Settings" dialogTitleKey="DocumentSettingsDialog.LABEL">
              <Enabled>
                <And>
                  <Condition control="method" op="equals" value="ReadPath"/>
                  <Or>
                    <Condition control="docType" op="equals" value="1"/>
                    <Condition control="docType" op="equals" value="2"/>
                  </Or>
                </And>
              </Enabled>
              <Layout rowIncrement="1" gridColumn="3" gridWidth="1"/>
              <TextAreaControl property="mclef" rows="5" columns="20" labelAbove="true">
                <Enabled>
                  <Condition control="docType" op="equals" value="1"/>
                </Enabled>
              </TextAreaControl>
              <TextAreaControl property="mtag" rows="5" columns="20" labelAbove="true">
                <Enabled>
                  <Condition control="docType" op="equals" value="2"/>
                </Enabled>
              </TextAreaControl>
            </PropertiesSubPanel>

            <ComboBoxControl property="unity">
              <Enabled>
                <Condition control="method" op="equals" value="ReadPath"/>
              </Enabled>
            </ComboBoxControl>


            <StaticText text="Paragraph mode settings" textKey="paragraphModeStatic.LABEL">
              <Layout gridColumn="1" gridWidth="1"/>
              <Enabled>
                <And>
                  <Condition control="method" op="equals" value="ReadPath"/>
                  <Condition control="unity" op="equals" value="0"/>
                </And>
              </Enabled>
            </StaticText>

            <PropertiesPanel>
              <Layout gridColumn="1" gridWidth="1"/>

              <SpinnerControl property="para_min">
                <Layout rowIncrement="0" gridWidth="1"/>
                <Enabled>
                  <And>
                    <Condition control="method" op="equals" value="ReadPath"/>
                    <Condition control="unity" op="equals" value="0"/>
                  </And>
                </Enabled>
              </SpinnerControl>

              <SpinnerControl property="para_max">
                <Layout gridColumn="2" gridWidth="1" columnWeight="0.001"/>
                <Enabled>
                  <And>
                    <Condition control="method" op="equals" value="ReadPath"/>
                    <Condition control="unity" op="equals" value="0"/>
                  </And>
                </Enabled>
              </SpinnerControl>

            </PropertiesPanel>

            <ComboBoxControl property="encoding">
              <Enabled>
                <Condition control="method" op="equals" value="ReadPath"/>
              </Enabled>
            </ComboBoxControl>


            <!-- trueFirst=&quot;true&quot; will make the radio buttons go in the proper order eventually   -->
            <RadioButtonGroupControl property="custom_field" rows="1" falseLabel="Use type node settings" falseLabelKey="useTypeNodeSettings.LABEL" trueLabel="Use custom settings" trueLabelKey="useCustomSettings.LABEL"/>
            <SingleFieldChooserControl property="partition">
              <Enabled>
                <Condition control="custom_field" op="equals" value="true"/>
              </Enabled>
            </SingleFieldChooserControl>
            <StaticText text="For large data, use an upstream Sample node to reduce processing time when extracting key concepts." textKey="largedatainfo.LABEL"/>
          </PropertiesPanel>
        </Tab>
        <Tab label="Model" labelKey="modelTab.LABEL" helpLink="textmining/tmfc/textmining_node_modeltab.htm">
          <ExtensionObjectPanel id="modelPanel" panelClass="com.spss.tmwb.buildnode.panels.ModelPanel"/>
        </Tab>
        <Tab label="Expert" labelKey="expertTAB.LABEL" helpLink="textmining/tmfc/textmining_node_experttab.htm">
          <ExtensionObjectPanel id="expertPanel" panelClass="com.spss.tmwb.buildnode.panels.ExpertPanel"/>
        </Tab>
      </Tabs>
    </UserInterface>
    <Execution>
      <Properties>
        <Property name="tempfile" valueType="string">
          <DefaultValue>
            <ServerTempFile basename="tmwbtmp"/>
          </DefaultValue>
        </Property>
      </Properties>
      <OutputFiles>
        <ContainerFile id="spssml" path="${tempfile}.out" containerType="tmwb_model"/>
      </OutputFiles>
      <Module libraryId="TMWBModel" name="">
        <StatusCodes>
		  <StatusCode code="0" status="error" message="Initialization Error" messageKey="initError.LABEL"/>
		  <StatusCode code="1" status="error" message="Internal Error" messageKey="internalError.LABEL"/>
          <StatusCode code="2" status="error" message="Invalid input field type" messageKey="invalidInputFieldTypeError.LABEL"/>
          <StatusCode code="3" status="error" message="Invalid Metadata" messageKey="invalidMetadataError.LABEL"/>
		  <StatusCode code="4" status="error" message="Missing template parameter" messageKey="missingTemplateError.LABEL"/>
		  <StatusCode code="5" status="error" message="Template is not well formed" messageKey="invalidTemplateError.LABEL"/>
          <StatusCode code="6" status="error" message="No TLA patterns found in template" messageKey="noTLAInTemplateError.LABEL"/>
		  <StatusCode code="7" status="error" message="No values for &apos;Structured Text Formatting&apos; defined" messageKey="noStructuredTextFormattingError.LABEL"/>
		  <StatusCode code="8" status="error" message="No values for &apos;XML Text Formatting&apos; defined" messageKey="noXMLTextFormattingError.LABEL"/>
		  <StatusCode code="9" status="error" message="Missing or invalid IBM SPSS Text Analytics license" messageKey="missingTMFCLicenseError.LABEL"/>
		  <StatusCode code="10" status="error" message="No valid license was found for the language selected in the node. This product must be licensed for each language you intend to use" messageKey="missingLanguageLicenseError.LABEL"/>
          <StatusCode code="11" status="error" message="Invalid model type" messageKey="invalidModelTypeError.LABEL"/>
        </StatusCodes>
      </Module>
      <Constructors>
        <CreateModelOutput type="TextModel">
          <Condition property="model_output_type" op="equals" value="Model"/>
          <CreateModel type="tmwb_model" target="model" sourceFile="spssml"/>
        </CreateModelOutput>
        <CreateInteractiveModelBuilder type="interactiveTM4C">
          <Condition property="model_output_type" op="equals" value="Interactive"/>
          <CreateModel type="tmwb_model" target="model" sourceFile="spssml"/>
        </CreateInteractiveModelBuilder>
      </Constructors>
    </Execution>
    <!-- This tells Clementine that the node&apos;s output data model is based on the input data model  with some extra fields added -->
    <OutputDataModel mode="extend">
    </OutputDataModel>
  </Node>
  <InteractiveModelBuilder id="interactiveTM4C" label="Interactive Text Mining">
    <Containers>
      <Container name="model"/>
    </Containers>
    <Properties>

      <!-- =========== debug information =========== -->
      <Property name="debug_on" valueType="boolean" defaultValue="false"/>
      
      <!-- =========== fields tab =========== -->
      <Property name="text" valueType="string" label="Text field" labelKey="text.LABEL"/>
      <Property name="method" type="method" defaultValue="ReadText" label="Text field represents" labelKey="method.LABEL"/>
      <Property name="docType" type="docType" defaultValue="0" label="Document type" labelKey="docType.LABEL"/>
      <Property name="unity" type="unity" defaultValue="1" label="Textual unity" labelKey="unity.LABEL"/>
      <Property name="para_min" valueType="integer" min="1" label="Minimum" labelKey="para_min.LABEL"/>
      <Property name="para_max" valueType="integer" min="1" defaultValue="300" label="Maximum" labelKey="para_max.LABEL"/>
      <Property name="encoding" type="encoding" defaultValue="auto" label="Input encoding" labelKey="encoding.LABEL"/>
      <Property name="custom_field" valueType="boolean" defaultValue="false" label="Partition Mode" labelKey="custom_field.LABEL"/>
      <Property name="partition" valueType="string" label="Partition" labelKey="partition.LABEL"/>

      <!-- =========== document settings tab =========== -->

      <Property name="mtag" valueType="string" label="XML Text Formatting" labelKey="mtag.LABEL"/>
      <Property name="mclef" valueType="string" label="Structured Text Formatting" labelKey="mclef.LABEL"/>

      <!-- =========== model tab =========== -->
      
      <Property name="use_model_name" valueType="boolean" label="Use model name" labelKey="use_model_name.LABEL"/>
      <Property name="model_name" valueType="string" label="Model name" labelKey="model_name.LABEL"/>
      <Property name="use_partitioned_data" valueType="boolean" label="Use partitioned data" labelKey="use_partitioned_data.LABEL"/>
      
      <Property name="model_output_type" type="model_output_type" label="Mode" labelKey="model_output_type.LABEL"/>
      <Property name="use_interactive_info" valueType="boolean" defaultValue="true" label="Use saved interactive session" labelKey="use_interactive_info.LABEL"/>
      <Property name="interactive_view" type="interactive_view" defaultValue="Categories" label="Begin workbench by" labelKey="interactive_view.MODEL"/>
      <Property name="model_type" type="model_type" defaultValue="Concept" label="Model type" labelKey="model_type.LABEL"/>
      <Property name="extract_top" valueType="integer" min="0" defaultValue="500" label="Top concepts" labelKey="extract_top.LABEL"/>
      <Property name="check_top" valueType="integer" min="0" defaultValue="75" label="Check top concepts" labelKey="check_top.LABEL"/>
      <Property name="uncheck_top" valueType="integer" min="0" defaultValue="95" label="Uncheck top concepts" labelKey="uncheck_top.LABEL"/>
      <Property name="use_check_top" valueType="boolean" label="Use check top concepts" labelKey="use_check_top.LABEL"/>
      <Property name="use_minimal_model" valueType="boolean"  defaultValue="true" label="Optimise for speed of scoring" labelKey="use_minimal_model.LABEL"/>
      <Property name="use_uncheck_top" valueType="boolean" label="Use uncheck top concepts" labelKey="use_uncheck_top.LABEL"/>
      <Property name="language" valueType="string" defaultValue="en" label="Language" labelKey="language.LABEL"/>
      <Property name="template_name" valueType="string" label="Template name" labelKey="template_name.LABEL"/>
      <Property name="template_language" valueType="string"/>
      <Property name="template_data" valueType="string"/>
      <Property name="load_template" valueType="boolean" defaultValue="true" label="Load" labelKey="load_template.LABEL"/>
      <Property name="template_project" valueType="string"/>
	  <Property name="template_loaded_timestamp" valueType="string"/>
      <Property name="reuse_extraction_results" valueType="boolean" defaultValue="false" label="Reuse cached data and results" labelKey="reuse_extraction_results.LABEL"/>
      <Property name="tap_name" valueType="string"/>
      <Property name="tap_language" valueType="string"/>
      <Property name="taxonomy_data" valueType="string"/>
      <Property name="tap_loaded_timestamp" valueType="string"/>
      <Property name="reuse_extraction_results_sessionid" valueType="string"/>
	  
      <!-- =========== create categories dialog =========== -->

      <Property name="create_categories_technique_type" type="create_categories_technique_type" defaultValue="Frequency" label="Create categories technique type" labelKey="create_categories_technique_type.LABEL"/>
      <Property name="concept_derivation" valueType="boolean" defaultValue="true" label="Concept derivation" labelKey="concept_derivation.LABEL"/>
      <Property name="concept_inclusion" valueType="boolean" defaultValue="true" label="Concept inclusion" labelKey="concept_inclusion.LABEL"/>
      <Property name="semantic_network" valueType="boolean" defaultValue="true" label="Semantic network" labelKey="semantic_network.LABEL"/>
      <Property name="semantic_network_profile" type="semantic_network_profile" defaultValue="Wider" label="Semantic network profile" labelKey="semantic_network_profile.LABEL"/>
      <Property name="cooccurrence_rules" valueType="boolean" defaultValue="false" label="Cooccurrence rules" labelKey="cooccurrence_rules.LABEL"/>
      <Property name="type_frequency_n" valueType="integer" defaultValue="50" label="Type Frequency N" labelKey="type_frequency_n.LABEL"/>
      <Property name="maximum_category_n" valueType="integer" defaultValue="50" label="Maximum Category N" labelKey="maximum_category_n.LABEL"/>
      <Property name="apply_techniques" type="apply_techniques" defaultValue="Concept" label="Apply Techniques" labelKey="apply_techniques.LABEL"/>

      <Property name="top_concept_n" valueType="integer" defaultValue="5000" label="Top Concept N" labelKey="top_concept_n.LABEL"/>
      <Property name="top_percentage_n" valueType="integer" defaultValue="20" label="Top Percentage N" labelKey="top_percentage_n.LABEL"/>
      <Property name="maximum_categories_per_concept" valueType="integer" defaultValue="1" label="Maximum categories per concept" labelKey="maximum_categories_per_concept.LABEL"/>
      <Property name="minimum_concepts_per_category" valueType="integer" defaultValue="2" label="Maximum categories per concept" labelKey="minimum_concepts_per_category.LABEL"/>
      <Property name="maximum_concepts_per_category" valueType="integer" defaultValue="50" label="Maximum concepts per category" labelKey="maximum_concepts_per_category.LABEL"/>
      <Property name="minimum_link_value_percent" valueType="integer" defaultValue="20" label="Minimum link value percent" labelKey="minimum_link_value_percent.LABEL"/>
      <Property name="maximum_number_concept_per_cooccurrence" valueType="integer" defaultValue="3" label="Maximum number concept per cooccurrence" labelKey="maximum_number_concept_per_cooccurrence.LABEL"/>
      <Property name="cooccurrence_doc_limit" valueType="boolean" defaultValue="true" label="Use doc limit for co-occurrence rules" labelKey="cooccurrence_doc_limit.LABEL"/>
      <Property name="cooccurrence_doc_limit_n" valueType="integer" defaultValue="5000" label="Maximum number of docs to use for calculating co-occurrence rules" labelKey="cooccurrence_doc_limit_n.LABEL"/>

      <!-- =========== Expert tab =========== -->

      <Property name="concept_count_limit" valueType="integer" min="1" label="Concept count limit" labelKey="concept_count_limit.LABEL"/>
      <Property name="fix_punctuation" valueType="boolean" defaultValue="true" label="Accommodate punctuation errors" labelKey="fix_punctuation.LABEL"/>
      <Property name="fix_spelling" valueType="boolean" defaultValue="false" label="Accommodate spelling for a minimum root character limit of" labelKey="fix_spelling.LABEL"/>
      <Property name="spelling_limit" valueType="integer" min="0" defaultValue="5" label="Spelling limit" labelKey="spelling_limit.LABEL"/>
      <Property name="extract_uniterm" valueType="boolean" defaultValue="true" label="Extract uniterms" labelKey="extract_uniterm.LABEL"/>
      <Property name="extract_nonlinguistic" valueType="boolean" defaultValue="true" label="Extract non-linguistic entities" labelKey="extract_nonlinguistic.LABEL"/>
      <Property name="upper_case" valueType="boolean" defaultValue="true" label="Upper-case algorithm" labelKey="upper_case.LABEL"/>
      <Property name="group_names" valueType="boolean" defaultValue="false" label="Group partial and full person names together when possible" labelKey="group_names.LABEL"/>
      <Property name="permutation" valueType="integer" min="0" defaultValue="3" label="Maximum non-function word permutation" labelKey="permutation.LABEL"/>
      <Property name="jp_algorithm" valueType="integer" min="0" defaultValue="0" label="uncover concepts and patterns through sentiments" labelKey="jp_algorithm_sense.LABEL"/>
      <Property name="jp_algorithm_sense_mode" valueType="integer" min="0" defaultValue="1" label="sentiment mode to apply" labelKey="jp_algorithm_sense_mode.LABEL"/>
    </Properties>
    <UserInterface frameClass="com.spss.rosetta.ui.TM4CMainFrame">
	  <Icons>
    	<Icon type="standardWindow" imagePath="tmfc16.gif"/> 
	  </Icons>
	</UserInterface>
  </InteractiveModelBuilder>
  
  <ModelOutput id="TextModel" label="Text Model">
    <Containers>
      <Container name="model"/>
    </Containers>
    <Properties>
      <!-- =========== Model Information - Node specific ===========
           output_model_type = 0 == Concept Model
           output_model_type = 1 == Category Model
           output_model_type = 2 == Categorize Model
        -->
      <Property name="output_model_type" valueType="integer" defaultValue="1"/>
      
      <!-- =========== Imported Categorizer Model Settings tab - Node specific =========== -->
      
      <Property name="imported_model" valueType="boolean" defaultValue="false"/>
      <Property name="num_categories" valueType="integer" defaultValue="0"/>
      <Property name="return_contributions" valueType="boolean" defaultValue="true"/>
      <Property name="num_contributions" valueType="integer" defaultValue="0"/>
      <Property name="calc_confidences" valueType="boolean" defaultValue="true"/>
      <Property name="confidence" valueType="integer" defaultValue="0">
        <!--
            confidence 0 = Summation
            confidence 1 = Weight (Single)
            
            &lt;Enumeration&gt;
              &lt;Enum value=&quot;Summation&quot;  label=&quot;Summation&quot; /&gt;
              &lt;Enum value=&quot;Single&quot; label=&quot;Single prediction&quot; /&gt;
            &lt;/Enumeration&gt; 
            -->
      </Property>
      <Property name="min_confidence_summation" valueType="integer" defaultValue="0"/>
      <Property name="min_confidence_single" valueType="integer" defaultValue="0"/>
      <Property name="min_frequency" valueType="integer" defaultValue="0"/>
      
      
      <!-- =========== debug information =========== -->
      <Property name="debug_on" valueType="boolean" defaultValue="false"/>
      
      <!-- =========== fields tab =========== -->
      <Property name="text" valueType="string" label="Text field" labelKey="text.LABEL"/>
      <Property name="method" type="method" defaultValue="ReadText" label="Text field represents" labelKey="method.LABEL"/>
      <Property name="docType" type="docType" defaultValue="0" label="Document type" labelKey="docType.LABEL"/>
      <Property name="unity" type="unity" defaultValue="1" label="Textual unity" labelKey="unity.LABEL"/>
      <Property name="para_min" valueType="integer" min="1" label="Minimum" labelKey="para_min.LABEL"/>
      <Property name="para_max" valueType="integer" min="1" defaultValue="300" label="Maximum" labelKey="para_max.LABEL"/>
      <Property name="encoding" type="encoding" defaultValue="auto" label="Input encoding" labelKey="encoding.LABEL"/>
      <Property name="custom_field" valueType="boolean" defaultValue="false" label="Partition Mode" labelKey="custom_field.LABEL"/>
      <Property name="partition" valueType="string" label="Partition" labelKey="partition.LABEL"/>

      <!-- =========== document settings tab =========== -->

      <Property name="mtag" valueType="string" label="XML Text Formatting" labelKey="mtag.LABEL"/>
      <Property name="mclef" valueType="string" label="Structured Text Formatting" labelKey="mclef.LABEL"/>

      <!-- =========== model tab =========== -->
      
      <Property name="use_model_name" valueType="boolean" label="Use model name" labelKey="use_model_name.LABEL"/>
      <Property name="model_name" valueType="string" label="Model name" labelKey="model_name.LABEL"/>
      <Property name="use_partitioned_data" valueType="boolean" label="Use partitioned data" labelKey="use_partitioned_data.LABEL"/>
      
      <Property name="model_output_type" type="model_output_type" label="Mode" labelKey="model_output_type.LABEL"/>
      <Property name="use_interactive_info" valueType="boolean" defaultValue="true" label="Use saved interactive session" labelKey="use_interactive_info.LABEL"/>
      <Property name="interactive_view" type="interactive_view" defaultValue="Categories" label="Begin workbench by" labelKey="interactive_view.MODEL"/>
      <Property name="model_type" type="model_type" defaultValue="Concept" label="Model type" labelKey="model_type.LABEL"/>
      <Property name="extract_top" valueType="integer" min="0" defaultValue="500" label="Top concepts" labelKey="extract_top.LABEL"/>
      <Property name="check_top" valueType="integer" min="0" defaultValue="75" label="Check top concepts" labelKey="check_top.LABEL"/>
      <Property name="uncheck_top" valueType="integer" min="0" defaultValue="95" label="Uncheck top concepts" labelKey="uncheck_top.LABEL"/>
      <Property name="use_check_top" valueType="boolean" label="Use check top concepts" labelKey="use_check_top.LABEL"/>
      <Property name="use_minimal_model" valueType="boolean"  defaultValue="true" label="Optimise for speed of scoring" labelKey="use_minimal_model.LABEL"/>
      <Property name="use_uncheck_top" valueType="boolean" label="Use uncheck top concepts" labelKey="use_uncheck_top.LABEL"/>
      <Property name="language" valueType="string" defaultValue="en" label="Language" labelKey="language.LABEL"/>
      <Property name="template_name" valueType="string" label="Template name" labelKey="template_name.LABEL"/>
      <Property name="template_language" valueType="string"/>
      <Property name="template_data" valueType="string"/>
      <Property name="load_template" valueType="boolean" defaultValue="true" label="Load" labelKey="load_template.LABEL"/>
      <Property name="template_project" valueType="string"/>
	  <Property name="template_loaded_timestamp" valueType="string"/>
      <Property name="reuse_extraction_results" valueType="boolean" defaultValue="false" label="Reuse cached data and results" labelKey="reuse_extraction_results.LABEL"/>
      <Property name="tap_name" valueType="string"/>
      <Property name="tap_language" valueType="string"/>
      <Property name="taxonomy_data" valueType="string"/>
      <Property name="tap_loaded_timestamp" valueType="string"/>
      <Property name="reuse_extraction_results_sessionid" valueType="string"/>
	  
      <!-- =========== create categories dialog =========== -->

      <Property name="create_categories_technique_type" type="create_categories_technique_type" defaultValue="Frequency" label="Create categories technique type" labelKey="create_categories_technique_type.LABEL"/>
      <Property name="concept_derivation" valueType="boolean" defaultValue="true" label="Concept derivation" labelKey="concept_derivation.LABEL"/>
      <Property name="concept_inclusion" valueType="boolean" defaultValue="true" label="Concept inclusion" labelKey="concept_inclusion.LABEL"/>
      <Property name="semantic_network" valueType="boolean" defaultValue="true" label="Semantic network" labelKey="semantic_network.LABEL"/>
      <Property name="semantic_network_profile" type="semantic_network_profile" defaultValue="Wider" label="Semantic network profile" labelKey="semantic_network_profile.LABEL"/>
      <Property name="cooccurrence_rules" valueType="boolean" defaultValue="false" label="Cooccurrence rules" labelKey="cooccurrence_rules.LABEL"/>
      <Property name="type_frequency_n" valueType="integer" defaultValue="50" label="Type Frequency N" labelKey="type_frequency_n.LABEL"/>
      <Property name="maximum_category_n" valueType="integer" defaultValue="50" label="Maximum Category N" labelKey="maximum_category_n.LABEL"/>
      <Property name="apply_techniques" type="apply_techniques" defaultValue="Concept" label="Apply Techniques" labelKey="apply_techniques.LABEL"/>

      <Property name="top_concept_n" valueType="integer" defaultValue="5000" label="Top Concept N" labelKey="top_concept_n.LABEL"/>
      <Property name="top_percentage_n" valueType="integer" defaultValue="20" label="Top Percentage N" labelKey="top_percentage_n.LABEL"/>
      <Property name="maximum_categories_per_concept" valueType="integer" defaultValue="1" label="Maximum categories per concept" labelKey="maximum_categories_per_concept.LABEL"/>
      <Property name="minimum_concepts_per_category" valueType="integer" defaultValue="2" label="Maximum categories per concept" labelKey="minimum_concepts_per_category.LABEL"/>
      <Property name="maximum_concepts_per_category" valueType="integer" defaultValue="50" label="Maximum concepts per category" labelKey="maximum_concepts_per_category.LABEL"/>
      <Property name="minimum_link_value_percent" valueType="integer" defaultValue="20" label="Minimum link value percent" labelKey="minimum_link_value_percent.LABEL"/>
      <Property name="maximum_number_concept_per_cooccurrence" valueType="integer" defaultValue="3" label="Maximum number concept per cooccurrence" labelKey="maximum_number_concept_per_cooccurrence.LABEL"/>
      <Property name="cooccurrence_doc_limit" valueType="boolean" defaultValue="true" label="Use doc limit for co-occurrence rules" labelKey="cooccurrence_doc_limit.LABEL"/>
      <Property name="cooccurrence_doc_limit_n" valueType="integer" defaultValue="5000" label="Maximum number of docs to use for calculating co-occurrence rules" labelKey="cooccurrence_doc_limit_n.LABEL"/>

      <!-- =========== Expert tab =========== -->

      <Property name="concept_count_limit" valueType="integer" min="1" label="Concept count limit" labelKey="concept_count_limit.LABEL"/>
      <Property name="fix_punctuation" valueType="boolean" defaultValue="true" label="Accommodate punctuation errors" labelKey="fix_punctuation.LABEL"/>
      <Property name="fix_spelling" valueType="boolean" defaultValue="false" label="Accommodate spelling for a minimum root character limit of" labelKey="fix_spelling.LABEL"/>
      <Property name="spelling_limit" valueType="integer" min="0" defaultValue="5" label="Spelling limit" labelKey="spelling_limit.LABEL"/>
      <Property name="extract_uniterm" valueType="boolean" defaultValue="true" label="Extract uniterms" labelKey="extract_uniterm.LABEL"/>
      <Property name="extract_nonlinguistic" valueType="boolean" defaultValue="true" label="Extract non-linguistic entities" labelKey="extract_nonlinguistic.LABEL"/>
      <Property name="upper_case" valueType="boolean" defaultValue="true" label="Upper-case algorithm" labelKey="upper_case.LABEL"/>
      <Property name="group_names" valueType="boolean" defaultValue="false" label="Group partial and full person names together when possible" labelKey="group_names.LABEL"/>
      <Property name="permutation" valueType="integer" min="0" defaultValue="3" label="Maximum non-function word permutation" labelKey="permutation.LABEL"/>
      <Property name="jp_algorithm" valueType="integer" min="0" defaultValue="0" label="uncover concepts and patterns through sentiments" labelKey="jp_algorithm_sense.LABEL"/>
      <Property name="jp_algorithm_sense_mode" valueType="integer" min="0" defaultValue="1" label="sentiment mode to apply" labelKey="jp_algorithm_sense_mode.LABEL"/>
    </Properties>        
    <UserInterface actionHandler="com.spss.tmwb.buildnode.actions.MenuHandler">
      <Controls>
        <MenuItem action="copyConcepts" systemMenu="Edit" showIcon="false"/>
        <MenuItem action="selectAllConcepts" systemMenu="Edit" showIcon="false"/>
        <MenuItem action="clearConceptSelection" systemMenu="Edit" showIcon="false"/>
      </Controls>
      
      <Icons>
        <Icon type="smallNode" imagePath="sm_gm_tm.gif"/>
        <Icon type="standardNode" imagePath="lg_gm_tm.gif"/>
    	<Icon type="standardWindow" imagePath="tmfc16.gif"/> 
      </Icons>
      <Tabs>
        <!-- The first tab uses a model panel class provided by the JAR file. Because the  -->
		<Tab label="Model" labelKey="modelTab.LABEL" helpLink="textmining/tmfc/textmining_category_model_general.htm">
		  <ExtensionObjectPanel id="modelPanel" panelClass="com.spss.tmwb.buildnode.panels.ModelDisplayPanel"/>
		</Tab>
      </Tabs>
    </UserInterface>
    <Constructors>
      <CreateModelApplier type="TMWBModelApplier">
        <SetContainer target="model" source="model"/>
      </CreateModelApplier>
    </Constructors>
  </ModelOutput>
  <Node id="TMWBModelApplier" helpLink="textmining/tmfc/textmining_output_general.htm" type="modelApplier" label="Text Mining" labelKey="textminingnode.LABEL">
    <Containers>
      <Container name="model"/>
    </Containers>
    <Constructors>
      <CreateModelOutput type="TextModel"/>
    </Constructors>
    <Properties>
      
      <!-- =========== Model Information - Node specific ===========
           output_model_type = 0 == Concept Model
           output_model_type = 1 == Category Model
           output_model_type = 2 == Categorize Model
        -->
      <Property name="output_model_type" valueType="integer"/>

      <!-- =========== Imported Categorizer Model Settings tab - Node specific =========== -->
      
      <Property name="imported_model" valueType="boolean" defaultValue="false"/>
      <Property name="num_categories" valueType="integer" defaultValue="0"/>
      <Property name="return_contributions" valueType="boolean" defaultValue="true"/>
      <Property name="num_contributions" valueType="integer" defaultValue="0"/>
      <Property name="calc_confidences" valueType="boolean" defaultValue="true"/>
      <Property name="confidence" valueType="integer" defaultValue="0">
        <!--
            confidence 0 = Summation
            confidence 1 = Weight (Single)
            
            &lt;Enumeration&gt;
              &lt;Enum value=&quot;Summation&quot;  label=&quot;Summation&quot; /&gt;
              &lt;Enum value=&quot;Single&quot; label=&quot;Single prediction&quot; /&gt;
            &lt;/Enumeration&gt; 
            -->
      </Property>
      <Property name="min_confidence_summation" valueType="integer" defaultValue="0"/>
      <Property name="min_confidence_single" valueType="integer" defaultValue="0"/>
      <Property name="min_frequency" valueType="integer" defaultValue="0"/>

      <!-- =========== model output tab - Node specific =========== -->
      <Property name="selected_categories" isList="true" valueType="string"/>
      
      <!-- =========== Settings tab - Node specific =========== -->
      <Property name="scoring_mode" type="scoring_mode" defaultValue="Fields"/>
      <Property name="field_values" type="field_values" defaultValue="Flags"/>
      <Property name="true_value"         valueType="string" defaultValueKey="true.LABEL"/>
      <Property name="false_value"        valueType="string" defaultValueKey="false.LABEL"/>
      <Property name="extension" 	  valueType="string" defaultValueKey=""/>
      <Property name="extension_category" valueType="string" defaultValueKey="extensionCategory.LABEL"/>
      <Property name="extension_concept"  valueType="string" defaultValueKey="extensionConcept.LABEL"/>
      <Property name="add_as" type="add_as" defaultValue="Prefix"/>
      <Property name="category_codes" type="category_codes" defaultValue="NotUsed"/>
      <Property name="category_path" type="category_path" defaultValue="Full"/>
      <Property name="excluded_subcategories_descriptors" type="excluded_subcategories_descriptors" defaultValue="Ignore"/>


      <!-- =========== debug information =========== -->
      <Property name="debug_on" valueType="boolean" defaultValue="false"/>
      
      <!-- =========== fields tab =========== -->
      <Property name="text" valueType="string" label="Text field" labelKey="text.LABEL"/>
      <Property name="method" type="method" defaultValue="ReadText" label="Text field represents" labelKey="method.LABEL"/>
      <Property name="docType" type="docType" defaultValue="0" label="Document type" labelKey="docType.LABEL"/>
      <Property name="unity" type="unity" defaultValue="1" label="Textual unity" labelKey="unity.LABEL"/>
      <Property name="para_min" valueType="integer" min="1" label="Minimum" labelKey="para_min.LABEL"/>
      <Property name="para_max" valueType="integer" min="1" defaultValue="300" label="Maximum" labelKey="para_max.LABEL"/>
      <Property name="encoding" type="encoding" defaultValue="auto" label="Input encoding" labelKey="encoding.LABEL"/>
      <Property name="custom_field" valueType="boolean" defaultValue="false" label="Partition Mode" labelKey="custom_field.LABEL"/>
      <Property name="partition" valueType="string" label="Partition" labelKey="partition.LABEL"/>

      <!-- =========== document settings tab =========== -->

      <Property name="mtag" valueType="string" label="XML Text Formatting" labelKey="mtag.LABEL"/>
      <Property name="mclef" valueType="string" label="Structured Text Formatting" labelKey="mclef.LABEL"/>

      <!-- =========== model tab =========== -->
      
      <Property name="use_model_name" valueType="boolean" label="Use model name" labelKey="use_model_name.LABEL"/>
      <Property name="model_name" valueType="string" label="Model name" labelKey="model_name.LABEL"/>
      <Property name="use_partitioned_data" valueType="boolean" label="Use partitioned data" labelKey="use_partitioned_data.LABEL"/>
      
      <Property name="model_output_type" type="model_output_type" label="Mode" labelKey="model_output_type.LABEL"/>
      <Property name="use_interactive_info" valueType="boolean" defaultValue="true" label="Use saved interactive session" labelKey="use_interactive_info.LABEL"/>
      <Property name="interactive_view" type="interactive_view" defaultValue="Categories" label="Begin workbench by" labelKey="interactive_view.MODEL"/>
      <Property name="model_type" type="model_type" defaultValue="Concept" label="Model type" labelKey="model_type.LABEL"/>
      <Property name="extract_top" valueType="integer" min="0" defaultValue="500" label="Top concepts" labelKey="extract_top.LABEL"/>
      <Property name="check_top" valueType="integer" min="0" defaultValue="75" label="Check top concepts" labelKey="check_top.LABEL"/>
      <Property name="uncheck_top" valueType="integer" min="0" defaultValue="95" label="Uncheck top concepts" labelKey="uncheck_top.LABEL"/>
      <Property name="use_check_top" valueType="boolean" label="Use check top concepts" labelKey="use_check_top.LABEL"/>
      <Property name="use_uncheck_top" valueType="boolean" label="Use uncheck top concepts" labelKey="use_uncheck_top.LABEL"/>
      <Property name="use_minimal_model" defaultValue="true" valueType="boolean" label="Optimise for speed of scoring" labelKey="use_minimal_model.LABEL"/>
      <Property name="language" valueType="string" defaultValue="en" label="Language" labelKey="language.LABEL"/>
      <Property name="template_name" valueType="string" label="Template name" labelKey="template_name.LABEL"/>
      <Property name="template_language" valueType="string"/>
      <Property name="template_data" valueType="string"/>
      <Property name="load_template" valueType="boolean" defaultValue="true" label="Load" labelKey="load_template.LABEL"/>
      <Property name="template_project" valueType="string"/>
	    <Property name="template_loaded_timestamp" valueType="string"/>
      <Property name="reuse_extraction_results" valueType="boolean" defaultValue="false" label="Reuse cached data and results" labelKey="reuse_extraction_results.LABEL"/>
      <Property name="tap_name" valueType="string"/>
      <Property name="tap_language" valueType="string"/>
      <Property name="taxonomy_data" valueType="string"/>
      <Property name="tap_loaded_timestamp" valueType="string"/>
      <Property name="reuse_extraction_results_sessionid" valueType="string"/>
	  
      <!-- =========== create categories dialog =========== -->

      <Property name="create_categories_technique_type" type="create_categories_technique_type" defaultValue="Frequency" label="Create categories technique type" labelKey="create_categories_technique_type.LABEL"/>
      <Property name="concept_derivation" valueType="boolean" defaultValue="true" label="Concept derivation" labelKey="concept_derivation.LABEL"/>
      <Property name="concept_inclusion" valueType="boolean" defaultValue="true" label="Concept inclusion" labelKey="concept_inclusion.LABEL"/>
      <Property name="semantic_network" valueType="boolean" defaultValue="true" label="Semantic network" labelKey="semantic_network.LABEL"/>
      <Property name="semantic_network_profile" type="semantic_network_profile" defaultValue="Wider" label="Semantic network profile" labelKey="semantic_network_profile.LABEL"/>
      <Property name="cooccurrence_rules" valueType="boolean" defaultValue="false" label="Cooccurrence rules" labelKey="cooccurrence_rules.LABEL"/>
      <Property name="type_frequency_n" valueType="integer" defaultValue="50" label="Type Frequency N" labelKey="type_frequency_n.LABEL"/>
      <Property name="maximum_category_n" valueType="integer" defaultValue="50" label="Maximum Category N" labelKey="maximum_category_n.LABEL"/>
      <Property name="apply_techniques" type="apply_techniques" defaultValue="Concept" label="Apply Techniques" labelKey="apply_techniques.LABEL"/>

      <Property name="top_concept_n" valueType="integer" defaultValue="5000" label="Top Concept N" labelKey="top_concept_n.LABEL"/>
      <Property name="top_percentage_n" valueType="integer" defaultValue="20" label="Top Percentage N" labelKey="top_percentage_n.LABEL"/>
      <Property name="maximum_categories_per_concept" valueType="integer" defaultValue="1" label="Maximum categories per concept" labelKey="maximum_categories_per_concept.LABEL"/>
      <Property name="minimum_concepts_per_category" valueType="integer" defaultValue="2" label="Maximum categories per concept" labelKey="minimum_concepts_per_category.LABEL"/>
      <Property name="maximum_concepts_per_category" valueType="integer" defaultValue="50" label="Maximum concepts per category" labelKey="maximum_concepts_per_category.LABEL"/>
      <Property name="minimum_link_value_percent" valueType="integer" defaultValue="20" label="Minimum link value percent" labelKey="minimum_link_value_percent.LABEL"/>
      <Property name="maximum_number_concept_per_cooccurrence" valueType="integer" defaultValue="3" label="Maximum number concept per cooccurrence" labelKey="maximum_number_concept_per_cooccurrence.LABEL"/>
      <Property name="cooccurrence_doc_limit" valueType="boolean" defaultValue="true" label="Use doc limit for co-occurrence rules" labelKey="cooccurrence_doc_limit.LABEL"/>
      <Property name="cooccurrence_doc_limit_n" valueType="integer" defaultValue="5000" label="Maximum number of docs to use for calculating co-occurrence rules" labelKey="cooccurrence_doc_limit_n.LABEL"/>

      <!-- =========== Expert tab =========== -->

      <Property name="concept_count_limit" valueType="integer" min="1" label="Concept count limit" labelKey="concept_count_limit.LABEL"/>
      <Property name="fix_punctuation" valueType="boolean" defaultValue="true" label="Accommodate punctuation errors" labelKey="fix_punctuation.LABEL"/>
      <Property name="fix_spelling" valueType="boolean" defaultValue="false" label="Accommodate spelling for a minimum root character limit of" labelKey="fix_spelling.LABEL"/>
      <Property name="spelling_limit" valueType="integer" min="0" defaultValue="5" label="Spelling limit" labelKey="spelling_limit.LABEL"/>
      <Property name="extract_uniterm" valueType="boolean" defaultValue="true" label="Extract uniterms" labelKey="extract_uniterm.LABEL"/>
      <Property name="extract_nonlinguistic" valueType="boolean" defaultValue="true" label="Extract non-linguistic entities" labelKey="extract_nonlinguistic.LABEL"/>
      <Property name="upper_case" valueType="boolean" defaultValue="true" label="Upper-case algorithm" labelKey="upper_case.LABEL"/>
      <Property name="group_names" valueType="boolean" defaultValue="false" label="Group partial and full person names together when possible" labelKey="group_names.LABEL"/>
      <Property name="permutation" valueType="integer" min="0" defaultValue="3" label="Maximum non-function word permutation" labelKey="permutation.LABEL"/>
      <Property name="jp_algorithm" valueType="integer" min="0" defaultValue="0" label="uncover concepts and patterns through sentiments" labelKey="jp_algorithm_sense.LABEL"/>
      <Property name="jp_algorithm_sense_mode" valueType="integer" min="0" defaultValue="1" label="sentiment mode to apply" labelKey="jp_algorithm_sense_mode.LABEL"/>
    </Properties>
    <UserInterface actionHandler="com.spss.tmwb.buildnode.actions.MenuHandler">
      <Icons>
        <Icon type="smallNode" imagePath="sm_gm_tm.gif"/>
        <Icon type="standardNode" imagePath="lg_gm_tm.gif"/>
    	<Icon type="standardWindow" imagePath="tmfc16.gif"/> 
      </Icons>
      <Controls>
        <MenuItem action="copyConcepts" systemMenu="Edit" showIcon="false"/>
        <MenuItem action="selectAllConcepts" systemMenu="Edit" showIcon="false"/>
        <MenuItem action="clearConceptSelection" systemMenu="Edit" showIcon="false"/>
      </Controls>
      
      <Tabs>
        <!-- Model tab-->
		<Tab label="Model" labelKey="modelTab.LABEL" helpLink="textmining/tmfc/textmining_category_model_general.htm">
          <!--
			  &lt;Enabled&gt;
				&lt;Condition control=&quot;imported_model&quot; op=&quot;equals&quot; value=&quot;true&quot;/&gt;
			  &lt;/Enabled&gt;
			  -->
          <ExtensionObjectPanel id="modelPanel" panelClass="com.spss.tmwb.buildnode.panels.ModelDisplayPanel"/>
		</Tab>
        <!-- Setting tab-->
		<Tab label="Settings" labelKey="settingsTab.LABEL" helpLink="textmining/tmfc/textmining_output_settings.htm">
          <!-- &lt;ExtensionObjectPanel id=&quot;settingsPanel&quot; panelClass=&quot;com.spss.tmwb.buildnode.panels.ModelOutputSettingsPanel&quot;/&gt; -->
          <ExtensionObjectPanel id="settingsPanel" panelClass="com.spss.tmwb.buildnode.panels.ModelSettingsPanel"/>
		</Tab>
        <!-- Fields tab-->
		<Tab label="Fields" labelKey="fieldsTab.LABEL" helpLink="textmining/tmfc/textmining_output_fields.htm">
          <PropertiesPanel>
            <SingleFieldChooserControl property="text" label="Text field" labelKey="text.LABEL"/>

            <RadioButtonGroupControl property="method" label="Text field represents" labelKey="method.LABEL" rows="1">
              <Layout gridColumn="0" gridWidth="2"/>
            </RadioButtonGroupControl>

            <ComboBoxControl property="docType" label="Document type" labelKey="docType.LABEL">
              <Layout rowIncrement="0" gridWidth="1"/>
              <Enabled>
                <Condition control="method" op="equals" value="ReadPath"/>
              </Enabled>
            </ComboBoxControl>

            <PropertiesSubPanel buttonLabel="Settings..." buttonLabelKey="AdditionalSettings.LABEL" helpLink="textmining/tmfc/textmining_fields_docsettings.htm" dialogTitle="Text Mining: Document Settings" dialogTitleKey="DocumentSettingsDialog.LABEL">
              <Enabled>
                <And>
                  <Condition control="method" op="equals" value="ReadPath"/>
                  <Or>
                    <Condition control="docType" op="equals" value="1"/>
                    <Condition control="docType" op="equals" value="2"/>
                  </Or>
                </And>
              </Enabled>
              <Layout rowIncrement="1" gridColumn="3" gridWidth="1"/>
              <TextAreaControl property="mclef" rows="5" columns="20" labelAbove="true">
                <Enabled>
                  <Condition control="docType" op="equals" value="1"/>
                </Enabled>
              </TextAreaControl>
              <TextAreaControl property="mtag" rows="5" columns="20" labelAbove="true">
                <Enabled>
                  <Condition control="docType" op="equals" value="2"/>
                </Enabled>
              </TextAreaControl>
            </PropertiesSubPanel>

            <ComboBoxControl property="encoding" label="Input encoding" labelKey="encoding.LABEL">
              <Enabled>
                <Condition control="method" op="equals" value="ReadPath"/>
              </Enabled>
            </ComboBoxControl>

            <PropertiesPanel>
		<ExtensionObjectPanel id="panelModelApplier" panelClass="com.spss.tmwb.buildnode.panels.ModelApplierLanguagePanel"/>
            </PropertiesPanel>

          </PropertiesPanel>
		</Tab>
     </Tabs>
    </UserInterface>
    <Execution>
      <Properties>
        <Property name="tempfile" valueType="string">
          <DefaultValue>
            <ServerTempFile basename="tmwbtmp"/>
          </DefaultValue>
        </Property>
      </Properties>
      <InputFiles>
        <ContainerFile id="spssml" path="${tempfile}.xml" container="model"/>
      </InputFiles>
      <Module libraryId="TMWBModel" name="" aslFunctionProvider="com.spss.tmwb.applynode.actions.TMWBModelAslFunctionProvider">
        <StatusCodes>
		  <StatusCode code="0" status="error" message="Initialization Error" messageKey="initError.LABEL"/>
		  <StatusCode code="1" status="error" message="Internal Error" messageKey="internalError.LABEL"/>
          <StatusCode code="2" status="error" message="Invalid input field type" messageKey="invalidInputFieldTypeError.LABEL"/>
          <StatusCode code="3" status="error" message="Invalid Metadata" messageKey="invalidMetadataError.LABEL"/>
		  <StatusCode code="4" status="error" message="Missing Resource template" messageKey="missingTemplateError.LABEL"/>
		  <StatusCode code="5" status="error" message="Template is not well formed" messageKey="invalidTemplateError.LABEL"/>
          <StatusCode code="6" status="error" message="No TLA patterns found in template" messageKey="noTLAInTemplateError.LABEL"/>
		  <StatusCode code="7" status="error" message="No values for &apos;Structured Text Formatting&apos; defined" messageKey="noStructuredTextFormattingError.LABEL"/>
		  <StatusCode code="8" status="error" message="No values for &apos;XML Text Formatting&apos; defined" messageKey="noXMLTextFormattingError.LABEL"/>
		  <StatusCode code="9" status="error" message="Missing or invalid IBM SPSS Text Analytics license" messageKey="missingTMFCLicenseError.LABEL"/>
		  <StatusCode code="10" status="error" message="No valid license was found for the language selected in the node. This product must be licensed for each language you intend to use" messageKey="missingLanguageLicenseError.LABEL"/>
          <StatusCode code="11" status="error" message="Invalid model type" messageKey="invalidModelTypeError.LABEL"/>
        </StatusCodes>
      </Module>
    </Execution>
    <OutputDataModel mode="modify" method="sharedLibrary" libraryId="TMWBModel">
    </OutputDataModel>
  </Node>
</Extension>