MISS MANNERS: "Seat Your Guests Properly"
 

What's So Special?

First of all

The interface is all ajaxie and neat. Props to the John Resig and the Team at jQuery for the sturdy framework - it makes development joyful.

More importantly

The back end is driven by a state of the art rule and process engine. Being possibly the first software architecture to integrate a rule engine with a process engine, we may be breaking some seriously new ground

The code

Miss Manners, a frequent sample problem, can be summarized in our scripting language as follows:


member(X,[X|_]) --> true; 
member(X,[_|L]) --> member(X,L); 

answer(A) --> seating_list(1,[_],A); 

seating_list(N,L0,L) : last_seat(N) --> L=L0; 
seating_list(N1,L0,L) --> 
L0 = [Name1|_] 
and guest(Name1,Sex1,Hobby) 
and guest(Name2,Sex2,Hobby) 
and not Name1=Name2 
and not Sex1=Sex2 
and not member(Name2,L0) 
and eval(N1+1,N2)  
and seating_list(N2,[Name2|L0],L); 
							

Rather straight forward, as you can see - after groking some syntax the tools are very powerful. We are also developing a graphical user interface for rule and process editing for laymen users. What this will allow for, we can only wait and see.