package org.deri.vocidex.describers;
import org.codehaus.jackson.node.ObjectNode;
import org.deri.vocidex.JSONHelper;
import org.deri.vocidex.SPARQLRunner;
import com.hp.hpl.jena.query.QuerySolution;
import com.hp.hpl.jena.rdf.model.Resource;
/**
* Produces a JSON description of metrics for a vocabulary term, using the metrics metadata present in LOV.
*
* @author Pierre-Yves Vandenbussche
*/
public class LOVTermMetricsDescriber extends SPARQLDescriber {
public LOVTermMetricsDescriber(SPARQLRunner source) {
super(source);
}
public void describe(Resource term, ObjectNode descriptionRoot) {
QuerySolution qs = getSource().getOneSolution("lov-term-metrics.sparql", "term", term);
ObjectNode v = JSONHelper.createObject();
if(qs!=null && qs.get("occurrencesInVocabularies")!=null)
putString(v, "occurrencesInVocabularies", qs.get("occurrencesInVocabularies").asLiteral().getLexicalForm());
else putString(v, "occurrencesInVocabularies", "0");
if(qs!=null && qs.get("occurrencesInDatasets")!=null)
putString(v, "occurrencesInDatasets", qs.get("occurrencesInDatasets").asLiteral().getLexicalForm());
else putString(v, "occurrencesInDatasets", "0");
if(qs!=null && qs.get("reusedByVocabularies")!=null)
putString(v, "reusedByVocabularies", qs.get("reusedByVocabularies").asLiteral().getLexicalForm());
else putString(v, "reusedByVocabularies", "0");
if(qs!=null && qs.get("reusedByDatasets")!=null)
putString(v, "reusedByDatasets", qs.get("reusedByDatasets").asLiteral().getLexicalForm());
else putString(v, "reusedByDatasets", "0");
descriptionRoot.put("metrics", v);
}
}