Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [smila-user] SMILA vs Human Computing

Hi Juergen,

our workflows.json is completely equivalent to yours (the only difference is that the startAction is associated to the bulkbuilder worker).   Our proof-of-concept retrieveLogoInstancesPipelet.process() implementation is the following:

if (recordIds.length > 0) {
 ...
 for (String id:recordIds) {
String logoName = blackboard.getMetadata(id).getStringValue("logoName"); 

       

final AnyMap request = blackboard.getMetadata(recordIds[0]);
final DataFactory factory = request.getFactory();
final AnyMap record = factory.createAnyMap();
        record.put(Record.RECORD_ID, factory.createStringValue(logoName));
        record.put("URL", "URL_1");

  }


}

The questions are: 
  • We tried to link the output of the bulkbuilder to the input of the pipeline. This input is supposed to contain the  name of the logos that you want to retrieve. Using the above instruction, can we assure to find into the variable logoName the expected input value coming from the input records? 
  • How is it possible to save the variable record in the object store associated to the output bucket?

Thanks,
Cheers,
Ilio.

Il giorno 27/feb/2012, alle ore 17:20, Jürgen Schumacher ha scritto:

Hi,
 
the records processed by the Pipelet in Job1 are automatically written to the objectstore afterwards, if the output slot of the pipeline processor worker is connected to the bucket. Then the seconds worker in your picture would get it from there. The “Job1” workflow would then look like this:
 
...,
"actions":[
    {
      "worker":"pipelineProcessor",
      "parameters":{
        “pipeline”: “GoogleImagesDownloadPipeline”, // or whatever (;
        "pipelineRunBulkSize":"10"
      },
      "input":{
        "input":"docsBucket"
      },
      "output":{
        "output":"logosBucket"
      }
    },
    {
      "worker":"worker_1",
      "input":{
        "input":"logosBucket"
      }
    }
]
 
However, it is possible that you can get around easier by just adding a second pipelet to the Job1 BPEL pipeline after the “Google Images” pipelet which writes the records from the blackboard to the “list of downloaded logos”. The effect should be the same and you wouldn’t have to learn about worker programming at this point. Or is there a reason for doing this step in an extra worker?
 
Cheers,
Juergen.
 
From: smila-user-bounces@xxxxxxxxxxx [mailto:smila-user-bounces@xxxxxxxxxxx] On Behalf Of Ilio Catallo
Sent: Monday, February 27, 2012 5:07 PM
To: Smila project user mailing list
Subject: Re: [smila-user] SMILA vs Human Computing
 
Dear all,
 
we're trying to implement the previous mentioned application. We're facing some difficulties in the BPEL pipeline included in the Job1 (please refer to the previously sent image). Specifically, we were wondering which is the java code that is necessary to store a bucket into the object store starting from a pipelet. Is it possible to access to the object store starting from the blackboard?
 
Thanks in advance,
Ciao,
Ilio.
 
Il giorno 23/feb/2012, alle ore 16:12, Igor Novakovic ha scritto:


Hi Ilio,
 
Since you are not manipulating the images in the crowd web application, you can also pass by only their uris to the job2 and then download them at the beginning of that job with a “store logos keypoints” pipelet.
 
Cheers
Igor
 
Von: smila-user-bounces@xxxxxxxxxxx [mailto:smila-user-bounces@xxxxxxxxxxx] Im Auftrag von Jürgen Schumacher
Gesendet: Donnerstag, 23. Februar 2012 14:23
An: Smila project user mailing list
Betreff: Re: [smila-user] SMILA vs Human Computing
 
Hi,
 
The workflow of „Job 2“ must start with a bulkbuilder worker, then you can submit the records with the  images
by a REST call to /smila/job/<jobname>/record to your job. See http://wiki.eclipse.org/SMILA/Documentation/Bulkbuilder.
There are examples of workflows with a bulkbuilder and BPEL-pipeline processor in the default configuration, which you
can probably adapt to your use case.
 
Cheers,
Jürgen.
 
From: smila-user-bounces@xxxxxxxxxxx [mailto:smila-user-bounces@xxxxxxxxxxx] On Behalf Of Ilio Catallo
Sent: Thursday, February 23, 2012 2:16 PM
To: Smila project user mailing list
Subject: Re: [smila-user] SMILA vs Human Computing
 
Hi,
 
After counseling with Igor during the Como meeting we agreed to re-factorize everything as an asynchronous workflow. You should find as an attachment the new architecture for our logo detection application.
 
We would like to know how to move the validated logos from the external crowdsourcing web application back to SMILA (right-side part of the figure). It seems that it's possible to embed those images inside the REST call that will trigger the execution of the "Job 2" in the figure. Unfortunately we can't find in the documentation how to do that. The wiki page dedicated to job execution only covers how to start, stop and monitor job runs. 
 
Thanks in advance,
Cheers,
Ilio.
 
<image001.jpg>
Il giorno 11/gen/2012, alle ore 10:58, Jürgen Schumacher ha scritto:

 

Hi,
 
hard to say without a closer look.
By default, the SMILA search webapp can only display images from configuration/org.eclipse.smila.search.servlet/webapp, e.g. the
 
  <img src="" alt="www.eclipse.org"/>
 
will show the image from images/Smila folder in this webapp. If you write your images to somewhere in the webapp, too, they should be
displayable. If that’s not possible, you can extend the Jetty configuration to add another directory to be served, for example like this:
    <!-- =========================================================== -->
    <!-- Set handler Collection Structure                            -->
    <!-- =========================================================== -->
    <Set name="handler">
      <New class="org.eclipse.jetty.server.handler.HandlerList">
        <Set name="handlers">
          <Array type="org.eclipse.jetty.server.Handler">
            <Item>
              <New class="org.eclipse.jetty.webapp.WebAppContext">
                <Set name="contextPath">/SMILA</Set>
                <Set name="resourceBase"><SystemProperty name="org.eclipse.smila.utils.config.root" default="configuration"/>/org.eclipse.smila.search.servlet/webapp</Set>
                <Set name="descriptor"><SystemProperty name="org.eclipse.smila.utils.config.root" default="configuration"/>/org.eclipse.smila.search.servlet/webapp/WEB-INF/web.xml</Set>
                <Set name="defaultsDescriptor"><SystemProperty name="org.eclipse.smila.utils.config.root" default="configuration"/>/org.eclipse.smila.http.server/webdefault.xml</Set>
                <Set name="parentLoaderPriority">true</Set>
              </New>
            </Item>
            <Item>
              <New class="org.eclipse.jetty.server.handler.ContextHandler">
                <Set name="contextPath">/Images</Set>
                <Set name="handler">
                  <New class="org.eclipse.jetty.server.handler.ResourceHandler">
                    <Set name="directoriesListed">true</Set>
                    <Set name="resourceBase">/home/smila/Images</Set>
                  </New>
                </Set>
              </New>
            </Item>
            <Item>
              <New class="org.eclipse.jetty.server.handler.DefaultHandler"/>
            </Item>
          </Array>
        </Set>
      </New>
    </Set>
 
Then an image /home/smila/Images/logo.jpg should be viewable as http://localhost:8080/Images/logo.jpg
 
Cheers,
Jürgen.
_______________________________________________
smila-user mailing list
smila-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/smila-user
 
_______________________________________________
smila-user mailing list
smila-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/smila-user
 
_______________________________________________
smila-user mailing list
smila-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/smila-user


Back to the top