

<QuickAppConfig Name="HTMLFederatedDemo">

 <FieldSpecs>

    <Field>
      <ID>AU</ID>
      <Name>Author</Name>
      <Type>AlphaNumeric</Type>
    </Field>

    <Field>
      <ID>CN</ID>
      <Name>Company Name</Name>
      <Type>AlphaNumeric</Type>
    </Field>



    <Field>
       <ID>TI</ID>
       <Name>Article Title</Name>
       <Type>AlphaNumeric</Type>
    </Field>

    <Field>
      <ID>KY</ID>
      <Name>Keywords</Name>
      <Type>AlphaNumeric</Type>
    </Field>


  </FieldSpecs>


  <SearchForms>
    <SearchForm name="AdvancedSearch" UIGeneratorClass="com.raritantechnologies.searchApp.UIGenerator.FederatedAdvSearchPageWriter" >
     
     <Field ID="TI" type="text" width="50" name="AdvancedSearchTitle" />
     <Field ID="AU" type="text" width="50" name="AdvancedSearchAuthor" />
     <Field ID="KY" type="text" width="50" name="AdvancedSearchKeywords" />
     <Field ID="CN" type="text" width="50" name="AdvancedSearchCompany" />


     <DisplayOptions>
       <PageSize>
           <Option value="10" default="true" />
           <Option value="20"  />
           <Option value="50"  />
       </PageSize>

       <!-- may want to have sort order here... -->
       <SortControl>
           <Option field="relevance" default="on" />
           <Option field="PF" default="off"  />
       </SortControl>
     </DisplayOptions>

    </SearchForm>
  </SearchForms>

  <DisplayForms>
    <DisplayForm name="brief" UIGeneratorClass="com.raritantechnologies.searchApp.UIGenerator.FederatedResultsPageWriter" >
      <Field ID="TI" type="text" width="50" />
      <Field ID="AU" type="text" width="50" />
      <Field ID="KY" type="text" width="50" />
    </DisplayForm>
  </DisplayForms>


  <SourceType name="USPatentOffice" type="HTMLSearchSource" displayName="United States Patent Office"
              sourceFactoryClass="com.raritantechnologies.federated.html.HTMLSearchSourceFactory" 
              queryProcessor="com.raritantechnologies.federated.html.HTMLQueryProcessor" >

    <Fields>
      <!-- Need USPTO Name formatting... -->
      <!-- FormatField value="{(AU)IN/_AU_}{(AND AU,TI) AND }{(TI)TTL/_TI_}{(AND KY,(OR AU,TI)) AND }{(KY)ABST/_KY_}"
                   xPath="/SearchProcess/Step/params/param[@formName='Query']/@value"  -->

      <FormatField value="{(KY)ABST/_KY_}"
                   xPath="/SearchProcess/Step/params/param[@formName='Query']/@value"  />
    </Fields>

    <SecurityModel>
       <search>Public</search>
       <fullText>Public</fullText>
    </SecurityModel>

    <SearchProcess>
      <Step type="getURLSocket" URL="http://patft.uspto.gov/netacgi/nph-Parser" >
        <params>
          <param formName="Sect1" value="PTO2" />
          <param formName="Sect2" value="HITOFF" />
          <param formName="u" value="/netahtml/search-adv.htm" />
          <param formName="r" value="0" /> 
          <param formName="p" value="1" />
          <param formName="f" value="S" /> 
          <param formName="l" value="10" />

          <!-- ptxt    1976 to present [full-text]
               pall    1790 to present [entire database]
               o179    1790 to 1975 [PN and CCL only] -->
          <param formName="Query" value=""  />
          <param formName="d" value="ptxt" />

        </params>
      </Step>
    </SearchProcess>

    <PageProcess mapFrom="/Records/Page" method="TagMap" pageSize="10" >
      <TotalDocs mapFrom="/Records/Page/TotalDocs" />
      <Step type="getURLSocket" URL="http://patft.uspto.gov/netacgi/nph-Parser" >
        <params>
         <param formName="Sect1" value="PTO2" />
          <param formName="Sect2" value="HITOFF" />
          <param formName="u" value="/netahtml/search-adv.htm" />
          <param formName="r" value="0" /> 
          <param formName="p" computeFrom="PAGE_NUM" />
          <param formName="f" value="S" /> 
          <param formName="l" value="10" />

          <param formName="Query" value=""  />
          <param formName="d" value="ptxt" />
        </params>
      </Step>
    </PageProcess>

    <ScraperConfigFile>USPTOScraperConfig.xml</ScraperConfigFile>
    <OutputTransformer>USPTOOutputTransform.xsl</OutputTransformer>

  </SourceType>

  <SourceType name="CompanyUSPatents" type="HTMLSearchSource" displayName="United States Patent Office"
              sourceFactoryClass="com.raritantechnologies.federated.html.HTMLSearchSourceFactory" 
              queryProcessor="com.raritantechnologies.federated.html.HTMLQueryProcessor" >

    <Fields>
      <!-- Need USPTO Name formatting... -->
      <FormatField value="{(CN)AN/_CN_}"
                   xPath="/SearchProcess/Step/params/param[@formName='Query']/@value" />
    </Fields>

    <SecurityModel>
       <search>Public</search>
       <fullText>Public</fullText>
    </SecurityModel>

    <SearchProcess>
      <Step type="getURLSocket" URL="http://patft.uspto.gov/netacgi/nph-Parser" >
        <params>
          <param formName="Sect1" value="PTO2" />
          <param formName="Sect2" value="HITOFF" />
          <param formName="u" value="/netahtml/search-adv.htm" />
          <param formName="r" value="0" /> 
          <param formName="p" value="1" />
          <param formName="f" value="S" /> 
          <param formName="l" value="10" />

          <!-- ptxt    1976 to present [full-text]
               pall    1790 to present [entire database]
               o179    1790 to 1975 [PN and CCL only] -->
          <param formName="Query" value="" />
          <param formName="d" value="ptxt" />

        </params>
      </Step>
    </SearchProcess>

    <PageProcess mapFrom="/Records/Page" method="TagMap" pageSize="10" >
      <TotalDocs mapFrom="/Records/Page/TotalDocs" />
      <Step type="getURLSocket" URL="http://patft.uspto.gov/netacgi/nph-Parser" >
        <params>
         <param formName="Sect1" value="PTO2" />
          <param formName="Sect2" value="HITOFF" />
          <param formName="u" value="/netahtml/search-adv.htm" />
          <param formName="r" value="0" /> 
          <param formName="p" computeFrom="PAGE_NUM" />
          <param formName="f" value="S" /> 
          <param formName="l" value="10" />

          <param formName="Query" value=""  />
          <param formName="d" value="ptxt" />
        </params>
      </Step>
    </PageProcess>

    <ScraperConfigFile>USPTOScraperConfig.xml</ScraperConfigFile>
    <OutputTransformer>USPTOOutputTransform.xsl</OutputTransformer>

  </SourceType>

</QuickAppConfig>
