<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