Ich habe meine eigene Ontologie entwickelt (ich definierte meine Klassen, Eigenschaften, etc.) und ich möchte meine Ontologie mit Sparql befragen.wie man Ontologie mit Sparql, RDFLIB in Python abfragen
in protégé 2000 (Open-Source-Ontologie-Editor) alles funktioniert gut, aber wenn ich meine Anfrage SPARQL in Python implementieren möchte, stieß ich auf einige Probleme.
Ich habe es in Java und es funktionierte, aber es ist nicht, was ich will, ich wollte es mit pyjnius
tun (Ein Python-Modul für den Zugriff auf Java-Klassen als Python-Klassen), aber nichts hat auch funktioniert.
Wie kann ich mit sparkq meine Ontologie abfragen? Gibt es eine Möglichkeit, jena in Python zu benutzen?
das ist, wie ich es mit Java tat
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();
}
die Eigenschaften sind: signee_par, mot_cle, secteur, ministere etc ..... (auf Französisch), wird die sqarql Anfrage auf diesen Eigenschaften basieren
Ich möchte es mit Python tun, weiß jemand wie ich kann?!
Was ist "Protege 2000"? Und fügen Sie bitte viel mehr Informationen hinzu, d. H. Die SPARQL-Abfrage und den Python-Code. Und was bedeutet "einige Probleme"? Kannst du dir nicht vorstellen, dass dir ohne Informationen niemand wirklich helfen kann? – AKSW
@AKSW Es tut mir leid, dass ich meinen Punkt nicht erklärt habe, ich habe gerade den Beitrag bearbeitet, ich zeigte Ihnen den Java-Code coz ich weiß nicht, wie ich es wirklich mit Python, ich versuchte, aber nichts bro :(. – Mehdi
Es wäre hilfreich zu sehen, was du probiert hast ... Ich habe ein wenig mit dem Kivy-Framework gearbeitet und schreibe gerade eine Python-Android-App ... Pyjnius kommt von Kivy.org für diejenigen, die es nicht wissen: – Jarvis