(?u ie:memberOf ?g)
<- (?g ie:mandatoryInterestsForGroupInclusion ?i)
allValue(?i ie:#hasIndivudalInterestOf ?u)
If I wrote an allValue builtIn, this would solve the problem correct.
What I mean by this is all forward chaining would take place first, and now
I could backward chain allValue. All I need to do is write allValue.
This is correct, right?
Now I looked at noValue and
return !context.contains(subj, pred, obj);
and this is where I would make the change correct?
Also, how do I tell Jena of a new built in?
On Wed, Nov 7, 2012 at 4:08 AM, Dave Reynolds <[email protected]>wrote:
> On 07/11/12 00:18, Scott Streit wrote:
>
>> *Dave, I have some subsequent questions.
>>
>> If you have forward rule:*
>>
>>
>> (?g ie:mandatoryInterestsForGroupI
>> nclusion ?i),
>> noValue(?u ie:hasIndividualInterestOf ?i),
>> noValue(?u ie:memberOf ?g)
>> ->
>> * (?u ie:notEligibleFor ?g)
>>
>>
>> This whole thing has to fire after the previous forward rule to add
>> interests to users. How can I be assured that it fires after the forward
>> chaining rules for adding interests to groups. *
>>
>
> Unfortunately you can't.
>
> The rules engine doesn't have any stratification of rules. The noValue
> predicate is horribly non-logical (it is not a negation), if you use
> noValue on a predicate that you are also asserting via another rule then
> all bets are off.
>
> You can nest rule engines, create one InfModel over the top of another,
> which *may* get you the layering you want.
>
> Dave
>
>
--
"If you are lucky enough to have lived in Paris as a young man, then
wherever you go for the rest of your life, it stays with you, for Paris is
a moveable feast." - Ernest Hemingway
www.scottstreit.com