Giter VIP home page Giter VIP logo

Comments (2)

plison avatar plison commented on July 18, 2024

Yes, you are completely right - such types of rules can indeed produce infinite update loops. It's something that has bothered me for a while, but I have not yet found a satisfying, principled solution to it. Simply forbidding rules to have variables present in both the conditions and the effects would of course do the trick, but it seems to me a bit too extreme, as there are cases where such types of rules can be genuinely useful (if designed carefully to avoid never-ending loops).

Maybe a better solution would be to check at runtime whether an update leads to a recursive loop, and stop the loop in such a case, together with a warning message to the user to inform her/him that the domain likely contains a design error.

I'll have a closer look at this next week. Will keep you posted!

Le 22 juillet 2015 09:09:23 GMT+02:00, bakuzen [email protected] a écrit :

Consider the following rule in a domain file (model is triggered by
"Speech"):

While this is a poorly constructed rule (obviously, the second "set"
line was leftover or copied from something), it will cause an infinite
loop in opendial, as setting Speech to "okay" triggers the speech, and
the contents satisfies the rule, which then runs again. Either this
potentially common error could be documented (it may already be, I
admit I haven't been through everything), or perhaps a check within
opendial could be thrown that a rule shouldn't set variables with
values that are already set in the condition.


Reply to this email directly or view it on GitHub:
#12

Sent from my cellphone. Please excuse my brevity.

from opendial.

plison avatar plison commented on July 18, 2024

OK, I've added in the master branch a new version of the update loop in DialogueSystem which should fix this infinite loop issue!

from opendial.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.