(?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

Reply via email to