"Output not found" rule

Request new Verbot® features.

Moderator: Staff

"Output not found" rule

Postby Somniator » Thu Dec 13, 2007 11:16 pm

One improvement that might prevent even intelligent verbots like Athena from looking utterly pathetic by sometimes emitting "Output not found" shouldn't be a big deal.

How about a specific "_notfound" Rule that suppresses the "not found" failure and fires a user-defined "notfound" output instead?
Somniator
MightyBot
MightyBot
 
Posts: 260
Joined: Mon Jul 17, 2006 10:22 pm

Postby Matt » Fri Dec 14, 2007 12:45 am

That's a great idea, we should also log that kinda thing when it happens so that the scripter has an opportunity to find and fix it.
Matt
OmnipotentBot
OmnipotentBot
 
Posts: 2084
Joined: Thu Feb 26, 2004 10:48 pm
Location: Calabasas, CA

Postby Aaron » Fri Dec 14, 2007 5:26 pm

What would be the difference between _notfound and the * (default) rules?
Aaron
SupremeBot
SupremeBot
 
Posts: 1261
Joined: Thu Feb 26, 2004 11:13 pm

Postby Matt » Fri Dec 14, 2007 5:32 pm

I think the no output found is commonly caused by a rule matching without a valid output (either no output or all outputs have false conditions).
Matt
OmnipotentBot
OmnipotentBot
 
Posts: 2084
Joined: Thu Feb 26, 2004 10:48 pm
Location: Calabasas, CA

Postby Somniator » Sat Dec 15, 2007 11:35 pm

That's right. My verbot has a way complex _boring structure that lead to this error frequently in the past.
Or when trying to avoid the same answer a 2nd time...

This would be another great feature request: Is it possible to put two flags onto a rule output dialog:

1. [ ] "Do not fire me twice as long as [_output] equals [_lastoutput]"

2. [ ] "Do not fire me any more in this session!"

It is easy to catch redundant user inputs - that can be done with by using a startup KB. But avoiding double outputs now requires a condition in every output field...!
The situation would be significantly chilled if one program trigger would spare all this amount of code. :roll:
Somniator
MightyBot
MightyBot
 
Posts: 260
Joined: Mon Jul 17, 2006 10:22 pm

Postby Matt » Wed Dec 19, 2007 9:16 pm

I agree, this would be a really cool feature, we've wanted to add some kind of global function calls or event handlers to our main corporate product, I think it would be nice for verbots too.

What I was thinking was OnBeforeRuleFired and similar event/methods.
Matt
OmnipotentBot
OmnipotentBot
 
Posts: 2084
Joined: Thu Feb 26, 2004 10:48 pm
Location: Calabasas, CA

Postby Somniator » Thu Dec 20, 2007 12:57 am

Sounds great! 8)
Somniator
MightyBot
MightyBot
 
Posts: 260
Joined: Mon Jul 17, 2006 10:22 pm

Postby JonC » Mon Apr 28, 2008 9:23 pm

I'm probably way to late with this reply, but I just happened to spot this topic and have got my own solution to it.
Here goes ...

Somniator wrote: ..."Is it possible to put two flags onto a rule output dialog: ..."

This can be done using (admittedly complex at times) conditions in the input or output box.
All you have to remember is that when the whole thing is evaluated it must be true or false.
using the terms && (=AND) and || (=OR) which can be nested can produce multi-flag conditions for input/output rule firing.
Doing this is would be possible to cause a RULE to fire under one set of conditions and its OUTPUTS to fire under a number of different conditions. This will give an IF (condition) then IF (condition) effect.

Hope this helps somewhat
JonC
SupremeBot
SupremeBot
 
Posts: 665
Joined: Wed Apr 02, 2008 6:34 am
Location: Leicestershire, Great Britain

Postby ender » Tue May 06, 2008 4:11 pm

An example method for making a output fire only once in a session would be...

First you have to 'reset' the variable that runs the rule. I've found the best way to do this kind of thing is through the _startup rule, and then have it send to a 'child' of _startup called _startup2 that fires my normal startup messages.

Input : _startup
Output : <?csharp vars["RuleFired"] = "No"; ?> <send _startup2>

Then you have to create the rule that goes with that variable.

Input : How often do you say "hello"?

Condition : vars["RuleFired"] == "No";
Output : I only say hello once a session. <?csharp vars["RuleFired"] = "Yes"; ?>

Condition : vars["RuleFired"] == "Yes";
Output : Sorry. I already said it for this session.


The drawback to this method is that you have to create a variable for EACH output you want to do this with. It could easily become very cumbersome.
ender
ScribeBot
ScribeBot
 
Posts: 47
Joined: Sat Mar 29, 2008 3:01 pm

Postby bluespace » Sat Jul 12, 2008 4:13 pm

Will it be fixed soon ... ? :) As I am also having trouble with "No output Found" and Blank Outputs
Thanks
bluespace
MasterBot
MasterBot
 
Posts: 449
Joined: Tue Jul 20, 2004 12:44 pm
Location: MilkyWay- Solar System- Earth- Asia- India- Kerala- Kochi (All Aliens R Invited)

Postby Matt » Sun Jul 13, 2008 7:57 am

We are currently very busy with making improvements to our enterprise applications, if we have time to release updates to Verbots I'd like to make it a major upgrade, including .NET 2.0 upgrade as well as other improvements like this.
Matt
OmnipotentBot
OmnipotentBot
 
Posts: 2084
Joined: Thu Feb 26, 2004 10:48 pm
Location: Calabasas, CA

Postby ender » Wed Jul 16, 2008 10:22 pm

Which really means not any time soon if ever ... ;) Thats okay, we understand. Good to know you haven't just forgotten about us ... there are certainly updates I will be excited to see ... such as the one this thread is about and this one here ... http://www.verbots.com/forums/viewtopic.php?t=2635
Have you ever wondered why north is always up on a map? Would anything really change if up was down? or left or right for that matter?
ender
ScribeBot
ScribeBot
 
Posts: 47
Joined: Sat Mar 29, 2008 3:01 pm

Postby JonC » Tue Dec 09, 2008 9:32 pm

Coming back on this one again:

I think that having a 'special' output in a rule that enables you to react to output not found could be very powerful - if only because it can be very hard to code for 'negatives', particularly if you are using that rule to select between a (large) number of possible responses.
I'd like a way of saying "if all other outputs are invalid do this" without having to write a huge list of conditionals.

I bet there would be a small speed advantage too.
JonC
SupremeBot
SupremeBot
 
Posts: 665
Joined: Wed Apr 02, 2008 6:34 am
Location: Leicestershire, Great Britain

Postby JonC » Wed Mar 24, 2010 7:57 pm

Actually, there is a sort of way to do this (at least in Verbot5).
I queried how rule outputs work and V5 will select an conditional output (with matched conditions of course) over an unconditional one.
Therefore, if all your rule outputs have conditions, adding an unconditional rule will give precisely the "do this if you can't do anyting else" output, which give the possibility of (eg) sending to an error handler.
---
You can also select outputs "in" for selection by just adding the word true to the output conditions.
---
Thus I think this problem has been solved.
JonC
SupremeBot
SupremeBot
 
Posts: 665
Joined: Wed Apr 02, 2008 6:34 am
Location: Leicestershire, Great Britain

Postby Matt » Thu Sep 02, 2010 8:34 pm

Thanks for your patience on this, I was able to make some time to finish implementation of this feature and release a new version, check it out (you can download the new sample here) and let me know how it works for you.

thanks,
-Matt
Matt
OmnipotentBot
OmnipotentBot
 
Posts: 2084
Joined: Thu Feb 26, 2004 10:48 pm
Location: Calabasas, CA

Next

Return to Feature Requests

Who is online

Users browsing this forum: No registered users and 0 guests