Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -519,4 +519,84 @@ static Object_RapportCalculVecteur getVecteurCalcul(String path, Object_TIEG obj

return rapport;
}


/**
*
* Fonction qui retourne le num�ro de la table "Process Description d'un document donn�e.
*
* @param path : Chemin des donn�es en cas d'une interrogation en local.
* @param idDocument : Identifiant du document.
* @return Obj:String
* @throws Exception_SparqlConnexion
*
*/

static String getTableID(String path, String idDocument) throws Exception_SparqlConnexion
{
String resultat = null;

String comNameQuery=
"prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n" +
" prefix owl: <http://www.w3.org/2002/07/owl#>\n" +
" PREFIX onto: <http://opendata.inra.fr/resources/atWeb/annotation/>\n" +
" PREFIX domain: <http://opendata.inra.fr/resources/BIORAF#>\n" +
" PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n" +
" PREFIX dc: <http://purl.org/dc/elements/1.1/>\n" +
"\n" +
" SELECT ?tableID\n" +
" WHERE {\n" +
" ?document rdf:type onto:Document.\n" +
" ?document onto:hasForID ?idDocument.\n" +
" FILTER(str(?idDocument)=\""+idDocument+"\")\n" +
" ?document onto:hasTable ?table.\n" +
" ?table dc:title ?tableTitle.\n" +
" FILTER regex(?tableTitle, \"Process\", \"i\" )\n" +
" ?table onto:hasForID ?tableID.\n" +
" }";

/************************LOCAL MODE ***********************************

Path input = Paths.get(path+"DonneesLocales/RDF/", "annotations_atweb.ttl");

Model model = ModelFactory.createDefaultModel() ;

model.read(input.toUri().toString());

Query query = QueryFactory.create(comNameQuery);

QueryExecution qe = QueryExecutionFactory.create(query, model);

************************************************************************/

/**********************SPARQL ENDPOINT MODE*****************/

Query query = QueryFactory.create(comNameQuery);

QueryExecution qe = QueryExecutionFactory.sparqlService(sparqlEndpoint,query);

/************************************************************************/

try {
ResultSet rs = qe.execSelect();

while ( rs.hasNext() ) {

QuerySolution solution=rs.next();

resultat=solution.getLiteral("tableID").getLexicalForm();
}
}
catch(Exception e){

throw new Exception_SparqlConnexion(e);

}
finally {
qe.close();
}

return resultat;

}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,55 @@
package com.terweb.packageInterrogationDonnees;

import com.terweb.packageExceptions.Exception_SparqlConnexion;


/**
*
* Classe qui regroupe des méthodes utilisées pour récupérer l'URI d'une table : Process Description sur @WEB
* à partir de l'identifiant du document scientifique correspendant.
*
*
*/

public class LienDocument {
public static String genereLien(int numDocument){

/**
*
* Fonction qui retourne l'URI de la table annotée (Process Description) d'un document donné.
*
* @param path : Chemin des données en cas d'une interrogation en local.
* @param idDocument : Identifiant du document.
* @return Obj:String
* @throws Exception_SparqlConnexion
*
*/

public static String genereLien(String path, String idDocument) throws Exception_SparqlConnexion{

System.out.println("hadmmmmmmmmmmmmmmmmmmmmmmmmmm");
return "http://localhost:5355/TERWEB2016/index/mm";
int idTable = Integer.parseInt(InterrogationDataRDF.getTableID(path,idDocument));

String lien=getLien(idDocument, idTable);

return lien;
}

/**
*
* Fonction qui génère l'URI de la table annotée (Process Description) d'un document donné.
*
* @param path : Chemin des données en cas d'une interrogation en local.
* @param idDocument : Identifiant de la table.
* @return Obj:String
*
*/

private static String getLien(String idDocument, int idItem)
{

String serial=Integer.toString(idItem * idItem - idItem, 8);

String lien="http://pfl.grignon.inra.fr/atWeb/TableServlet?viewTable="+idItem+"&idDoc="+idDocument+"&id="+serial;

return lien;
}
}