De Toeska Semantic Wiki
Type System
number
string
boolean
map
array
xml
json
xslt
null?
Recursos
Todo recurso se obtiene a través de una URL.
Imports
Los scripts Mash/L son componibles. A través de un import, todos los recursos y mashups definidos quedan disponibles en el ámbito actual.
import <URL>
import http://www.holo.com/jaja.mashl;
Use
Liga una URL a un nombre de variable.
use <TYPE> <URL> as <VARNAME>
use xslt http://www.holo.com/xml2json.xsl as xml2json;
Variables
Inline XML
<VARNAME> = <<XML
<XML CONTENT>
XML
documento = <<XML
<root>
<a att="ja">
</b>
</a>
</root>
XML
Inline JSON
Operadores
Numéricos
| operador
| aridad
| descripción
| ejemplo
|
| +
| binaria, infija
| suma
| 1 + 1
|
| -
| binaria, infija
| resta
| 0 - 1
|
| -
| unaria, prefija
| cambio signo
| -5.1
|
| *
| binaria, infija
| multiplicación
| 6 * 7
|
| /
| binaria, infija
| división
| 7.0 / 2
|
| %
| binaria, infija
| módulo
| 6 % 2
|
Strings
| operador
| aridad
| descripción
| ejemplo
|
| +
| binaria, infija
| concatenación
| "holo" + "!"
|
Lógicos
| operador
| aridad
| descripción
| ejemplo
|
| ==
| binaria, infija
| igual a
| 1 == 1
|
| !=
| binaria, infija
| distinto a
| "a" != "b"
|
| !
| unaria, prefija
| negación
| !false
|
| <
| binaria, infija
| menor que
| 6 < 7
|
| >
| binaria, infija
| mayor que
| 7.0 > 2
|
| <=
| binaria, infija
| menor o igual que
| 5 <= 5.0
|
| >=
| binaria, infija
| mayor o igual que
| 6 >= 2
|
| &&
| binaria, infija
| and
| true && false
|
| ||
| binaria, infija
| or
| false || true
|
Mapas
| operador
| aridad
| descripción
| ejemplo
|
| []
| binaria, infija?
| indexación asociativa
| datos["clave"]
|
| .size
| unaria, sufija
| número de elementos
| datos.size
|
| .empty
| unaria, sufija
| indica si el mapa está vacio
| datos.empty
|
| .clear
| unaria, sufija
| elimina todos los elementos
| datos.clear
|
| .contains(<KEY>)
| binaria?, sufija
| indica si existe elemento con cierta clave
| datos.contains("clave")
|
| .remove(<KEY>)
| binaria?, sufija
| remueve elemento con cierta clave
| datos.remove("clave")
|
Arrays
| operador
| aridad
| descripción
| ejemplo
|
| []
| binaria, infija?
| indexación
| datos[0]
|
| .size
| unaria, sufija
| número de elementos
| datos.size
|
| .empty
| unaria, sufija
| indica si el array está vacio
| datos.empty
|
| .clear
| unaria, sufija
| elimina todos los elementos
| datos.clear
|
| .contains(<VALUE>)
| binaria?, sufija
| indica si existe cierto elemento
| datos.contains("clave")
|
| .remove(<INDEX>)
| binaria?, sufija
| remueve elemento con cierto índice
| datos.remove(1)
|
XML
| operador
| aridad
| descripción
| ejemplo
|
| []
| binaria, infija?
| retorna valor de atributo
| nodo["atributo"]
|
| .child()
| binaria, sufija
| retorna enésimo nodo hijo
| nodo.child(2)
|
| .childs
| unaria, sufija
| retorna arreglo de nodos hijos
| nodo.childs()
|
| .find
| binaria, sufija
| retorna arreglo de nodos en base a consulta xpath
| nodo.find("/node[@att='1']")
|
JSON
Estructuras de decisión
if-else
if (<BOOLEAN>)
{
...
}
else if (<BOOLEAN>)
{
...
}
else
{
...
}
if-else ternario
<BOOLEAN> ? <TRUE_EXPR> : <FALSE_EXPR>;
Expresiones
Estructuras de control
while
while (<BOOLEAN>)
{
...
}
foreach
foreach (<VARIABLE> in <ITERABLE>)
{
...
}
Mashups
mashup <NOMBRE> (<ARG>[:<TIPO>], ...):<TIPO> [<MIMME>]
{
...
}
Extensiones
Java
JAVA <CLASS CANONICAL NAME>.<METHOD>(<TYPE>,...):
<NOMBRE> (<ARG>[:<TIPO>], ...):<TIPO> [<MIMME>]
Ruby
Javascript