This is not a Jena specific problem - that also for all applications working with rule engines having a monotonic nature...
Why can't you try your code then? You know, programming is sometimes also trying out whether things work as expected. And according to [1], the class will be replaced for the given individual. [1] https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/ontology/Individual.html#setOntClass-org.apache.jena.rdf.model.Resource- On 21.01.2017 18:14, tina sani wrote: > Lorenz, I am not very expert in Jena and thinking about it from few hours. > If we do something like this after the Jena rule, > > If (salary>10k) > employee.setOntClass(Programmer class) > else > employee.setOntClass(Manager class); > > I dont know what this code will work, will work or not, but it is my > thinking in very abstract way. > > > > On Sat, Jan 21, 2017 at 3:03 PM, Lorenz B. < > buehm...@informatik.uni-leipzig.de> wrote: > >> Of course you have to handle it in your application code. And that's >> your task to solve this problem >> Again, rules infer new facts based on the existing facts. Nothing more, >> nothing less. No deletion or replacement of facts. >> >>> Lorenz, question arises then how to cope with it? >>> >>> On Fri, Jan 20, 2017 at 8:39 PM, Lorenz Buehmann < >>> buehm...@informatik.uni-leipzig.de> wrote: >>> >>>> Rules do not replace values - that's the nature of Jena rules and also >>>> other rule languages like SWRL - called monotonicity. >>>> >>>> More is not to say. >>>> >>>> >>>> On 20.01.2017 17:29, tina sani wrote: >>>>> I am asking why the Jena rules some times lead to duplicate values. By >>>>> duplicate values, I mean it does not over write the old values when >>>> certain >>>>> new values comes in. >>>>> I have a rule which says if an employee salary exceeds 10k usd, the >>>> emplyee >>>>> should be assigned to a Manager class else to Programmer class. >>>>> >>>>> In the early stages of the system, my rules assign her to Programmer >> when >>>>> salary is less than 10k and works fine. >>>>> When later the same employee salary exceeds the threshold, it assign it >>>> to >>>>> Manager class, again fine. But the problem is that it did not replace >> the >>>>> old value and I can see both the values in my file: >>>>> *Jim Type Programmer* >>>>> *Jim Type Manager* >>>>> >>>>> *Now should it be avoided and if yes how? From week, I am working on it >>>> but >>>>> so far failed.* >>>>> >> -- >> Lorenz Bühmann >> AKSW group, University of Leipzig >> Group: http://aksw.org - semantic web research center >> >>