<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to CrawlSpec</title><link>https://sourceforge.net/p/arcomem/wiki/CrawlSpec/</link><description>Recent changes to CrawlSpec</description><atom:link href="https://sourceforge.net/p/arcomem/wiki/CrawlSpec/feed" rel="self"/><language>en</language><lastBuildDate>Wed, 19 Feb 2014 00:26:17 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/arcomem/wiki/CrawlSpec/feed" rel="self" type="application/rss+xml"/><item><title>CrawlSpec modified by John Arcoman</title><link>https://sourceforge.net/p/arcomem/wiki/CrawlSpec/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="crawl-specifications"&gt;Crawl Specifications&lt;/h1&gt;
&lt;p&gt;The crawler cockpit is the user interface to the crawler system that has&lt;br /&gt;
been developed within the ARCOMEM system. It provides the means to set up&lt;br /&gt;
crawl campaigns, to see their progress and peruse intermediate results.&lt;br /&gt;
The means for transferring the campaign configuration from the crawler cockpit&lt;br /&gt;
to the ARCOMEM analysis system is via crawl specifications. These data&lt;br /&gt;
structures store information that determines how the system will guide the&lt;br /&gt;
crawl.&lt;/p&gt;
&lt;p&gt;Crawl specifications are immutable – that is, once they are written they&lt;br /&gt;
cannot be changed. New crawl specifications are generated when changes are&lt;br /&gt;
made to a specification. This is a pragmatic decision that allows individual&lt;br /&gt;
analysis results to be linked directly to specific crawl specifications (if&lt;br /&gt;
they were mutable it would not be possible).  Each new crawl specification is&lt;br /&gt;
given a new identifier and contains “sub-specifications” for the configuration&lt;br /&gt;
of the different parts of the ARCOMEM system.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Crawl Specification" src="../crawl-spec.png" title="Crawl Specification" /&gt;&lt;/p&gt;
&lt;p&gt;The crawl specification design has been implemented as Java classes in the&lt;br /&gt;
ARCOMEM project\'s &lt;code&gt;crawl-specification&lt;/code&gt; sub-module. These allow the use of Java&lt;br /&gt;
to generate crawl specifications and convert them into and out of JSON or RDF.&lt;br /&gt;
There\'s a full example of the object use in the jUnit test&lt;br /&gt;
&lt;code&gt;CrawlSpecificationTest&lt;/code&gt; in the crawl-specification sub-module of the ARCOMEM&lt;br /&gt;
codebase.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;    &lt;span class="c1"&gt;// Instantiate the container&lt;/span&gt;
    &lt;span class="n"&gt;this.crawlSpecification&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;CrawlSpecification&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="c1"&gt;// Main crawl specification&lt;/span&gt;
    &lt;span class="n"&gt;this.crawlSpecification.campaignIdentifier&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
            &lt;span class="nx"&gt;URI.create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;RDF.ARCO&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;campaign1&amp;quot;&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;this.crawlSpecification.crawlSpecificationIdentifier&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
            &lt;span class="nx"&gt;URI.create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;RDF.ARCO&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;crawlSpecification1&amp;quot;&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;this.crawlSpecification.crawlStartDate&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;2012-12-01&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;this.crawlSpecification.crawlEndDate&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;2012-12-31&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="c1"&gt;// API Crawler configuration&lt;/span&gt;
    &lt;span class="n"&gt;this.crawlSpecification.apiCrawlSpec&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
            &lt;span class="nb"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;APICrawlSpecification&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="n"&gt;this.crawlSpecification.apiCrawlSpec.crawlPeriod&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;this.crawlSpecification.apiCrawlSpec.keywords&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
            &lt;span class="nb"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;ArrayList&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;String&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;Arrays.asList&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nb"&gt;new&lt;/span&gt; &lt;span class="kt"&gt;String&lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="cp"&gt;]&lt;/span&gt;{
                &amp;quot;barack&amp;quot;, &amp;quot;obama&amp;quot;,&amp;quot;usa&amp;quot; } ) );
    . . .
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Storing and accessing these crawl specification objects has been made easier&lt;br /&gt;
through the&lt;br /&gt;
&lt;a class="" href="../apidocs/eu/arcomem/framework/crawlspec/CrawlSpecificationFactory"&gt;&lt;code&gt;CrawlSpecificationFactory&lt;/code&gt;&lt;/a&gt;&lt;br /&gt;
class in the ARCOMEM core framework. The framework will deal with getting an&lt;br /&gt;
appropriate crawl specification serializer and retrieving a crawl specification&lt;br /&gt;
when the &lt;a href="../apidocs/eu/arcomem/framework/crawlspec/CrawlSpecificationFactory.html#loadCrawlSpecification%28%29"&gt;&lt;tt&gt;loadCrawlSpecification()&lt;/tt&gt;&lt;/a&gt;&lt;br /&gt;
method is called.&lt;/p&gt;
&lt;p&gt;The API Crawler is not developed in Java. It is based on a Python codebase and&lt;br /&gt;
so these classes are not available.  To make the crawl specification API more&lt;br /&gt;
language agnostic, the crawl specification getters and setters have been&lt;br /&gt;
delegated to an HTTP service that uses JSON for external communication. The&lt;br /&gt;
Java &lt;a class="" href="../apidocs/eu/arcomem/crawlspec/CrawlSpecification"&gt;&lt;code&gt;CrawlSpecification&lt;/code&gt;&lt;/a&gt;&lt;br /&gt;
class has a method that allows conversion directly to and from the JSON required&lt;br /&gt;
for this service.  The Python implementation must produce JSON that conforms to&lt;br /&gt;
the JSON format required for the service. The block below shows the example&lt;br /&gt;
from the &lt;code&gt;CrawlSpecificationTest&lt;/code&gt; jUnit test that’s in the &lt;code&gt;crawl-specification&lt;/code&gt;&lt;br /&gt;
sub-module:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;campaignIdentifier&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;http://crawlspec.arcomem.eu/campaign1&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;crawlSpecificationIdentifier&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;http://crawlspec.arcomem.eu/crawlSpecification1&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;crawlStartDate&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;2012-12-01&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;crawlEndDate&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;2012-12-31&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;apiCrawlSpec&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;crawlPeriod&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;6.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;keywords&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;barack&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;obama&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;usa&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;]},&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;htmlCrawlSpec&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;seedURLs&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;http://news.bbc.co.uk/&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;http://telegraph.co.uk/&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;languagePreferences&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;languageIdentifier&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;en&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;weight&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;},{&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;languageIdentifier&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;*&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;weight&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;}]},&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;onlineAnalysisConfig&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;urlPatterns&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;weight&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;pattern&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;*news*&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;applicationScopes&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;applicationTag&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;blog&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;weight&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;0.4&lt;/span&gt;&lt;span class="p"&gt;},{&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;applicationTag&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;news&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;weight&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;entityPreferences&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;entityURI&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;http://dbpedia.org/resource/Barack_Obama&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;entityName&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Barack Obama&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;weight&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;topicPreferences&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;topicIdentifier&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;healthcare&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;weight&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;}]},&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;offlineAnalysiConfig&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;{}}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Table 2 - JSON elements required to write a crawl specification&lt;br /&gt;
&lt;table&gt;&lt;br /&gt;
&lt;thead&gt;&lt;br /&gt;
&lt;tr&gt;&lt;br /&gt;
&lt;th&gt;Name&lt;/th&gt;&lt;br /&gt;
&lt;th&gt;Type&lt;/th&gt;&lt;br /&gt;
&lt;th&gt;Description&lt;/th&gt;&lt;br /&gt;
&lt;/tr&gt;&lt;br /&gt;
&lt;/thead&gt;&lt;br /&gt;
&lt;tbody&gt;&lt;br /&gt;
&lt;tr&gt;&lt;br /&gt;
&lt;td colspan="3"&gt;Crawl Specification&lt;/td&gt;&lt;br /&gt;
&lt;/tr&gt;&lt;br /&gt;
&lt;tr&gt;&lt;br /&gt;
&lt;td&gt;campaignIdentifier&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;String (URI)&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;The URI of this campaign&lt;/td&gt;&lt;br /&gt;
&lt;/tr&gt;&lt;br /&gt;
&lt;tr&gt;&lt;br /&gt;
&lt;td&gt;crawlSpecificationIdentifier&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;String (URI)&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;The URI of this crawl specification&lt;/td&gt;&lt;br /&gt;
&lt;/tr&gt;&lt;br /&gt;
&lt;tr&gt;&lt;br /&gt;
&lt;td&gt;crawlStartDate&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;String (Date)&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;The start date of the crawl&lt;/td&gt;&lt;br /&gt;
&lt;/tr&gt;&lt;br /&gt;
&lt;tr&gt;&lt;br /&gt;
&lt;td&gt;crawlEndDate&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;String (Date)&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;The end date of the crawl&lt;/td&gt;&lt;br /&gt;
&lt;/tr&gt;&lt;br /&gt;
&lt;tr&gt;&lt;br /&gt;
&lt;td&gt;apiCrawlSpec&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;Object&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;The API crawler configuration&lt;/td&gt;&lt;br /&gt;
&lt;/tr&gt;&lt;br /&gt;
&lt;tr&gt;&lt;br /&gt;
&lt;td&gt;htmlCrawlSpec&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;Object&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;The HTML crawler specification&lt;/td&gt;&lt;br /&gt;
&lt;/tr&gt;&lt;br /&gt;
&lt;tr&gt;&lt;br /&gt;
&lt;td&gt;onlineAnalysisConfig&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;Object&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;The configuration for the online analysis engine&lt;/td&gt;&lt;br /&gt;
&lt;/tr&gt;&lt;br /&gt;
&lt;tr&gt;&lt;br /&gt;
&lt;td&gt;offlineAnalysisConfig&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;Object&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;The configuration for the offline analysis engine&lt;/td&gt;&lt;br /&gt;
&lt;/tr&gt;&lt;br /&gt;
&lt;tr&gt;&lt;br /&gt;
&lt;td colspan="3"&gt;API Crawler Configuration&lt;/td&gt;&lt;br /&gt;
&lt;/tr&gt;&lt;br /&gt;
&lt;tr&gt;&lt;br /&gt;
&lt;td&gt;crawlPeriod&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;Double&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;The number of hours between each API crawl run&lt;/td&gt;&lt;br /&gt;
&lt;/tr&gt;&lt;br /&gt;
&lt;tr&gt;&lt;br /&gt;
&lt;td&gt;keywords&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;Array&lt;span&gt;[String]&lt;/span&gt;&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;Keywords used to search the API being crawled&lt;/td&gt;&lt;br /&gt;
&lt;/tr&gt;&lt;br /&gt;
&lt;tr&gt;&lt;br /&gt;
&lt;td colspan="3"&gt;HTML Crawler Configuration&lt;/td&gt;&lt;br /&gt;
&lt;/tr&gt;&lt;br /&gt;
&lt;tr&gt;&lt;br /&gt;
&lt;td&gt;seedURLs&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;Array&lt;span&gt;[String]&lt;/span&gt;&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;The URLs used to seed the crawl&lt;/td&gt;&lt;br /&gt;
&lt;/tr&gt;&lt;br /&gt;
&lt;tr&gt;&lt;br /&gt;
&lt;td&gt;languagePreferences&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;Array&lt;span&gt;[Object]&lt;/span&gt;&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;A set of priority values for all preferred languages.&lt;br /&gt;
        Each object needs to have languageIdentifier (as an HTTP language&lt;br /&gt;
        identifier) and weight – a double between 0 and 1.&lt;/td&gt;&lt;br /&gt;
&lt;/tr&gt;&lt;br /&gt;
&lt;tr&gt;&lt;br /&gt;
&lt;td&gt;Online Analysis Configuration&lt;/td&gt;&lt;br /&gt;
&lt;/tr&gt;&lt;br /&gt;
&lt;tr&gt;&lt;br /&gt;
&lt;td&gt;urlPatterns&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;Array&lt;span&gt;[Object]&lt;/span&gt;&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;A list of URL patterns which will be considered relevant documents.&lt;br /&gt;
        Each object needs to have pattern (a regex to match against) and weight&lt;br /&gt;
        - a double which weights the scores of the documents that match the pattern.&lt;/td&gt;&lt;br /&gt;
&lt;/tr&gt;&lt;br /&gt;
&lt;tr&gt;&lt;br /&gt;
&lt;td&gt;applicationScopes&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;Array&lt;span&gt;[Object]&lt;/span&gt;&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;Each object defines weights for particular applications. The object&lt;br /&gt;
        needs applicationTag defining the application (blog, news, etc.), and&lt;br /&gt;
        weight – a double which weights the scores of the documents from that&lt;br /&gt;
        application.&lt;/td&gt;&lt;br /&gt;
&lt;/tr&gt;&lt;br /&gt;
&lt;tr&gt;&lt;br /&gt;
&lt;td&gt;entityPreferences&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;Array&lt;span&gt;[Object]&lt;/span&gt;&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;Each object defines weights for particular entity URIs found&lt;br /&gt;
        within the document. The object needs entityURI, and entityName – the&lt;br /&gt;
        URI and string representing the entity – and weight – a double which&lt;br /&gt;
        weights the scores of documents containing those entities.&lt;/td&gt;&lt;br /&gt;
&lt;/tr&gt;&lt;br /&gt;
&lt;tr&gt;&lt;br /&gt;
&lt;td&gt;topicPreferences&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;Array&lt;span&gt;[Object]&lt;/span&gt;&lt;/td&gt;&lt;br /&gt;
&lt;td&gt;Each object defines weights for particular topics found within the&lt;br /&gt;
        document. The object needs topicIdentifier – an identifier that&lt;br /&gt;
        represents a topic – and weight – a double which weights the scores of&lt;br /&gt;
        documents matching those topics.&lt;/td&gt;&lt;br /&gt;
&lt;/tr&gt;&lt;br /&gt;
&lt;/tbody&gt;&lt;br /&gt;
&lt;/table&gt;&lt;/p&gt;
&lt;h2 id="crawl-specification-access"&gt;Crawl Specification Access&lt;/h2&gt;
&lt;p&gt;Access to the crawl specification is provided by the framework.&lt;br /&gt;
A &lt;a class="" href="../apidocs/eu/arcomem/framework/crawlspec/CrawlSpecification"&gt;&lt;code&gt;CrawlSpecification&lt;/code&gt;&lt;/a&gt;&lt;br /&gt;
interface is defined which defined functional methods for accessing the crawl spec.&lt;br /&gt;
Implementations of the crawl specification interface provide access to crawl specifications&lt;br /&gt;
stored in different ways. In particular, there are implementations for accessing crawl specs&lt;br /&gt;
stored in files, HDFS files and triple-stores. The type of crawl spec access is defined&lt;br /&gt;
in the framework configuration file with the key "crawlspec.class"&lt;br /&gt;
(see Configuration Options below).&lt;/p&gt;
&lt;p&gt;To get an instance of the crawl specification for your framework setup, use the&lt;br /&gt;
&lt;a class="" href="../apidocs/eu/arcomem/framework/crawlspec/CrawlSpecificationFactory"&gt;&lt;code&gt;CrawlSpecificationFactory&lt;/code&gt;&lt;/a&gt;&lt;br /&gt;
to instantiate it. If you have a map-reduce &lt;code&gt;Context&lt;/code&gt; you can&lt;br /&gt;
also pass that to the factory in case the crawl specification loader needs to be&lt;br /&gt;
configured.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="nx"&gt;CrawlSpecification&lt;/span&gt; &lt;span class="n"&gt;cs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;CrawlSpecificationFactory.loadCrawlSpecification&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nb"&gt;List&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nb"&gt;URL&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;cs.getSeedURLs&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;or if you have a map-reduce context:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;CrawlSpecification&lt;/span&gt; &lt;span class="n"&gt;cs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;CrawlSpecificationFactory&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;loadCrawlSpecification&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Arcoman</dc:creator><pubDate>Wed, 19 Feb 2014 00:26:17 -0000</pubDate><guid>https://sourceforge.net234efe8f13714105152f57bb58289121049a4dbf</guid></item></channel></rss>