So all I should so is to create rdfs model:

InfModel inf2 = ModelFactory.createRDFSModel();

What would be the arguments of the ModelFactory.createRDFSModel(). I
have two models here, one the simple non inference model and other the
inference model : InfModel inf = ModelFactory.createInfModel(reasoner,
model);




On Fri, Nov 25, 2016 at 3:59 PM, Lorenz B. <
[email protected]> wrote:

>
>
> > Yes I use GenericRuleReasoner, so using the following rules along with my
> > own rules will solve the problem?
> >
> > ?x rdfs:subClassOf emp:ContractEmployee--> ?x rdfs:subClassOf
> emp:Employee
> > ?x rdfs:subClassOf emp:PermanantEmployee--> ?x rdfs:subClassOf
> emp:Employee
> That might be incomplete as rdfs:subClassOf is transitive. Simply use
> the RDFS reasoning.
> >
> > On Thu, Nov 24, 2016 at 11:39 AM, Lorenz B. <
> > [email protected]> wrote:
> >
> >>>  If I pass OntModelSpec.OWL_MEM_MICRO_RULE_INF” to the OntModel, will
> >> it do
> >>> the RDFS reasoning?
> >> See [1] in general and in particular [2] which shows how to setup an
> >> RDFS reasoner
> >>
> >> InfModel inf = ModelFactory.createRDFSModel(rdfsExample);
> >>
> >> or
> >>
> >> Reasoner reasoner = ReasonerRegistry.getRDFSReasoner();
> >> InfModel inf = ModelFactory.createInfModel(reasoner, rdfsExample);
> >>
> >> [1] https://jena.apache.org/documentation/inference/ [2]
> >> https://jena.apache.org/documentation/inference/#generalExamples
> >>> b) adding the particular rules to your set of rules
> >>>  I have already created the rules, mentioned in my first email. You
> means
> >>> rules other than that?
> >> I don't know how you setup your rules, but if you use the
> >> GenericRuleReasoner it does only apply your rules and you would have to
> >> add the rules that do the rdfs:subClass/rdf:type inference.
> >>> On Wed, Nov 23, 2016 at 11:50 AM, Lorenz B. <
> >>> [email protected]> wrote:
> >>>
> >>>> Dave meant that you need an additional layer of reasoning like RDFS or
> >>>> even less to get the inferences that you describe.
> >>>> This can be done by
> >>>>
> >>>> a) nesting two InfModels one that works on your specific rules and one
> >>>> that uses some kind of RDFS or
> >>>> b) adding the particular rules to your set of rules
> >>>>
> >>>>> Ok sorry Dave, actually I did not completely understand your answer.
> >>>>>
> >>>>> "You could have an inference model with the appropriate configuration
> >> to
> >>>>> deduce membership of employee"
> >>>>>
> >>>>> Yes I have the inference model:
> >>>>>  Reasoner reasoner = new GenericRuleReasoner(Rule.parseRules(rule));
> >>>>>         InfModel infer = ModelFactory.createInfModel(reasoner,
> model);
> >>>>>
> >>>>>             Query query = QueryFactory.create(queryString);
> >>>>>
> >>>>>      QueryExecution qe = QueryExecutionFactory.create(query, infer);
> >>>>>
> >>>>> What additionally I have to do apart from my Jena rule (Forward
> Chain)
> >>>>> mentioned in previous email and the inference model.
> >>>>>
> >>>>> And of course, I will have a SPARQL query :
> >>>>> Select *
> >>>>> where{ ?x rdf:type emp:QualifiedEmployee }
> >>>>>
> >>>>> On Tue, Nov 22, 2016 at 6:03 PM, Dave Reynolds <
> >>>> [email protected]>
> >>>>> wrote:
> >>>>>
> >>>>>> On 22/11/16 14:56, tina sani wrote:
> >>>>>>
> >>>>>>> Let me explain a bit.
> >>>>>>>
> >>>>>>> String rule = "[rule1:(?x http://www.w3.org/1999/02/22-
> >>>> rdf-syntax-ns#type
> >>>>>>> http://www.semanticweb.org#Employee) "
> >>>>>>>                 + "( ?x http://www.semanticweb.org#Salary  ?salary
> >> )"
> >>>>>>>                 + "greaterThan(?salary, 10,00) "
> >>>>>>>                 + " ->  (?x http://www.w3.org/1999/02/22-r
> >>>>>>> df-syntax-ns#type
> >>>>>>> http://www.semanticweb.org#QualifiedEmployee. )]"
> >>>>>>>
> >>>>>>>
> >>>>>>> Classes in my ontology are
> >>>>>>>
> >>>>>>> Employee (Super class of all employees)
> >>>>>>>    * ContractEmployee*  (Subclass of Employee)
> >>>>>>>            FinanceManager
> >>>>>>>             ITManager          (Subclasses of ContractEmployee)
> >>>>>>>    * PermanantEmployee   *(Subclass of Employee)
> >>>>>>>             Analyst
> >>>>>>>             Programmer
> >>>>>>>
> >>>>>>> In this case, will I use ?x rdf:type Employee  or  ?x rdf:type
> >>>>>>>  ContractEmployee
> >>>>>>> All the instances are either from subclasses  * FinanceManager ,
> >>>> ITManager
> >>>>>>> or Analyst, Programmer*
> >>>>>>>
> >>>>>>> *Is it must that if I use ?x rdf:type Employee, then
> FinanceManager &
> >>>>>>> ITManager should also be sub classes of general super class
> >> "Employee"
> >>>> ?*
> >>>>>> I don't think any of these details change my earlier answer, quoted
> >>>> below.
> >>>>>> Dave
> >>>>>>
> >>>>>>
> >>>>>> On Tue, Nov 22, 2016 at 5:30 PM, Dave Reynolds <
> >>>> [email protected]>
> >>>>>>> wrote:
> >>>>>>>
> >>>>>>> On 22/11/16 10:12, tina sani wrote:
> >>>>>>>> Inline image 1
> >>>>>>>> The mail list doesn't support attachments so the image didn't come
> >>>>>>>> through.
> >>>>>>>>
> >>>>>>>> However, I'm guessing it included a class Employee with
> sub-classes
> >>>>>>>> ContractEmployee and PermanantEmployee.
> >>>>>>>>
> >>>>>>>> I have this ontology: Now if I want to use some rules like
> >>>>>>>>
> >>>>>>>>> if x rdf:type Employee and ?x salary>Euro10,000. then ?x
> >>>>>>>>> QualifiedEmployee.
> >>>>>>>>>
> >>>>>>>>> My question here is should I use ?x rdf:type Employee or ?x
> >> rdf:type
> >>>>>>>>> ContractEmployee or PermanantEmployee
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>> Depends on your set up.
> >>>>>>>>
> >>>>>>>> You could have an inference model with the appropriate
> configuration
> >>>> to
> >>>>>>>> deduce membership of employee and then query that with SPARQL or
> >> with
> >>>> a
> >>>>>>>> second inference model with your own rules in.
> >>>>>>>>
> >>>>>>>> If you want just one layer of rules and want to combine OWL/RDFS
> >> with
> >>>>>>>> your
> >>>>>>>> custom rules then that's possible (so long as you set all the
> >>>> appropriate
> >>>>>>>> flags, see documentation) but make sure that your own rules are
> >>>> backward
> >>>>>>>> not forward rules. [The default Jena rule sets for RDFS and OWL
> are
> >>>>>>>> hybrid
> >>>>>>>> rules so some of the inferences are only available to backward
> rules
> >>>> in
> >>>>>>>> the
> >>>>>>>> same rule set.]
> >>>>>>>>
> >>>>>>>> Or if you don't want the cost of full inference then you can
> indeed
> >>>>>>>> rewrite the "natural" query to explicitly check for the base
> >>>> memberships.
> >>>>>>>> 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
> >>
> --
> Lorenz Bühmann
> AKSW group, University of Leipzig
> Group: http://aksw.org - semantic web research center
>
>

Reply via email to