CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 12 Ago 2020 21:30

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 65 mensajes ]  Ir a página Anterior  1, 2, 3, 4, 5  Siguiente
Autor Mensaje
NotaPublicado: 08 Abr 2011 15:29 
Desconectado
Yiepp
Yiepp

Registrado: 01 Mar 2011 20:20
Mensajes: 77
jenesis escribió:
kalel099 escribió:
Vaya! no pretendia abrir viejos debates. Sorry chicos

Me queda claro que cada uno tiene sus preferencias, y todo se basa en gustos, y lo que uno ve que es mejor con su experiencia. Crei que habria un consenso al respecto en plan "un parser tiene que usar esto asi y asa porque sino es inviable", pero ya veo que ambas posturas tienen sus pros y sus contras


Jajajaja , tranquila no es tu culpa, sino mía por intervenir.
Tengo una facilidad innata para desatar discusiones de este tipo, incluso diciendo claramente que no quiero convencer a nadie de nada. :lol:


Si es que me asustais con vuestros debates :lol:


Arriba
 Perfil  
 
NotaPublicado: 08 Abr 2011 15:37 
Desconectado
Yiepp
Yiepp

Registrado: 01 Mar 2011 20:20
Mensajes: 77
Makinaimo escribió:
Y si el jugador introduce una instrucción que no está definida en la aventura, sigo siendo de la opinión de que hay que dejarle claro que no debe volver a teclearla porque no va a funcionar. [...].
Y vaya.... que me he ido completamente del tema del hilo. Ya lo siento.


No creo que este fuera del tema del hilo, todo acaba siendo de lo mismo.

Yo personalmente opino igual que no se deberia de dar ese "tipo de pistas" al jugador. Si el agua no se puede pintar, no se puede pintar y listo.


Me esta gustando comprobar que: persona nueva que escribe en este hilo, persona que opina y espera algo distinto que los demas de un sistema de autoria. Reafirma mas lo que comentabamos al principio, que esta claro que la libertad que tiene que dar el sistema es la clave, para que sea el autor el que modifique todo lo que quiera a su gusto.

Por esto mismo, las palabras de jenesis ...
jenesis escribió:
Así pues para mí es suficiente con que un sistema de autoría me proporcione una lista de verbos, y dos respuestas por defecto, una para aquello que no desencadena una acción determinada, y otra para aquello que el parser no entiende.
Con eso y la posibilidad de modificar o añadir las respuestas que yo crea oportunas, me doy por satisfecha.

creo que son acertadas, o al menos yo asi lo veo ahora mismo.


Arriba
 Perfil  
 
NotaPublicado: 08 Abr 2011 15:45 
Desconectado
Yiepp
Yiepp

Registrado: 01 Mar 2011 20:20
Mensajes: 77
Fernando Gregoire escribió:
Al-K, todos sabemos que una aventura conversacional es en realidad un simple programa de ordenador y debemos atenernos a ciertas reglas al darle órdenes, con lo que creo que tu analogía que las aventuras en Inform terminan pareciendo un terminal de comandos no tiene sentido. Por mi parte como jugador, ¿por qué me gustan las aventuras de Inform? Porque por lo general ya sé cuál es el problema de mi entrada y eso que no sé casi nada de programar ni en Inform. En cambio, en AGE siempre me queda la duda de si el verbo no se admite o estoy nombrando mal algún objeto.
Además, ¿por qué habría de admitirse un comando del tipo mirar dentro cesta siendo gramaticalmente incorrecto? Ya bastante mal escribe la gente como para continuar el círculo vicioso. Y es que una de las reglas que Jarel pone en sus manuales con la cual yo estoy de acuerdo, es "No hables como los indios".



Esto quizas me daba para iniciar otro hilo :lol:

Menuda duda existencial me has creado con tus palabras Fernando,
Citar:
¿por qué habría de admitirse un comando del tipo mirar dentro cesta siendo gramaticalmente incorrecto?


Claramente todos los juegos a los que he jugado contemplaban estas opciones. Ignoro cuantos hay que no dejan escribir frases como

"mira mesa"
"mira pelota en mesa"

Visto asi, ¿se incluirian tambien los shortscuts como "inventario" o "norte"?

Creo que ya lo comente en alguna ocasion que yo como jugadora soy incapaz de hablar correctamente a un parser, y tengo complejo indio total, pero reconozco que es mas rapido.

Y ahi lanzo la pregunta, ¿se debería de PROHIBIR en un sistema de autoria este tipo de errores gramaticales?


- Arbol sintactico
Retomando la idea de Al-K de que un parser recogiera la entrada del usuario y devolviera su arbol sintactico, estos errores gramaticales no tendrian cabida, al menos que se diseñara ese analizador sintactico MAL intencionadamente para cubrir estas cosas.

(creo que reordenare mis dudas existenciales y 'os acosare' con un nuevo hilo 'abre-viejos-debates' :P )


Arriba
 Perfil  
 
NotaPublicado: 08 Abr 2011 16:09 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5312
Ubicación: Coruña
kalel099 escribió:
Retomando la idea de Al-K de que un parser recogiera la entrada del usuario y devolviera su arbol sintactico, estos errores gramaticales no tendrian cabida, al menos que se diseñara ese analizador sintactico MAL intencionadamente para cubrir estas cosas.

Bueno, eso que llamas "diseñar un analizador sintáctico mal" es práctica muy común en procesamiento del lenguaje natural. De hecho, lo que no es común (y nadie hace hoy en día) es diseñarlo "bien" :)

Normalmente, cuando desarrollas un analizador sintáctico para una aplicación cualquiera de lenguaje natural, lo que sueles querer no es sentar cátedra sobre qué expresiones son correctas y cuáles no; sino entender al usuario. Si por ejemplo desarrollas un sistema telefónico automático para un servicio técnico de informática y un cliente te dice "me se apaga el ordenador solo", tu sistema no debería dejar de entender la frase porque esté mal dicha (lo único que conseguirás es que el cliente quede insatisfecho), sino que debería producir un árbol sintáctico igual aunque sea gramaticalmente incorrecta, y así darle la solución que busca.

Por ello se suele decir que una de las características más deseables para cualquier analizador sintáctico que se use en entornos reales es la robustez, es decir, que sea capaz de responder a entradas no gramaticales (que se pueden deber a que la frase se formuló mal como en el ejemplo de antes, pero también a errores tipográficos, de OCR, de reconocimiento de voz, de cobertura de la gramática, de evolución del lenguaje, etc.) Hoy en día prácticamente todos los analizadores de lenguaje natural que se utilizan en aplicaciones reales se diseñan con eso en mente, de una manera o de otra, porque capturar con una gramática todas las posibles entradas que te pueden aparecer se considera misión imposible.

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
NotaPublicado: 08 Abr 2011 16:37 
Desconectado
Yiepp
Yiepp

Registrado: 01 Mar 2011 20:20
Mensajes: 77
Al-Khwarizmi escribió:
kalel099 escribió:
Retomando la idea de Al-K de que un parser recogiera la entrada del usuario y devolviera su arbol sintactico, estos errores gramaticales no tendrian cabida, al menos que se diseñara ese analizador sintactico MAL intencionadamente para cubrir estas cosas.

Bueno, eso que llamas "diseñar un analizador sintáctico mal" es práctica muy común en procesamiento del lenguaje natural. De hecho, lo que no es común (y nadie hace hoy en día) es diseñarlo "bien" :)

Normalmente, cuando desarrollas un analizador sintáctico para una aplicación cualquiera de lenguaje natural, lo que sueles querer no es sentar cátedra sobre qué expresiones son correctas y cuáles no; sino entender al usuario. Si por ejemplo desarrollas un sistema telefónico automático para un servicio técnico de informática y un cliente te dice "me se apaga el ordenador solo", tu sistema no debería dejar de entender la frase porque esté mal dicha (lo único que conseguirás es que el cliente quede insatisfecho), sino que debería producir un árbol sintáctico igual aunque sea gramaticalmente incorrecta, y así darle la solución que busca.

Por ello se suele decir que una de las características más deseables para cualquier analizador sintáctico que se use en entornos reales es la robustez, es decir, que sea capaz de responder a entradas no gramaticales (que se pueden deber a que la frase se formuló mal como en el ejemplo de antes, pero también a errores tipográficos, de OCR, de reconocimiento de voz, de cobertura de la gramática, de evolución del lenguaje, etc.) Hoy en día prácticamente todos los analizadores de lenguaje natural que se utilizan en aplicaciones reales se diseñan con eso en mente, de una manera o de otra, porque capturar con una gramática todas las posibles entradas que te pueden aparecer se considera misión imposible.


Interesante (y logica) explicacion, pero ¿donde esta el limite entonces?
Tiene que llegar un punto donde un procesador de entrada devuelva el 'no te entiendo'.

Tenemos:
Código:
1.- dale un golpe a la puerta con el martillo
2.- da un golpe a la puerta con el martillo
3.- da golpe a puerta con martillo
4.- da golpe puerta martillo
5.- da golp a peurta ocn mrtillo


¿Se supone que un parser debe entender las 5 posibilidades a pesar de que solo la (1) y la (2) estan escritas correctamente?
¿que hay niveles de 'comprension'?:
- un parser completo reconoce TODAS
- y un parser medio reconoce la (1) (2) y (3)

Veo bien que un parser 'ayude' al jugador reconociendo frases como (5) pero lo normal es que devuelva un 'no entiendo que dices'

¿no?


Arriba
 Perfil  
 
NotaPublicado: 08 Abr 2011 16:56 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5312
Ubicación: Coruña
Yo personalmente creo que un parser debería reconocer las cinco. Si con la información que hay en la oración se puede deducir qué es lo que quería decir el usuario, lo deseable es hacerlo, no decirle que no se ha entendido. La función del parser es hacer lo que quiere el usuario y no enseñarle gramática.

En general, las aproximaciones más populares hoy en día para diseñar sistemas de procesamiento del lenguaje natural son las que se llaman aproximaciones basadas en corpus. Es decir, se hace un corpus de las oraciones que se quieren analizar (si estás haciendo el contestador de un hotel, grabarás lo que dice la gente cuando llama al hotel) y se construye un analizador adaptado a eso (normalmente, con métodos estadísticos o de aprendizaje automático). Por lo tanto, el analizador se hace para entender lo que dice la gente, sean frases correctas o no.

Ejemplo de oraciones sacadas de corpora:

"... You know, but you can only actually keep them over, for like five minutes. Cause they have like buses to catch and stuff"

(Santa Barbara Corpus of Spoken American English, http://www.linguistics.ucsb.edu/researc ... ining.html)

"we we don't we we we choose not to deal with the extended family because we feel it's kind of cumbersome when [noise] in reality it makes things much much easier"

(Switchboard-1 Telephone Speech Corpus, http://www.isip.piconepress.com/projects/switchboard/)

"for american airlines i need round trip airfare from new york to san diego ."

(DARPA ATIS3 corpus, http://www.informatics.sussex.ac.uk/res ... #filenames)

En el mundo de las aventuras, para hacer un corpus habría que sentar novatos totales y absolutos delante del ordenador, decirles que van a jugar a un juego que te dice dónde estás y tú sólo le tienes que decir lo que quieres hacer, y registrar todo lo que teclean.

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
NotaPublicado: 08 Abr 2011 21:21 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 24 Dic 2010 14:37
Mensajes: 937
kalel099 escribió:
Tenemos:
Código:
1.- dale un golpe a la puerta con el martillo
2.- da un golpe a la puerta con el martillo
3.- da golpe a puerta con martillo
4.- da golpe puerta martillo
5.- da golp a peurta ocn mrtillo


¿Se supone que un parser debe entender las 5 posibilidades a pesar de que solo la (1) y la (2) estan escritas correctamente?
¿que hay niveles de 'comprension'?:
- un parser completo reconoce TODAS
- y un parser medio reconoce la (1) (2) y (3)

Veo bien que un parser 'ayude' al jugador reconociendo frases como (5) pero lo normal es que devuelva un 'no entiendo que dices'

¿no?


Personalmente opino que a día de hoy de la 1 a la 3 se considera imprescindible, la 4 sería agradable de tener la 5 no la soporta ninguno, aunque en inglés en I7 hay una extensión que intenta aproximarse a eso. Finalmente hay una tendencia actual a usar 'claves' como sustitutos a frases complejas, lo que vendría a ser algo como esto (en un caso extremo, claro):

Código:
La habitación está desprovista de todo interés excepto de la misteriosa [i]puerta[/i].

>> puerta
Sin duda es la forma de escapar, pero está cerrada y aparentemente con llave, aunque parece vieja y algo frágil.

>> puerta
Intentas abrir la puerta sin lograr nada.

>> i
Llevas un poderoso martillo.

>> martillo
Sin duda un golpe contundente de este martillo destrozaría cosas frágiles.

>> puerta
Golpeas la puerta con el martillo. La puerta cae transformada en astillas mohosas. Por fin podrás salir de aquí.


o bien a que mientras el jugador va tecleando el prompt le va sugiriendo lo que puede entender.


Arriba
 Perfil  
 
NotaPublicado: 08 Abr 2011 21:40 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Citar:
Tu orden: da golp a peurta ocn mrtillo
La furia de thor cae sobre la puerta.


Con un objeto llamado puerta, un martillo en el inventario y habiendo capturado el verbo "dar " desde el objeto puerta.
¿Cumple eso el punto 5?

PD:Para quienes pudieran no saberlo, el experimento se ha hecho con AGE.

_________________
Si la mentira tuviera color, todos seríamos daltónicos...


Arriba
 Perfil  
 
NotaPublicado: 08 Abr 2011 22:47 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 24 Dic 2010 14:37
Mensajes: 937
jenesis escribió:
Citar:
Tu orden: da golp a peurta ocn mrtillo
La furia de thor cae sobre la puerta.


Con un objeto llamado puerta, un martillo en el inventario y habiendo capturado el verbo "dar " desde el objeto puerta.
¿Cumple eso el punto 5?

PD:Para quienes pudieran no saberlo, el experimento se ha hecho con AGE.


Mujer... habría que ver el código, pero imagino que lo que has hecho es equivalente a la aproximación 'por clave' que he descrito después, es decir algo que en seudocódigo sería:

Código:
    - Si verbo == 'dar'
    - Y martillo llevado
    - Y puerta presente y no rota
    - entonces, golpear con martillo la puerta


Por otra parte para que este código en AGE esté en la puerta imagino que tendrás que haber puesto 'peurta' como sinónimo, ¿no? Eso para mi no es 5 sino es la aproximación por clave. 5 sería si lo que haces es evaluar las probabilidades de que 'peurta' sea 'puerta' porque es el nombre de objeto que más se le parece y 'mrtillo' es 'martillo' por la misma razón, algo que entiendo que no se puede hacer sin modificar el parser base de AGE.


Arriba
 Perfil  
 
NotaPublicado: 08 Abr 2011 22:53 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5312
Ubicación: Coruña
Johan Paz escribió:
Por otra parte para que este código en AGE esté en la puerta imagino que tendrás que haber puesto 'peurta' como sinónimo, ¿no? Eso para mi no es 5 sino es la aproximación por clave. 5 sería si lo que haces es evaluar las probabilidades de que 'peurta' sea 'puerta' porque es el nombre de objeto que más se le parece y 'mrtillo' es 'martillo' por la misma razón, algo que entiendo que no se puede hacer sin modificar el parser base de AGE.

No, jenesis no ha hecho trampa :D

No hay que poner 'peurta' y 'mrtillo' en el código de la aventura para que funcione eso, funciona por defecto. AGE incluye un corrector automático de verbos y nombres (de verbos desde 1.0.2 y de nombres desde 1.0.3) basado en la distancia de Levenshtein-Damerau (es decir, una distancia de edición que detecta errores de inserción de caracteres, borrado, sustitución y transposición, que son los que comúnmente cometemos los humanos al teclear).

Sin necesidad de que el programador de la aventura haga nada, el parser de AGE detecta que esas palabras se parecen a un nombre de referencia de un objeto (aunque no hagan matching exacto) y las interpreta como tales. Lo mismo lo hace también con los verbos.

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
NotaPublicado: 08 Abr 2011 23:04 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 24 Dic 2010 14:37
Mensajes: 937
Al-Khwarizmi escribió:
Johan Paz escribió:
Por otra parte para que este código en AGE esté en la puerta imagino que tendrás que haber puesto 'peurta' como sinónimo, ¿no? Eso para mi no es 5 sino es la aproximación por clave. 5 sería si lo que haces es evaluar las probabilidades de que 'peurta' sea 'puerta' porque es el nombre de objeto que más se le parece y 'mrtillo' es 'martillo' por la misma razón, algo que entiendo que no se puede hacer sin modificar el parser base de AGE.

No, jenesis no ha hecho trampa :D

No hay que poner 'peurta' y 'mrtillo' en el código de la aventura para que funcione eso, funciona por defecto. AGE incluye un corrector automático de verbos y nombres (de verbos desde 1.0.2 y de nombres desde 1.0.3) basado en la distancia de Levenshtein-Damerau (es decir, una distancia de edición que detecta errores de inserción de caracteres, borrado, sustitución y transposición, que son los que comúnmente cometemos los humanos al teclear).

Sin necesidad de que el programador de la aventura haga nada, el parser de AGE detecta que esas palabras se parecen a un nombre de referencia de un objeto (aunque no hagan matching exacto) y las interpreta como tales. Lo mismo lo hace también con los verbos.


Ya me has contado en el chat. ¡Estupendo! Todos los parser deberían incluir, desde mi punto de vista, un mecanismo parecido.


Arriba
 Perfil  
 
NotaPublicado: 09 Abr 2011 13:10 
Desconectado
Yiepp
Yiepp

Registrado: 01 Mar 2011 20:20
Mensajes: 77
Cuando pense en la opcion (5) recordaba la actualizacion de AGE :) , pero ignoraba que no habia mas parsers que controlaban esto.

Capto la idea pues de que un parser ha de 'adivinar' lo mejor posible el input de un usuario y no obligarle a escribir las ordenes bien.


Pero esto,

Johan Paz escribió:
Código:
La habitación está desprovista de todo interés excepto de la misteriosa [i]puerta[/i].

>> puerta
Sin duda es la forma de escapar, pero está cerrada y aparentemente con llave, aunque parece vieja y algo frágil.

>> puerta
Intentas abrir la puerta sin lograr nada.

>> i
Llevas un poderoso martillo.

>> martillo
Sin duda un golpe contundente de este martillo destrozaría cosas frágiles.

>> puerta
Golpeas la puerta con el martillo. La puerta cae transformada en astillas mohosas. Por fin podrás salir de aquí.



no da pistas al usuario sobre que hacer?
Visto asi, un jugador podria ir tecleando el nombre de cada objeto que le aparece en la descripcion y el parser actua por el. Ser es super comodo para quien es consciente de lo que quiere hacer, pero sirve tambien para quien 'pasa' de pensar y teclea todo lo habido y por haber no??


Arriba
 Perfil  
 
NotaPublicado: 09 Abr 2011 14:45 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5312
Ubicación: Coruña
Bueno, pero eso último ya no sería entender lo que el usuario pide lo escriba como lo escriba (que es lo que me parece deseable a mí). Eso sería hacer cosas que el usuario no ha pedido, y ya no me convence porque le quitaría la gracia al juego. Se convertiría en un juego mucho más pobre, como las aventuras gráficas de point and click que se podían pasar simplemente clickeando sin tino en todo lo que se meneaba.

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
NotaPublicado: 09 Abr 2011 14:58 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 04 Sep 2008 17:23
Mensajes: 747
kalel099 escribió:
Ser es super comodo para quien es consciente de lo que quiere hacer, pero sirve tambien para quien 'pasa' de pensar y teclea todo lo habido y por haber no??

Si, tienes razón. Si un autor no maneja bien eso de las claves de las que habla Johan, podría llegarse al extremo de que un jugador resuelva puzzles sin querer (sin pensar), simplemente tecleando cosas al tuntún. Pero no deja de ser una herramienta que puedes llevar tan lejos como quieras.

Lo más sencillo es que una aventura implemente el tema de las claves para sustituir acciones muy comunes o evidentes. Teclear el nombre de un objeto para examinarlo, el de una puerta para abrirla, el nombre de una localidad para ir hacia ella, o el de un botón para pulsarlo, por ejemplo. En esos casos el sistema de claves hace la interacción con la obra más cómoda y no corres el riesgo de reventar un puzzle.

Luego, si quieres ir un poco más lejos, deberías empezar a pensar en otros aspectos de la aventura. Si pretendes que abrir a golpe de martillo una puerta cerrada sea un puzzle al que el jugador deba dedicar tiempo, tal vez no sea muy adecuado usar el ejemplo de Johan. Pero si lo ves más como un pequeño atasco y no quieres que se rompa mucho el ritmo de la narración en ese punto, el ejemplo de Johan podría ser una forma de resolver el atasco perfectamente válida.


Arriba
 Perfil  
 
NotaPublicado: 09 Abr 2011 15:55 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 24 Dic 2010 14:37
Mensajes: 937
kalel099 escribió:
Cuando pense en la opcion (5) recordaba la actualizacion de AGE :) , pero ignoraba que no habia mas parsers que controlaban esto.

Capto la idea pues de que un parser ha de 'adivinar' lo mejor posible el input de un usuario y no obligarle a escribir las ordenes bien.


Pero esto,

Johan Paz escribió:
Código:
La habitación está desprovista de todo interés excepto de la misteriosa [i]puerta[/i].

>> puerta
Sin duda es la forma de escapar, pero está cerrada y aparentemente con llave, aunque parece vieja y algo frágil.

>> puerta
Intentas abrir la puerta sin lograr nada.

>> i
Llevas un poderoso martillo.

>> martillo
Sin duda un golpe contundente de este martillo destrozaría cosas frágiles.

>> puerta
Golpeas la puerta con el martillo. La puerta cae transformada en astillas mohosas. Por fin podrás salir de aquí.



no da pistas al usuario sobre que hacer?
Visto asi, un jugador podria ir tecleando el nombre de cada objeto que le aparece en la descripcion y el parser actua por el. Ser es super comodo para quien es consciente de lo que quiere hacer, pero sirve tambien para quien 'pasa' de pensar y teclea todo lo habido y por haber no??


Claro por eso dije que era un ejemplo 'extremo', para que quedase clara la idea. Que todas las acciones se gestionen por clave de objeto es probablemente excesivo, pero por otra parte algunos comandos muy muy habituales como: examinar algo, abrir un contenedor cerrado, coger un objeto presente, dejar un objeto del inventario... puede ser acortados con esta estrategia sin que la libertad del juego se quede cortada.


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 65 mensajes ]  Ir a página Anterior  1, 2, 3, 4, 5  Siguiente

Todos los horarios son UTC + 1 hora


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro

Buscar:
Saltar a:  
cron
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM