Sorry but still not working.

When I query instances of Expert, it shows "Tim" which is fine. When I
query instance of Student, it shows "Khan", which is also fine.
Even when I query both in one, it shows "Khan" which is also ok because
Khan is also Expert and Student, but when I try to assign it(Khan) to
another class, it does not work.

I am afraid if Jena generic rules does not work on classes and only it
supports properties like transitive property and inverse property.

On Wed, Jul 27, 2016 at 1:39 AM, javed khan <javedbtk...@gmail.com> wrote:

>  <http://www.w3.org/1999/02/22-rdf-syntax-ns#rdf:type>
>
> are wrong. Either use the correct URI:
>
>    <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
>
> or use the prefix form:
>
>    rdf:type
>
>
> I am sorry due to too many threads, I did not read this reply.
>
> Thanks Dave, let me try.
>
> On Wed, Jul 27, 2016 at 1:35 AM, Dave Reynolds <dave.e.reyno...@gmail.com>
> wrote:
>
>> See my earlier reply, you had an error in the URLs in your rules.
>>
>> Dave
>>
>>
>> On 27/07/16 09:33, javed khan wrote:
>>
>>> If my email (code) is not understandable, I am just explaining in plain
>>> text.
>>>
>>> I have class Expert which have some researches i-e "Tim hasResearch
>>> Ontologies". I have another class Student (subclasses Master Phd). Khan
>>> is
>>> instance of Phd class (ultimately of Student class also). Phd student can
>>> also have some researches as Expert class and have type both : Student
>>> and
>>> Expert in Protege.
>>>
>>> I want instances which are both in Student and Expert i-e Khan in this
>>> case.
>>>
>>> If ?x rdf:type std:Expert and ?x rdf:type std:Student -> ?x rdf:type
>>> std:StudentExpert (a new class in the ontology).
>>>
>>> my query is : select * where { ?x rdf:type std:StudentExpert}
>>>
>>> On Wed, Jul 27, 2016 at 1:20 AM, javed khan <javedbtk...@gmail.com>
>>> wrote:
>>>
>>> I am sorry that is just the mistake when I copy code from my IDE to
>>>> email.
>>>> In the original code, its written just once.
>>>>
>>>> On Wed, Jul 27, 2016 at 1:11 AM, Lorenz B. <
>>>> buehm...@informatik.uni-leipzig.de> wrote:
>>>>
>>>> I'm not an expert, but why do you have each URI twice in the rule?
>>>>>
>>>>> I have rule body:I want instance x which are in both classes to assign
>>>>>>
>>>>> to
>>>>>
>>>>>> another class "StudentExpert" which have no other instances. But does
>>>>>>
>>>>> not
>>>>>
>>>>>> work.
>>>>>> (My Owl inverse property and transitive property rule works but this
>>>>>> generic rule does not work)
>>>>>>
>>>>>> String rule = "*[rule1:(?x
>>>>>>   http://www.w3.org/1999/02/22-rdf-syntax-ns#rdf:type
>>>>>> <http://www.w3.org/1999/02/22-rdf-syntax-ns#rdf:type>
>>>>>> http://www.semanticweb.org/141#Student
>>>>>> <http://www.semanticweb.org/141#Student>) " +*
>>>>>> *                      "(?x
>>>>>> http://www.w3.org/1999/02/22-rdf-syntax-ns#rdf:type
>>>>>> <http://www.w3.org/1999/02/22-rdf-syntax-ns#rdf:type>
>>>>>> http://www.semanticweb.org/141#Expert
>>>>>> <http://www.semanticweb.org/141#Expert> )" + *
>>>>>>
>>>>>>           "->(?x  http://www.w3.org/1999/02/22-rdf-syntax-ns#rdf:type
>>>>>> http://www.semanticweb.org/141#StudentExpert )]";
>>>>>>
>>>>>> After prefixes, my query is:
>>>>>>
>>>>>> "Select * " + "where {  ?x  rdf:type std:StudentExpert.   }";
>>>>>>
>>>>>> My Reasoner and InfModel classes are:
>>>>>>
>>>>>> Reasoner reasoner2 = new GenericRuleReasoner(Rule.parseRules(rule));
>>>>>>
>>>>>> InfModel inf = ModelFactory.createInfModel(reasoner2, model);
>>>>>>
>>>>>> Then query is executed as usual in jena.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Mon, Jul 25, 2016 at 2:38 PM, Dave Reynolds <
>>>>>>
>>>>> dave.e.reyno...@gmail.com>
>>>>>
>>>>>> wrote:
>>>>>>
>>>>>> On 25/07/16 19:33, javed khan wrote:
>>>>>>>
>>>>>>> I have a Student class (Phd students) and Teacher class, having
>>>>>>>>
>>>>>>> instances.
>>>>>
>>>>>> There are some students which are also Teacher (teaching to junior
>>>>>>>> classes).
>>>>>>>> ?x rdf:type ont:Student   ?y rdf:type ont:Teacher -->  ?
>>>>>>>> This will give us Students and teachers instances.
>>>>>>>>
>>>>>>>> I want Jena generic rule(Forward chaining) which filters those who
>>>>>>>> are
>>>>>>>> both
>>>>>>>> Teachers and Students. Is there any way to do so?
>>>>>>>>
>>>>>>>> Yes. You are nearly there but you want the rule body to be more
>>>>>>> like:
>>>>>>>
>>>>>>> (?x rdf:type ont:Student)  (?x rdf:type ont:Teacher) ->  ...
>>>>>>>
>>>>>>> the rule consequent could assert a new type or some other property to
>>>>>>> indicate that ?x is in both classes.
>>>>>>>
>>>>>>> Dave
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>> Lorenz Bühmann
>>>>> AKSW group, University of Leipzig
>>>>> Group: http://aksw.org - semantic web research center
>>>>>
>>>>>
>>>>>
>>>>
>>>
>

Reply via email to