Me parece una pena que esta discusión se pierda por el rollo de critica vs comentario, que me lo empaqueto todo y me lo leeré tranquilamente en mi casa (si ya se que es pecado no tener internet propio, no me flageleis por ello). Te comento paso a paso Al:
Al-Khwarizmi escribió:
Comentario 2:
Me han llamado la atención los comentarios de Urbatain sobre cómo debería llevarse a cabo el análisis sintáctico. Es curioso, porque diferimos totalmente en nuestras ideas al respecto. El parser del AGE tiene un comportamiento parecido al de Superglús (o a la descripción que Urba hace del de Superglús). Es decir, se fija en las palabras que entiende, y las que no entiende las ignora. Si con lo que entiende puede hacer algo, lo hace, aunque no toda la frase esté "bajo control".
Si, has entendido perfectamente mi descripción, y yo espero haber hacertado en el análisis de Superglús.
Citar:
Yo creo que ésta es la manera más lógica de hacer el análisis sintáctico (¡sí, algo en lo que estoy con Superglús en vez de con Inform!

). Todos sabemos que cualquier parser de lenguaje natural es imperfecto, y más todavía los que creamos en el mundo de la aventura, que no usan precisamente las últimas tecnologías en este sentido. Hemos de reconocer, pues, que siempre puede darse la posibilidad de que el usuario nos indique una frase que tenga sentido y nosotros no sepamos interpretarla exactamente.
De momento a mi también me parece lógica. El parser propio de Jarel también usaba eso y era bastante correcto.
Citar:
En este tipo de contextos, se suele hablar de parsing robusto en contraposición al parsing estricto: el parsing robusto es capaz de recuperarse de este tipo de situaciones, y si no puede construir un análisis sintáctico exacto, construye uno aproximado, ya sea modificando la frase ("ha puesto 'mirar el maldito libro' y no entiendo 'maldito', pues paso de él y supongo que se refiere a 'mirar el libro'") o modificando la gramática ("ha puesto 'mirar el maldito libro' y sé que se puede <mirar nombre> pero no sabía que se pudiese <mirar adjetivo nombre>... pero si él lo dice, vamos a suponer que se puede"). Evidentemente, de estas dos aproximaciones la primera parece la más fácil de aplicar a las aventuras.
El riesgo de este tipo de parsing es que el parser se "pase de listo" y haga algo que el usuario no quería hacer, como en los ejemplos tipo "mirar el ñadslkslj" de Urba. Pero no me parece que este riesgo tenga importancia comparado con la capacidad de entender más cosas que nos da el "abrir la mano" en el parsing.
Aqui es donde no estoy nada de acuerdo. Como he puesto en mis ejemplo, y por desgracia no son inventados, son sacados de un juego, pueden ser bastantes peligrosos... quizás en el ejemplo de escuchar es inocuo porque no es algo crucial pero quizás la acción pudiera ser otra, en un juego de lucha la cosa se podría poner mala si en vez de golpear al orco golpeas por error a tu colega que se ha disfrazado de orco. Además tu ejemplo no justifica un parseado tan poco estricto porque si el libro es maldito, maldita sea es labor del maldito programador poner los adjetivos adecuados.
Citar:
Los usuarios normales no ponen "mirar el ñadslkslj", y si lo ponen y no les sale lo que esperaban se lo tienen merecido (de hecho, merecerían la muerte de su personaje

). No se me ocurren muchos casos reales en los que el "abrir la mano" en el parsing pueda crear trastornos de verdad al usuario (es decir, que sean cuestión de vida o muerte... porque si por error el parser te hace mirar algo que no querías mirar, tampoco me parece tan grave,
A mi se me ocurre una. El programador avispado tipo Dr Van Hallen ha programado que en cierta localidad al poner ABRIR a secas se abra la única puerta que hay (el estúpido inform siempre se pasa de listo con estas cosas, lo odio) El jugador teclea abrir mano, y el juego va y abre la puerta. No es grave pero es absurdo y queda fatal que es más importante.
Citar:
sobre todo teniendo en cuenta que la alternativa es decir que no entiendes la frase). Supongo que algún caso habrá, pero vamos... como en cualquier decisión de diseño, se trata de sopesar ventajas e inconvenientes. Desde luego, en mi modesta opinión, el análisis estricto tiene más inconvenientes que ventajas.
En fin mi propuesta, sincera, y que me da igual si aceptais o no o siquiera escuchais, para AGE y Superglús es que el parseado sea semiestricto, igualito al de PAW oiga. Que se pase por el forro las palabras que ni siquiera estén en su diccionario cuando sean superfluas. Lo que yo reivindico es que si una palabra SI existe en vocabulario y por tanto el parser SI la entiende, que responda adecuadamente si la palabra está mal usada. O sea, que el parser sea estricto en cuanto a palabras que SI reconozca en su vocabulario, y que sea poco estricto cuando son palabras que no existen.
Volviendo al ejemplo de mi comentario de Rudolph, si ESCUHAR GRILLO no está contemplado que te diga NO PUEDES HACER ESO, o ESO NO TIENE NADA QUE ESCUCHAR, en vez de escuchas los árboles primorosos.... yo de verdad recomiendo a ti y a Uto que volvais a releer la zona del parser en mi comentario y discutamos el asunto a fondo. Si es que os interesa mejorar vuestro parser... sin yo pretender que ya de por si sean inferiores a informate. Estoy dispuesto a discutir lo que sea y a tragarme mis palabras si me convenceis... vamos esto va a Uto en concreto, dejate de amor de padre y vamos a lo que interesa que es mejorar Superglús. Lo dicho... yo no gano nada si quereis una discusión filosófica de diseño estricto o no de parsers

aqui estoy yo.
Chao.
[/quote]