Mercurial > hg > anteater
diff src/de/mpiwg/anteater/places/impl/PlacemakerPlaceFinder.java @ 0:036535fcd179
anteater
author | jdamerow |
---|---|
date | Fri, 14 Sep 2012 10:30:43 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/de/mpiwg/anteater/places/impl/PlacemakerPlaceFinder.java Fri Sep 14 10:30:43 2012 +0200 @@ -0,0 +1,65 @@ +package de.mpiwg.anteater.places.impl; + +import java.net.URI; + +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.MultivaluedMap; +import javax.ws.rs.core.UriBuilder; + +import com.sun.jersey.api.client.Client; +import com.sun.jersey.api.client.UniformInterfaceException; +import com.sun.jersey.api.client.WebResource; +import com.sun.jersey.api.client.config.ClientConfig; +import com.sun.jersey.api.client.config.DefaultClientConfig; +import com.sun.jersey.core.util.MultivaluedMapImpl; + +import de.mpiwg.anteater.logging.IAnteaterLogger; +import de.mpiwg.anteater.places.IPlaceFinder; + +public class PlacemakerPlaceFinder implements IPlaceFinder { + + public final static String COMPONENT_NAME = PlacemakerPlaceFinder.class.getSimpleName(); + + private IAnteaterLogger logger; + + public PlacemakerPlaceFinder(IAnteaterLogger logger) { + this.logger = logger; + } + + @Override + public String findPlaces(String text) { + logger.logMessage(COMPONENT_NAME, "Waiting 1 second to not be blocked by Yahoo! Placemaker..."); + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + logger.logMessage(COMPONENT_NAME, "Sending place extraction request to Yahoo! Placemaker..."); + + ClientConfig config = new DefaultClientConfig(); + Client client = Client.create(config); + WebResource service = client.resource(getBaseURI()); + + MultivaluedMap<String, String> values = new MultivaluedMapImpl(); + values.add("documentContent", text); + values.add("documentType", "text/plain"); + values.add("appid", + "nV7rNc_V34F5EjG5VjBaFxIxpwxemBhUa0h4N2To8CnfjVBBmLrTVOgaCsXXU7EP"); + + String result = ""; + try { + result = service.accept(MediaType.TEXT_XML).post(String.class, values); + } catch (UniformInterfaceException ex) { + logger.logMessage(COMPONENT_NAME, "Received exception from Placemaker: " + ex.getMessage()); + } + + return result; + } + + private static URI getBaseURI() { + return UriBuilder.fromUri("http://wherein.yahooapis.com/").path("v1") + .path("document").build(); + } + +}