Я разработал свою собственную онтологию (я определил свои классы, свойства и т. Д.), И я хочу опросить свою онтологию с помощью sparql.
в protégé 2000 (редактор онтологий с открытым исходным кодом) все работает нормально, но когда я хочу реализовать свой запрос sparql на python, я столкнулся с некоторыми проблемами.
Я сделал это на Java, и это сработало, но это не то, что я хочу, я хотел сделать это с pyjnius
(модуль Python для доступа к классам Java как классам Python), но также ничего не работало.
Как я могу использовать sparql для исследования своей онтологии? Есть ли способ использовать jena в Python?
вот как я это сделал с java:
try{
Model model = ModelFactory.createDefaultModel();
String FName = "C:\\Users\\p\\Desktop\\protégé project jour\\jour.owl";
InputStream inStr = FileManager.get().open(FName);
if (inStr == null) { throw new IllegalArgumentException("Fichier non trouvé");}
// Lire le fichier RDF vers le modèle précédemment créé.
model.read(inStr, "");
//****************************
String requete =
//***=====This is the query that works good in the ontology with properties between classes
"PREFIX OntoJO:<http://www.owl-ontologies.com/Ontology1400008538.owl#>" +
"SELECT ?path " +
"WHERE { "
+ " ?n OntoJO:signee_par '"+choixsignrech1.getText()+"' ."
+ " ?s OntoJO:mot_cle '"+choixclrech1.getText()+"' ."
+ " ?m OntoJO:secteur '"+choixsecrech1.getSelectedItem()+"' ."
+ " ?f OntoJO:ministere '"+choixminisrech1.getSelectedItem()+"' ."
+ " ?r OntoJO:synonymes '"+choixsyrech1.getText()+"' ."
+ "?n OntoJO:a_un_chemin ?y . "
+ "?s OntoJO:a_un_chemin ?y . "
+ "?m OntoJO:a_un_chemin ?y . "
+ "?f OntoJO:a_un_chemin ?y . "
+ "?r OntoJO:a_un_chemin ?y . "
+ "?y OntoJO:chemin ?path . }";
Query query = QueryFactory.create(requete);
QueryExecution qexec = QueryExecutionFactory.create(query, model);
try {
ResultSet results = qexec.execSelect();
while (results.hasNext()){
QuerySolution soln = results.nextSolution();
RDFNode name = soln.get("path");
System.out.println(name);
javax.swing.JOptionPane.showMessageDialog(this,soln.get("path"));
}
} finally
{
qexec.close();
}
свойства: signee_par, mot_cle, secteur, ministere и т.д. (на французском), запрос sqarql основан на этих свойствах
Я хочу сделать это с помощью Python, кто-нибудь знает, как я могу ?!