© 2009 ibm corporation end user programming (naturalmente) pablo pedemonte – sw engineer 16 sep...
TRANSCRIPT
© 2009 IBM Corporation
End User Programming (Naturalmente)
Pablo Pedemonte – SW Engineer
16 Sep 2010
© 2009 IBM Corporation2
Agenda
Conceptos de End User Programming
CoScripter: Programación por Demostración + lenguaje natural
Más aplicaciones de lenguaje natural
Problemas a resolver
Sumario
© 2009 IBM Corporation3
End User Programming (EUP)
Acerca (parte de) el poder de la programación a los no programadores
Personas sin experiencia en programación pueden modificar o mejorar artefactos de software
Lenguajes de Scripting
Programación Visual
Grabación de Macros
Programación por Demostración
© 2009 IBM Corporation4
Lenguajes de Scripting
Son la 1ra materialización del concepto de EUP
Construcciones de dominio específico:
Facilita programar, pero no está diseñado para el usuario común
enter(“address”,“221B Baker Street”); vs:
var i = document.forms[0].inputAddr;i.value = “221B Baker Street”;
© 2009 IBM Corporation5
Programación Visual
Los entornos de programación visual definen metáforas para construir programas de manera gráfica
Algunas de las metáforas típicas:–Flujo de datos entre nodos (el programa es un grafo)
–Reglas de reescritura definidas gráficamente
–Composición de bloques (Open Blocks)
Ejemplo: Google App Inventor
© 2009 IBM Corporation6
Grabación de Macros
Consiste en grabar acciones llevadas a cabo por los usuarios, se pueden reproducir cuando se desee
Limitación principal:
–Los macros no analizan el significado de las acciones grabadas
–Ejemplos:
• Borrar la primera palabra de una oración• Eliminar comentarios de un fragmento de código C: /*...*/
© 2009 IBM Corporation7
Programación por demostración (PPD)
EUP + Inteligencia Artificial
Se graban las acciones del usuario
Pero además, se intenta inferir la intención de dichas acciones
La idea:
–Si un usuario es capaz de demostrar cómo llevar a cabo una tarea, un sistema de PPD debería poder producir un programa que la ejecute
Mucho más sencillo que scripting o programación visual
Pero menos poderoso...
© 2009 IBM Corporation8
Agenda
Conceptos de End User Programming
CoScripter: Programación por Demostración + lenguaje natural
Más aplicaciones de lenguaje natural
Problemas a resolver
Sumario
© 2009 IBM Corporation9
CoScripter: Programación por Demostración + Lenguaje Natural
Usuarios “muestran” cómo llevar a cabo una tarea en un sitio web
CoScripter infiere descripciones en lenguaje natural de los pasos a seguir
Scripts resultantes grabados en una wiki
© 2009 IBM Corporation10
CoScripter: ejemplo
* Go to http://www.liveatc.net/* Click the “Top 50 LiveATC Feeds” link* Enter “SABE” into the “Find LiveATC Streams” textbox* Click the “Listen to SABE” button
© 2009 IBM Corporation11
Por qué utilizar lenguaje natural?
Le da un “toque social” a CoScripter
Contribuye a compartir de modo efectivo el conocimiento sobre cómo llevar a cabo tareas en la web
Los usuarios pueden entender los scripts:
–Modificarlos es trivial
–Mitiga el temor de ejecutar código desconocido en nuestro browser: “Qué hará este script?”
© 2009 IBM Corporation12
Agenda
Conceptos de End User Programming
CoScripter: Programación por Demostración + lenguaje natural
Más aplicaciones de lenguaje natural
Problemas a resolver
Sumario
© 2009 IBM Corporation13
Síntesis de Scripts
Es típico encontrar secuencias de instrucciones en manuales de usuario
Podemos identifcar dichas secuencias con técnicas de Machine Learning?
Podemos sintetizar scripts a partir de dichas secuencias?
Ejemplo:
–Generar CoScripter a partir de instrucciones sobre cómo adminstrar una aplicación desde una interfaz web
© 2009 IBM Corporation14
Casos de Prueba en Lenguaje Natural
Idea: especificar casos de pruebas sobre interfaces gráficas como una secuencia de acciones + pasos de verificación en lenguaje natural
Ejemplo:
End User Programming para testers
Robot basado en CoScripter puede ejecutar suites de tests de modo automático
* Enter your name in the “User ID” textfield* Enter your password in the “Password” textfield* Click the “Log In” button* Verify there is a label with text “Welcome”
© 2009 IBM Corporation15
Agenda
Conceptos de End User Programming
CoScripter: Programación por Demostración + lenguaje natural
Más aplicaciones de lenguaje natural
Problemas a resolver
Sumario
© 2009 IBM Corporation16
Problemas a Resolver
End User Programming:
Inferir correctamente la intención del usuario
RIAs complican el proceso:–Ej: Click en un ítem de menú
–Click the “Add New Folder” link vs:
–Select the “Add New Folder” menu item
–Precisamos contexto semántico
–Accesibilidad puede ser la solución
© 2009 IBM Corporation17
Problemas a Resolver
Lenguaje Natural para End User Programming:
Internacionalización
Tratar correctamente con ambigüedades
Velocidad de procesamiento (ej., servicio de autocompletar)
© 2009 IBM Corporation18
Agenda
Conceptos de End User Programming
CoScripter: Programación por Demostración + lenguaje natural
Más aplicaciones de lenguaje natural
Problemas a resolver
Sumario
© 2009 IBM Corporation19
Sumario
EUP se trata de acercar el poder de la programación al “usuario común”.
No programadores pueden mejorar productos de software, adaptándolos a sus necesidades.
PPD es una forma de EUP: mediante técnicas de IA, un sistema observa las acciones de un usuario e infiere su intención.
El procesamiento de lenguaje natural puede ser una contribución importante para EUP y PPD. Hace falta más investigación en este campo.