/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package itsudparis.application;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import com.hp.hpl.jena.rdf.model.Model;
import itsudparis.tools.JenaEngine;
/**
* @author DO.ITSUDPARIS
*/
public class Main {
/**
* @param args
* the command line arguments
*/
public static void main(String[] args) {
String NS = "";
// lire le model a partir d'une ontologie
Model model = JenaEngine.readModel("data/family.owl");
if (model != null) {
//lire le Namespace de l’ontologie
NS = model.getNsPrefixURI("");
// // modifier le model
// // Ajouter une nouvelle femme dans le modele: Nora, 50, estFilleDe Peter
// JenaEngine.createInstanceOfClass(model, NS, "Femme", "Nora");
// JenaEngine.updateValueOfDataTypeProperty(model, NS, "Nora", "age", 50);
// JenaEngine.updateValueOfObjectProperty(model, NS, "Nora", "estFilleDe", "Peter");
//
// // Ajouter un nouvel homme dans le modele: Rob, 51, seMarierAvec Nora
// JenaEngine.createInstanceOfClass(model, NS, "Homme", "Rob");
// JenaEngine.updateValueOfDataTypeProperty(model, NS, "Rob", "age", 51);
// JenaEngine.updateValueOfDataTypeProperty(model, NS, "Rob", "nom", "Rob Yeung");
// JenaEngine.updateValueOfObjectProperty(model, NS, "Rob", "seMarierAvec", "Nora");
//
// //
// JenaEngine.createInstanceOfClass(model, NS, "Homme", "Bill");
// JenaEngine.updateValueOfDataTypeProperty(model, NS, "Bill", "age", 75);
// JenaEngine.updateValueOfDataTypeProperty(model, NS, "Bill", "nom", "Bill Gates");
// JenaEngine.updateValueOfObjectProperty(model, NS, "Bill", "seMarierAvec", "Nora");
//
//apply owl rules on the model
Model owlInferencedModel = JenaEngine.readInferencedModelFromRuleFile(model, "/mci/ei0912/garrone/workspace/jena/src/data/owlrules.txt");
// apply our rules on the owlInferencedModel
Model inferedModel = JenaEngine.readInferencedModelFromRuleFile(owlInferencedModel, "/mci/ei0912/garrone/workspace/jena/src/data/rules.txt");
//Aplli
InputStreamReader lecteur=new InputStreamReader(System.in);
BufferedReader entree=new BufferedReader(lecteur);
String nom;
while (true) {
try {
nom=entree.readLine();
// Récupération des parents
String parents = JenaEngine.executeQueryFileWithParameter(inferedModel, "/mci/ei0912/garrone/workspace/jena/src/data/queryParents.txt", nom);
System.out.println("Parents de " + nom);
System.out.println(parents);
// Récupération des freres et soeurs
String fraterie = JenaEngine.executeQueryFileWithParameter(inferedModel, "/mci/ei0912/garrone/workspace/jena/src/data/queryFraterie.txt", nom);
System.out.println("Fraterie de " + nom);
System.out.println(fraterie);
// Récupération du conjoint
String conjoint = JenaEngine.executeQueryFileWithParameter(inferedModel, "/mci/ei0912/garrone/workspace/jena/src/data/queryConjoint.txt", nom);
System.out.println("Conjoint de " + nom);
System.out.println(conjoint);
// Récupération des prétendants
String pretendants = JenaEngine.executeQueryFileWithParameter(inferedModel, "/mci/ei0912/garrone/workspace/jena/src/data/queryPretendants.txt", nom);
System.out.println("Pretendants de " + nom);
System.out.println(pretendants);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} else {
System.out.println("Error when reading model from ontology");
}
}
}