@Javed:

It would be good if you show us the WHOLE CURRENT part of the code and
some sample data, otherwise it's useless to continue the discussion here.

> On 19/09/16 17:14, javed khan wrote:
>> 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());
>
> The code sample I provided worked. I suspect you have omitted some
> lines such as the one that assigned a value for GoodStudent.
>
> Dave
>
>>
>> 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");
>>>>>>>
>>>>>>>     }
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
>
-- 
Lorenz B├╝hmann
AKSW group, University of Leipzig
Group: http://aksw.org - semantic web research center

Reply via email to