Wikipedia abstracta/Maquetas preliminares

From Meta, a Wikimedia project coordination wiki
This page is a translated version of the page Abstract Wikipedia/Early mockups and the translation is 100% complete.
Tracked in Phabricator:
Task T258902

Aquí están algunas maquetas muy tempranas en su desarrollo para la wiki Wikifunciones.

Funciones

La función multiplicar (multiply)

Definición de función

El encabezado muestra la etiqueta y el tipo de objeto (en este caso, una función). Una función incluye su firma así como su tipo. Debajo de eso vemos la documentación.

A continuación se encuentran los argumentos de la función multiplicar, el tipo retorno y una lista de implementaciones disponibles. Debajo vemos una lista de pruebas con una matriz de las implementaciones, y al final un formulario donde el lector puede evaluar la función establecida.

Implementación en Javascript

Esta es una de las implementaciones de la función multiplicar definida anteriormente, aquí en JavaScript.

Composición

Esta es otra implementación de la función multiplicar, esta vez compuesta de otras funciones en la wiki.

Prueba

Aquí esta un ejemplo de una prueba de la función multiplicar.

Sucesión

Tenga en cuenta que todos los objetos NLG codifican algún enfoque específico. Esto no tiene la intención de tomar una decisión con respecto al enfoque específico de NLG por adelantado, solamente es para ilustrar y visualizar ideas. El enfoque concreto de NLG que adoptaremos aún no está decidido.

Constructor

Este es el constructor de sucesiones. Muestra un constructor bastante complejo que conduce a una cláusula.

Intérprete de inglés ("Renderizador")

Este es un intérprete o representador/renderer para el idioma inglés propuesto para el constructor de sucesiones. Está demasiado simplificado y solo está diseñado para representar la idea de forma aproximada.

Conjunción

Tenga en cuenta que todos los objetos NLG codifican algún enfoque específico. Esto no tiene la intención de tomar una decisión con respecto al enfoque específico de NLG por adelantado, solamente es para ilustrar y visualizar ideas. El enfoque concreto de NLG que adoptaremos aún no está decidido.

Este es un interprete o representador al inglés para el constructor de conjunciones. Igualmente está muy simplificado y solo está diseñado para representar la idea de forma aproximada.

Aunque es básicamente lo mismo, hay una opción sobre el manejo de la coma en serie o coma de Oxford.

Página principal

Crea un objeto

Al momento de crear un objeto, es necesario primero seleccionar el tipo de objeto.

Elegimos el tipo "Prueba". Automáticamente, se muestran las teclas relevantes.

En la primera tecla, "llamada de función", comenzamos a escribir y seleccionamos una función, "multiplicar". Automáticamente, se muestran los argumentos relevantes para multiplicar.

Comenzamos ingresando el primer valor. Esto se analiza como un literal de tipo entero positivo.

Ahora en el segundo argumento escribimos "agregar". Esto se reconoce como una función. Se están agregando campos para los argumentos apropiados. Agregamos literales.

La condición de resultado es la segunda tecla del objeto de prueba. Comenzamos a escribir el nombre de una función y la seleccionamos. La condición de resultado es el tipo de función que toma un objeto y devuelve una lista de errores. Escribimos "igual a un entero" y eso imprime el único argumento para esta función.

Ahora que ya sea ingresado una literal, el objeto está completo y se valida. Se muestra el botón publicar.

Ver un objeto

La siguiente es una vista del objeto de prueba recién creado. La suposición es que el nombre es una representación o interpretación de la prueba. Realmente no es agradable a la vista, pero se puede hacer automáticamente. Tenga en cuenta que la vista del objeto es una vista específica para las Pruebas.

Esto está utilizando la vista genérica para Objetos Z, asumiendo que no habría una vista específica para los objetos de prueba.

Esta es la vista después de que alguien hizo el esfuerzo de crear una etiqueta más agradable, escribir un poco de documentación (el por qué es relevante esta prueba) y agregar la Prueba a la función multiplicar.

Edita un objeto

Esta es la interfaz con la que terminamos al editar el objeto de prueba. No es que esto no permita editar la etiqueta del objeto o la documentación. Esta es la interfaz de edición genérica de los Objetos Z. Tenga en cuenta que es básicamente lo mismo que la interfaz de creación.

Los Objetos Z puede llegar a ser muy extensos. Es posible colapsar las ramas de un Objeto Z. Aquí colapsamos la parte haciendo la suma en el segundo término de la multiplicación.

Caja de entrada mágica

Una parte fundamental de la experiencia de usuario anterior es el cuadro de entrada mágica. ¿Por qué decimos que hay magia en estas cajas de entrada? Echemos un vistazo más de cerca a lo que pueden hacer: pueden tomar cuatro tipos de entrada. Cada cuadro de entrada tiene un tipo esperado (en el peor de los casos, el tipo esperado es "Cualquiera").

  • Esta es una referencia a un Objeto Z teniendo el tipo esperado, es decir, un ID Z elegido por su etiqueta o alias (o ID) y usando una selección desplegable (como cuando se elige un elemento en Wikidata).
  • Una llamada a función que da como resultado un Objeto Z del tipo esperado. Esto se inicia eligiendo una referencia a un Objeto Z de una función cuyo tipo de retorno tiene el tipo esperado, y tan pronto como se elige, la interfaz de usuario se actualiza para permitir especificar los argumentos.
  • Un literal. Si el tipo esperado se puede representar como un literal (por ejemplo, para una cadena o un entero), ese literal se puede escribir en el cuadro de entrada. Si el literal también es posiblemente una referencia del tipo correcto, el menú desplegable enumera el literal como la primera opción. (Que el tipo esperado se puede representar como un literal depende de si se especifica una función para analizar valores que toma una cadena y devuelve una instancia del tipo esperado).
  • Un usuario avanzado puede cambiar cualquiera de estos cuadros de entrada mágicos incrustados en un campo de texto más grande y realizar la edición sin procesar. Vea la maqueta después de esta para eso.

Dado que la magia a veces lo hará mal (por ejemplo, tener un tipo de función esperada (cualquiera, cualquiera), es decir, una función arbitraria, siempre no estará claro si realmente está haciendo referencia a una función, o si está haciendo una función de llamada para producir una función y, por lo tanto, podríamos terminar en el modo incorrecto. El cuadro de entrada mágica viene con una "palanca" 𝌹 que permite bloquear uno de los cuatro modos explícitamente (el número de modos puede variar ligeramente según el tipo esperado, es decir, si el tipo esperado es función o cualquiera, no hay modo literal, etc.) así como cambiar el tipo esperado.

Esto muestra una sintaxis funcional para la edición sin formato. Tenga en cuenta que esto es solo una cosa de UX: la entrada se analizará y canonizará antes de almacenarla. Pero especialmente para la codificación, muchas personas no pueden prescindir de copiar y pegar, etc., y ninguna interfaz de usuario lo ha hecho bien de otra manera, por lo que ofrecemos esta opción.

Esto es lo mismo que en la maqueta anterior, pero en lugar de usar una sintaxis de función y contenido etiquetado, esta tan crudo como puede ser y usa JSON y los ID Z. Bueno, eso debería seguir siendo una posibilidad.

Alternativas de diseño

Las siguientes dos maquetas muestran algunas ideas de diseños alternativos para hacer más explicita el agrupamiento de los formularios, aquí se coloca un cuadro punteado alrededor de los subformularios que van juntos. Además, esto muestra claramente los subformularios que se contraerían si se cliqueara colapsar.

Aquí se movió el icono para colapsar un cuadro a la izquierda.

Maquetas móviles

Estas son maquetas para la interfaz móvil. Como hay mucho menos espacio horizontalmente, agrupar el árbol de formularios por sangría puede resultar problemático.