package org.ariadne_eu.service;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import org.apache.log4j.Logger;
import org.ariadne_eu.metadata.query.QueryMetadataException;
import org.ariadne_eu.metadata.query.QueryMetadataFactory;
import org.ariadne_eu.metadata.query.language.QueryTranslationException;
import org.ariadne_eu.metadata.query.language.TranslateLanguage;
import org.ariadne_eu.metadata.resultsformat.TranslateResultsformat;
@Path("/")
public class PRFMImplementation {
private static Logger log = Logger.getLogger(PRFMImplementation.class);
String papers = "{\"years\" : [{ \"year\" : \"2009\", \"papers\" : [ {\"title\": \"The integration of a metadata generation framework in a music annotation workflow\", \"url\": \"https://lirias.kuleuven.be/handle/123456789/249124\", \"keywords\": \"metadata\"}, {\"title\": \"A Web-based approach to determine the origin of an artist\", \"url\": \"https://lirias.kuleuven.be/handle/123456789/249123\", \"keywords\": \"metadata\"}]},{ \"year\" : \"2008\", \"papers\" : [ { \"title\": \"Special issue on social information retrieval for technology enhanced learning\", \"url\": \"https://lirias.kuleuven.be/handle/123456789/234787\", \"keywords\": \"metadata\"}, { \"title\": \"Using search engine for classification: does it still work?\", \"url\": \"https://lirias.kuleuven.be/handle/123456789/246659\", \"keywords\": \"metadata\"}]}]}";
@Path("/person/{author_id}")
@GET
@Produces("application/json")
public String getAuthor(@PathParam("author_id") String id) {
if (id.equalsIgnoreCase("")) {
log.error("getAuthor: Not a valid author identifier");
return "";
}
log.info("getAuthor: author_id=" + id);
try {
String fullquery = "person.uri : \"" + id + "\"";
String result = QueryMetadataFactory.getQueryImpl(TranslateLanguage.LUCENE).query(fullquery, 1, 1, TranslateResultsformat.PRFM);
return result;
} catch (QueryTranslationException e) {
log.error("getMetadata:QueryTranslationException", e);
} catch (QueryMetadataException e) {
log.error("getMetadata:QueryMetadataException", e);
}
return "";
}
@Path("/person/{author_id}/accounts")
@GET
@Produces("application/json")
public String getAuthorAccounts(@PathParam("author_id") String id) {
if (id.equalsIgnoreCase("")) {
log.error("getAuthorAccounts: Not a valid author identifier");
return "";
}
log.info("getAuthorAccounts: author_id=" + id);
try {
String fullquery = "person.uri : \"" + id + "\"";
String result = QueryMetadataFactory.getQueryImpl(TranslateLanguage.LUCENE).query(fullquery, 1, 1, TranslateResultsformat.PARFM);
return result;
} catch (QueryTranslationException e) {
log.error("getMetadata:QueryTranslationException", e);
} catch (QueryMetadataException e) {
log.error("getMetadata:QueryMetadataException", e);
}
return "";
}
@Path("/person/{author_id}/latestpublication")
@GET
@Produces("application/json")
public String getAuthorLatestPublication(@PathParam("author_id") String id) {
if (id.equalsIgnoreCase("")) {
log.error("getAuthorLatestPublication: Not a valid author identifier");
return "";
}
log.info("getAuthorLatestPublication: author_id=" + id);
try {
String fullquery = "person.uri : \"" + id + "\"";
String result = QueryMetadataFactory.getQueryImpl(TranslateLanguage.LUCENE).query(fullquery, 1, 1, TranslateResultsformat.PPRFM);
return result;
} catch (QueryTranslationException e) {
log.error("getMetadata:QueryTranslationException", e);
} catch (QueryMetadataException e) {
log.error("getMetadata:QueryMetadataException", e);
}
return "";
}
@Path("/person/{author_id}/publications")
@GET
@Produces("application/json")
public String getAuthorListPublicatiosn(@PathParam("author_id") String id) {
if (id.equalsIgnoreCase("")) {
log.error("getAuthorListPublicatiosn: Not a valid author identifier");
return "";
}
log.info("getAuthorListPublicatiosn: author_id=" + id);
try {
String fullquery = "person.uri : \"" + id + "\"";
String result = QueryMetadataFactory.getQueryImpl(TranslateLanguage.LUCENE).query(fullquery, 1, 1, TranslateResultsformat.PLPRFM);
return result;
} catch (QueryTranslationException e) {
log.error("getMetadata:QueryTranslationException", e);
} catch (QueryMetadataException e) {
log.error("getMetadata:QueryMetadataException", e);
}
return "";
}
}