PDF                Anterior    Siguiente

► 13. Applets, JavaScript y XML

       ► 13.5 XML y GGB

Objetivos

Las construcciones de GeoGebra se guardan como archivos de extensión GGB (o GGT, si se trata de una herramienta personal). Un archivo GGB no es más que un archivo comprimido (ZIP) que contiene el archivo de texto llamado geogebra.xml con todos los datos, un archivo con una imagen en miniatura de la Vista Gráfica, llamado geogebra_thumbnail.png,  y todas las imágenes que se hayan insertado con la herramienta Imagen.  Si además la construcción contiene alguna herramienta personal, también habrá un archivo llamado geogebra_macro.xml.

Mostraremos como usar esta información para recuperar el proceso realizado al crear una herramienta personal.

El lenguaje XML

Al igual que el HTML, el XML es un lenguaje de etiquetas < ... >. La diferencia reside en que XML permite la creación de nuevas etiquetas, según las necesidades del programador. De esta forma, los desarrolladores de GeoGebra pueden en cualquier momento añadir más etiquetas o propiedades a medida que requieran de ellas, así como modificar las ya existentes.

El archivo geogebra.xml

La estructura general de las etiquetas de GeoGebra es:

<?xml version="1.0" encoding="utf-8"?>

<geogebra format="3.2">

<gui> ... </gui>

<euclidianView> ... </euclidianView>

<kernel> ... </kernel>

<construction> ... </construction>

</geogebra>

Ejemplo de código XML

El archivo en_blanco.ggb contiene el siguiente código, correspondiente a un archivo sin ningún objeto creado.

Código Descripción
<?xml version="1.0" encoding="utf-8"?> Declaración XML (versión que se usará).
<geogebra format="3.2"> Inicio. Declaración DTD (juego de etiquetas que se va a usar).
<gui> Inicio de datos sobre la configuración de la interfaz.
<show algebraView="false" spreadsheetView="false" auxiliaryObjects="false" algebraInput="true" cmdList="true"/> No mostrar la Vista Algebraica, ni la Hoja de Cálculo, ni la carpeta de objetos auxiliares. Mostrar la Barra de Entrada con la lista de comandos.
<toolbar str="0 39 59 || 1 5 19 | 2 15 45 18 , 7 37 | 4 3 8 9 , 13 44 , 58 , 47 || 16 51 | 10 34 53 11 , 24 20 22 , 21 23 | 55 56 57 , 12 || 36 46 , 38 49 50 | 30 29 54 32 31 33 | 25 52 , 17 26 , 14 || 40 41 42 , 27 28 35 , 6"/> Mostrar todas las herramientas. (No hay ninguna herramienta personal.)
<font size="12"/> Tamaño de letra, 12 puntos.
</gui> Fin de datos sobre la configuración de la interfaz.
<euclidianView> Inicio de datos sobre la configuración del sistema de coordenadas.
<size width="1272" height="856"/> Ancho y alto de la ventana.
<coordSystem xZero="215.0" yZero="314.9999999999998" scale="50.0" yscale="50.0"/> Posición del origen cartesiano de referencia.
<evSettings axes="false" grid="false" gridIsBold="false" pointCapturing="3" pointStyle="0" rightAngleStyle="1" checkboxSize="13" gridType="0"/> No mostrar ejes ni cuadrícula. La cuadrícula no está resaltada. Atracción a cuadrícula en estado Automático. Estilo de punto, sólido. Estilo de ángulo recto, cuadrado. Tamaño de casilla de control, normal. Estilo de cuadrícula, ortogonal.
<bgColor r="255" g="255" b="255"/> Color de fondo, blanco.
<axesColor r="64" g="64" b="64"/> Color de ejes, gris muy oscuro.
<gridColor r="204" g="204" b="204"/> Color de cuadrícula, gris muy claro.
<lineStyle axes="1" grid="0"/> Estilo de trazo, ejes con flecha, cuadrícula continua.
<axis id="0" show="false" label="" unitLabel="" tickStyle="1" showNumbers="true"/> No mostrar eje X. Este eje carece de etiqueta y de unidad. Estilo de graduación normal. Mostrar números con el eje.
<axis id="1" show="false" label="" unitLabel="" tickStyle="1" showNumbers="true"/> No mostrar eje Y. Este eje carece de etiqueta y de unidad. Estilo de graduación normal. Mostrar números con el eje.
</euclidianView> Fin de datos sobre la configuración del sistema de coordenadas.
<kernel> Inicio de datos sobre el núcleo del programa.
<continuous val="false"/> Continuidad, desactivada.
<decimals val="2"/> Decimales a mostrar, 2.
<angleUnit val="degree"/> Unidad angular, grados.
<coordStyle val="0"/> Estilo de coordenadas, separadas por coma.
</kernel> Fin de datos sobre el núcleo del programa.
<construction title="" author="" date=""> Inicio de datos sobre la construcción (que no hay, claro).
</construction> Fin de datos sobre la construcción (que no hay, claro).
</geogebra> Fin del código XML relativo al juego de etiquetas "geogebra".
Recuperación de una herramienta personal

Supongamos que hemos creado una herramienta personal pero no hemos guardado el archivo GGB correspondiente (sólo el GGT). O bien, que hemos encontrado una construcción que usa herramientas personales y queremos conocer el proceso seguido para su creación.

Como ejemplo, usaremos un archivo con varias herramientas personales. Queremos recuperar el proceso de construcción de la herramienta denominada "Cuadrado".

Primero prepararemos "el recipiente" en el que posteriormente introduciremos ese proceso.

Práctica Etapa 1

 

  • Guardar el archivo en_blanco.ggb (clic derecho, Guardar destino como...). Renómbralo como en_blanco.zip
  • Descomprimir el archivo comprimido anterior. Aparecerán los archivos geogebra.xml (con el código que aparecía en la tabla anterior) y geogebra_thumbnail.png.

Ahora iremos en busca del proceso que hay detrás de la herramienta personal "Cuadrado".

Práctica Etapa 2

 

  • Guardar el archivo semirregulares.ggb (clic derecho, Guardar destino como...) en una carpeta diferente a donde hemos guardado el archivo en_blanco.ggb
  • Hacer una copia y nombrarla como semirregulares.zip
  • Descomprimir el archivo comprimido anterior. Aparecerán los archivos geogebra.xml, geogebra_macro.xml y geogebra_thumbnail.png, así como varias carpetas (tal vez con nombres largos y extraños, es normal) conteniendo las imágenes de las herramientas personales.
  • Abrir el archivo geogebra_macro.xml con un editor de texto sin formato (por ejemplo, el bloc de notas; también sirve Word, u otro procesador de textos, pero en este caso debemos recordar guardar posteriormente el archivo como texto plano, sin formato alguno). Las primeras tres etiquetas son:

<?xml version="1.0" encoding="utf-8"?>
<geogebra format="3.2">
<macro cmdName="Triánguloequilátero" toolName="Triángulo equilátero" toolHelp="Clic en dos vértices consecutivos" iconFile="db1d52baf5f620c319df97d061c3b990\m03.png" showInToolBar="true">

  • Ir bajando el texto hasta encontrar la macro (herramienta personal) llamada "Cuadrado":

<macro cmdName="Cuadrado" toolName="Cuadrado" toolHelp="Clic en dos vértices consecutivos" iconFile="e52ae54bfeba424ead12739e40d5f70f\m04.png" showInToolBar="true">
<macroInput a0="D" a1="E"/>
<macroOutput a0="poly2" a1="F" a2="G" a3="d" a4="e" a5="f" a6="g"/>
<construction title="" author="" date="">

  • Seleccionar y copiar al portapapeles todo el bloque de líneas de la construcción "Cuadrado", es decir, desde <construction...> hasta </construction>, ambas inclusive, justo antes de que termine esta macro y empiece la siguiente (Pentágonoregular).

...

 

  • Cerrar el archivo geogebra_macro.xml

Copiaremos el contenido del portapapeles en la construcción en blanco que teníamos preparada.

Práctica Etapa 3

 

  • Abrir el archivo geogebra.xml que habíamos dejado preparado al final de la etapa 1.
  • Sustituir las líneas de la construcción vacía:

<construction title="" author="" date="">
</construction>

por el bloque de líneas que hemos copiado en el portapapeles (seleccionar las dos líneas y pegar).

  • Cerrar el archivo geogebra.xml
  • Comprimir al formato ZIP (con winzip, winrar u otro compresor similar) los archivos geogebra.xml y geogebra_thumbnail.png en un único archivo de nombre "cuadrado.zip".
  • Renombrar el archivo anterior como "cuadrado.ggb". Abrirlo.
Práctica Propuesta de copia de parte del XML

 

 

Crear una nueva construcción, partiendo de una vacía, que recoja el proceso para crear la herramienta personal "Triángulo equilátero" usada en el archivo "semirregulares.ggb".

 

Comentarios

El XML es un lenguaje muy superior al HTML, un lenguaje que permite fácilmente compartir información entre distintas aplicaciones y servidores. Uno y otro son lenguajes derivados de uno más poderoso, el SGML, pero este último es demasiado complejo para resultar sencilla su implantación y divulgación, por lo que el XML parece destinado a convertirse en el estándar de intercambio de información.

Por ejemplo, el proyecto europeo INTERGEO para la divulgación de la Geometría Dinámica, con un presupuesto de 1.427.849 €, tiene como objetivo la creación de una base de datos con recursos de Geometría Dinámica en diferentes soportes (naturalmente, GeoGebra es uno de ellos, pero hay otros como Cabri, Cinderella...) que puedan ser compartidos, es decir, traducidos a un formato común. Esto será posible a estándares como OpenMath, MathML, TeX y OWL, pero sobre todo gracias al lenguaje XML.

Investigación Investigación:

  • Buscar información sobre ese proyecto europeo en Internet.

 

Anterior    Arriba     Siguiente