It does not recognize the class name but only property names.

On Mon, Sep 19, 2016 at 9:14 AM, javed khan <javedbtk...@gmail.com> 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());
>
> 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