Hello Dave, though I have Student class in my owl and GoodStudent as the
subclass of Student but this statement gives me error and does not
recognize GoodStudent.

 for (Iterator i = inf.listResourcesWithProperty(RDF.type, *GoodStudent*);
i.hasNext();) {
            System.out.println("Good student: " + i.next());

On Sun, Sep 18, 2016 at 1:36 PM, javed khan <javedbtk...@gmail.com> wrote:

> 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