A system for programming automation by demonstration where a control program may be created or modified through the process of demonstrating desired behavior using graphical representations (or widgets) of physical, programming, and user interface elements. Widgets have state, or properties, and may...http://www.google.es/patents/US7505817?utm_source=gb-gplus-sharePatente US7505817 - Programming automation by demonstration