Mercurial > hg > anteater
view 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 source
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(); } }