Thanks a lot Dave, let me try it. I hope it will help.

Regards

On Sun, Sep 18, 2016 at 1:28 PM, Dave Reynolds <dave.e.reyno...@gmail.com>
wrote:

> On 18/09/16 21:24, javed khan wrote:
>
>> Thanks Lorenz and Dave, I have corrected the  http://www.semanticweb.org#
>> <http://www.semanticweb.org/#GPA>Student to ?x but it does not
>> work.Actually it does not save the updated marks/GPA of student and when I
>> remove the Jena rules part, it then updates and save the GPA.
>> I also try the SPARQL query inside Protege Query tab but it does not give
>> me any instance of the GoodStudent class.
>>
>
> The example I showed does work. If you write inf to file or std out you
> can see the class, if you run your sparql query it lists s1.
>
> Dave
>
>
> On Sun, Sep 18, 2016 at 12:40 PM, Lorenz Buehmann <
>> buehm...@informatik.uni-leipzig.de> wrote:
>>
>> The second condition of your rule doesn't make any sense as the subject
>>> is Student and it should be ?x.
>>>
>>>
>>> On 18.09.2016 17:41, javed khan wrote:
>>>
>>>> This code does not work. I want to save student marks/GPA in the file
>>>> and
>>>> based on GPA assign students to GoodStudent or WorstStudents sub classes
>>>>
>>> of
>>>
>>>> Student via Jena rules.
>>>>
>>>>
>>>>
>>>>
>>>> OntModel model=ModelFactory.createOntologyModel();
>>>>
>>>>          InputStream in =FileManager.get().open("C://std.owl");
>>>>             if (in==null) {
>>>>                 throw new IllegalArgumentException( "File: " +  " not
>>>> found");
>>>>             }           model.read(in,"");
>>>>
>>>>              String ns="http://www.semanticweb.org#";;
>>>>
>>>>             OntClass user1 = model.getOntClass(ns + "Student");
>>>>
>>>>            Individual indiv = user1.createIndividual(ns + name); //name
>>>>
>>> is
>>>
>>>> variable
>>>>
>>>>             Property prop= model.getProperty(ns,"GPA");
>>>>
>>>>             indiv.addLiteral(prop, marks); //marks also variable having
>>>> some value i-e 3.0
>>>>
>>>>
>>>>
>>>>  String rule="[rule1:(?x   http://www.w3.org/1999/02/22-
>>>>
>>> rdf-syntax-ns#type
>>>
>>>> http://www.semanticweb.org#Student) " +
>>>>          "( http://www.semanticweb.org#Student
>>>> http://www.semanticweb.org#GPA  ?marks +   )"   + "greaterThan(?marks,
>>>>
>>> 2) "+
>>>
>>>>          " ->  (?x   http://www.w3.org/1999/02/22-rdf-syntax-ns#type
>>>> http://www.semanticweb.org#GoodStudent )]";
>>>>
>>>>              String queryString= "PREFIX std:<http://www.semanticweb.
>>>>
>>> org#>
>>>
>>>> "+
>>>>          "PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> "  +
>>>>           "PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> "+
>>>>                       "SELECT  * " +
>>>>                 " WHERE {  ?x rdf:type std:GoodStudent}";
>>>>
>>>>              Reasoner reasoner2 = new
>>>> GenericRuleReasoner(Rule.parseRules(rule));
>>>>   InfModel inf = ModelFactory.createInfModel(reasoner2, model);
>>>>      Query query = QueryFactory.create(queryString);
>>>>           QueryExecution qe = QueryExecutionFactory.create(query, inf);
>>>>      ResultSet results = qe.execSelect();
>>>>      ResultSetFormatter.out(System.out, results, query);
>>>>      qe.close();
>>>>
>>>>
>>>>
>>>>          try (FileOutputStream writer = new
>>>> FileOutputStream("C://std.owl")) {
>>>>             model.write(writer, "RDF/XML");
>>>>         } catch (IOException ex) {
>>>>             Logger.getLogger(stdinfo.class.getName()).log(Level.SEVERE,
>>>> null, ex);
>>>>         }
>>>>             model.write(System.out, "N3");
>>>>
>>>>     }
>>>>
>>>>
>>>
>>>
>>
>

Reply via email to