STxT: Semantic TexT
Un Lenguaje, Infinitas Posibilidades

STxT Tutorial

¿Qué es STxT?

Es un lenguaje puramente semántico, con unas reglas muy básicas, que permite la creación de documentos con un contenido estructurado y sencillo de interpretar, tanto por humanos (sin conocimientos informáticos) como por máquinas. Se puede estar leyendo un documento en STxT sin darse cuenta en realidad que lo es.

Documentos sin namespace

Mostramos un ejemplo de una receta de cocina:

Receta: Receta de macarrones
	:Descripción:
		Esta es la descripción de la recta de macarrones.
		Bla, bla, bla
		Bla, bla, bla
	Comensales: 3
	Dificultad: fácil
	Ingredientes:
		Ingrediente: (100g) Tomate
		Ingrediente: (240g) Macarrones
	Pasos:
		Paso: Hacer sofrito
		Paso: Hervir macarrones
		Paso: Juntar macarrones con sofrito y servir

Este es un documento STxT sin namespace. Este tipo de documentos son estructurados, pero no sabemos que forma tienen los nodos. De cualquier manera ya se puede ver que tienen estructura, con un nodo principal Receta, el qual tiene un nodo Descripción, Ingredientes, etc. A su vez estos nodos tienen otros, y así hasta formar una estructura jerárquica.

Vale la pena mencionar el nodo Descripción que es un nodo que permite multilíneas. Al no tener una estructura previa se distinguen porque el nombre del nodo es de la forma :nombre del nodo:

Documentos con namespace

Ahora un ejemplo de la misma receta con un namespace:

Receta (com.kocinando.receta): Receta de macarrones
	Descripción:
		Esta es la descripción de la recta de macarrones.
		Bla, bla, bla
		Bla, bla, bla
	Comensales: 3
	Dificultad: fácil
	Ingredientes:
		Ingrediente: (100g) Tomate
		Ingrediente: (240g) Macarrones
	Pasos:
		Paso: Hacer sofrito
		Paso: Hervir macarrones
		Paso: Juntar macarrones con sofrito y servir

Ahora mostramos el namespace. La definición del namespace se encuentra en un documento sin namespace:

Namespace: com.kocinando.receta
	Receta:
	    Descripción: (?) TEXT
	    Comensales: (?) NUMBER
		:Dificultad: (?) ENUM
			fácil
			media
	    	difícil
	    Ingredientes: (1)
			Ingrediente: (+)
	    Pasos: (1)
	    	Paso: (+)

Comentarios

Es posible insertar comentarios en los documentos para expresar partes no finalizadas, pensamientos del autor, etc. Los comentarios no se usarán pero permiten enriquecer el documento.

Receta (com.kocinando.receta): Receta de macarrones
# Esta receta me la pasó XX y la he hecho un montón de veces
# Os gustará mucho!!
	Descripción:
		Esta es la descripción de la recta de macarrones.
		Bla, bla, bla
		Bla, bla, bla
	Comensales: 3
	Dificultad: fácil
	Ingredientes:
		Ingrediente: (100g) Tomate
		Ingrediente: (240g) Macarrones
	Pasos:
		Paso: Hacer sofrito
		Paso: Hervir macarrones
		Paso: Juntar macarrones con sofrito y servir

Distintos namespaces en un documento

Un namespace puede hacer referencia a otro, para indicar que una parte del documento tiene la estructura en otro namespace. Mejor ver un ejemplo:

Namespace:com.kocinando.recetario
	Recetario:
		Receta: (+) (com.kocinando.receta)

Aquí vemos que Receta es de otro namespace y vemos que en vez de poner la estructura se hace referencia a otro namespace.

NO es necesario decir el namespace interior, sólo el nodo principal.

Así, un ejemplo de recetario sería:

Recetario (com.kocinando.recetario): Recetas de la mama 
	Receta: Receta de macarrones
		Descripción:
			Esta es la descripción de la recta de macarrones.
			Bla, bla, bla
			Bla, bla, bla
		Comensales: 3
		Dificultad: fácil
		Ingredientes:
			Ingrediente: (100g) Tomate
			Ingrediente: (240g) Macarrones
		Pasos:
			Paso: Hacer sofrito
			Paso: Hervir macarrones
			Paso: Juntar macarrones con sofrito y servir	
	Receta: Receta de pizza
		Ingredientes:
			Ingrediente: (1u) Masa pizza
			Ingrediente: (100g) Tomate
			Ingrediente: (50g) Queso
		Pasos:
			Paso: Poner tomate y queso en pizza
			Paso: Hornear durante 15'