Please provide  a minimal running example that does not work

1) minimal data - in Turtle format
2) the rule that you use
3) the code that performs the rule loading + querying

> 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 <[email protected]> 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 <[email protected]>
>> 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 <[email protected]>
>>>> 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. <
>>>>> [email protected]> 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 <
>>>>>>>
>>>>>> [email protected]>
>>>>>>
>>>>>>> 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
>>>>>>
>>>>>>
>>>>>>
-- 
Lorenz Bühmann
AKSW group, University of Leipzig
Group: http://aksw.org - semantic web research center

Reply via email to