Adrianistán

El blog de Adrián Arroyo


Web Semántica desde cero: Linked Data y SOLID

Ya hemos visto tres componentes de la Web Semántica: RDF, RDF Schema y SPARQL. Sin embargo, todavía no hemos sido capaces de hiperconectar la información presente en diferentes servidores. La especificación Linked Data, nos da unas pautas a seguir sobre como usar HTTP para conseguir que todo esté hiperconectado. Además veremos el concepto de SOLID, que propuso Tim Berners-Lee para que la ciudadanía recuperase el poder sobre sus datos en la web.

Seguir leyendo

Web Semántica desde cero: SPARQL

Hasta ahora hemos visto de forma bastante teórica el funcionamiento de RDF y de RDF Schema. Hemos dicho que RDF es un modelo de datos, interoperable y semántico. No obstante, hasta ahora no hemos accedido a la información allí expuesta. Por eso en este artículo veremos SPARQL, el lenguaje de consultas de RDF; del mismo modo que el modelo relacional tiene SQL o los documentos XML tienen XQuery.

Seguir leyendo

Web Semántica desde cero: RDF Schema

En el artículo anterior comentamos la piedra angular de la web semántica, el modelo de datos RDF. RDF es muy flexible y potente, pero ¿cómo conseguimos dar significado a las relaciones? Al fin y al cabo, las tripletas no dejan de ser tuplas de strings de cara al ordenador. Tiene que haber un componente, que permita hacer de intermediario entre el significado humano y la máquina. Esto son las ontologías. Las ontologías definen el sentido semántico de los recursos de RDF. RDF Schema nos permite diseñar ontologías de forma sencilla. Como veremos, añade operadores que podemos usar en RDF para definir las ontologías. Por tanto, RDF Schema no es comparable a XML Schema o JSON Schema, que sirven para validar que un documento sigue una estructura, sino que sirve para dotar de significado a la información.

Seguir leyendo

Web Semántica desde cero: RDF

Este artículo es el primero de una serie de tutoriales que van a explorar la web semántica a día de hoy, fuera de todo hype inicial y todo el universo de los datos enlazados. Lo primero será entender el concepto fundamental y lo segundo, RDF, piedra angular de la web semántica tal y como la describe W3C.

Seguir leyendo

miniKanren, programación lógica diminuta

Cuando hablamos de programación lógica, lo primero que se nos viene a la mente es Prolog, un lenguaje del que ya he hablado varias veces, y que fue uno de los primeros lenguajes lógicos así como uno de los más populares. Hoy vengo a hablaros de una familia de lenguajes, llamada miniKanren, que demuestra que cualquier lenguaje de programación puede adoptar el paradigma lógico con solo 3 instrucciones. miniKanren está disponible como DSL en muchos lenguajes: Scheme, Haskell, Clojure (llamado core.logic), Python, C#, Elixir, Go, JavaScript, Rust, ... y prácticamente cualquier lenguaje.

Seguir leyendo

Cosas que (probablemente) no sabías de Python

Python es un lenguaje muy popular hoy en día. Aunque pueda no ser el mejor, su desempeño es bueno, con mucha documentación, librerías, es cómodo y fácil de aprender. Python además sigue la filosofía de baterías incluidas, es decir, de intentar llevar de serie casi todo lo que vayas a poder necesitar. En este artículo vamos a ver algunas partes de Python no tan conocidas pero igualmente interesantes y útiles.

Seguir leyendo

Programación web en Prolog

Como ya hemos visto con anterioridad, Prolog es un muy buen lenguaje para ciertos problemas. Hoy en día, el lenguaje que se creía que sería el futuro está prácticamente olvidado. No obstante, existen algunas personas que se han esforzado para que Prolog siga siendo un lenguaje útil. ¿Y qué requisito es básico para un lenguaje útil? ¡Que pueda usarse para hacer un servidor web claro! Es por eso que decidí emprender una aventura quijotesca y ver hasta donde era capaz de llegar Prolog en el desarrollo web. Para ello voy a usar SWI Prolog.¿Suena alocado? Pues ya lo estás usando, el servidor de gestión de imágenes de Adrianistán (https://files.adrianistan.eu) está hecho en Prolog.

Seguir leyendo

Bosque, el nuevo lenguaje de programación de Microsoft

Hace unos pocos días Microsoft Research, la parte de investigación de Microsoft, publicó Bosque, un nuevo lenguaje de programación. El lenguaje sigue en fase experimental y el compilador es un poco patatero (está hecho en TypeScript y necesita Node.js para funcionar). Pero eso es lo de menos, porque son detalles. Lo importante son las ideas que aporta.

Seguir leyendo

Miri: una máquina virtual para Rust

Hace poco salía la noticia de que Miri ya estaba disponible para instalar en las versiones nightly de Rust. Pero, ¿qué es Miri? y ¿por qué es importante una máquina virtual para Rust?

Seguir leyendo

Programación lineal: alcanzando la perfección

La programación lineal es una disciplina dentro de las matemáticas, más concretamente, del campo de la investigación operativa muy interesante. La problemática que trata de resolver es la de asignar recursos limitados entre actividades competitivas de la mejor manera posible, es decir, optimizar este reparto. Programación significa en este contexto planificación.

Seguir leyendo