III Fórum Industria 4.0

El pasado viernes 1 de junio se celebró en el Espacio Endesa de Barcelona la tercera edición del Fórum Industria 4.0. Para aquellos que no lo conozcáis, el Fórum Industria 4.0 es una cita anual impulsada por la Comisión Industria 4.0, una organización integrada por los cinco colegios de ingeniería de Catalunya (Agrónomos, Caminos, Industriales, Informáticos y de Telecomunicación), donde se presentan las últimas tendencias en el ámbito industrial con el objetivo de potenciar su desarrollo y adopción por parte de las empresas de nuestro territorio. El acto, al que asistieron unas 400 personas, lo inauguraron Joan Carles Casas, presidente de la Comisión Industria 4.0, y Joan Romero, consejero delegado de ACCIÓ, la oficina de promoción económica de la Generalitat de Catalunya. De la intervención de este último cabe destacar la promesa, por parte de ACCIÓ, que Catalunya estaría presente en la próxima edición de Hannover Messe con el objetivo de aumentar la visibilidad internacional de la industria local. Misión inversa de conocimiento en la Hannover Messe La jornada siguió con las presentaciones de los diferentes grupos de trabajo de la Comisión Industria 4.0 (robótica, fabricación aditiva, sistemas embebidos y software) donde se presentaron las observaciones de la misión inversa de conocimiento realizada en la Hannover Messe de este año. Carles Soler, del grupo de trabajo de robótica, empezó destacando la generalización en la utilización de sistemas en la nube para la monitorización de la base de robots instalada, y la consolidación de China como actor de relevancia mundial en el sector. Además, también mencionó la incorporación de sistemas de realidad aumentada para la interacción con los robots y la aparición...

Introducción a Cypher

Ahora que ya conocemos las características de las bases de datos NoSQL en grafo, y tenemos Neo4j instalado y funcionando, es el momento de empezar con Cypher. Cypher es un lenguaje declarativo, inspirado en SQL, que permite manipular datos en Neo4j. Es aconsejable tener a mano la guía de referencia de Cypher siempre que estemos trabajando con Neo4j. Esta guía recoge la sintaxis y la semántica de las sentencias y funciones disponibles en Cypher. Hay que tener en cuenta que existe una guía de referencia (refcard) para cada versión de Neo4j (nosotros hemos elegido la guía de referencia para Neo4j versión 3.4). Antes de continuar os animamos a que abráis el browser de la base de datos que creamos en la segunda entrada. En el siguiente vídeo mostramos cómo abrir el browser y explicamos los elementos básicos del entorno de trabajo de Neo4j.     Ahora que ya conocemos la interfaz es el momento de empezar a trabajar con datos. Lo primero que vamos a hacer es aprender a crear nodos y relaciones en Neo4j. Para ello tendremos que usar la cláusula CREATE. Por ejemplo, empezamos ejecutando la siguiente sentencia: ¿Qué es lo que se ha creado? Podemos averiguarlo mediante la siguiente consulta: La sentencia anterior nos devuelve todos los nodos de la base de datos. En este caso nos ha devuelto un nodo, el que acabamos de crear. Pero, ¿qué información tiene ese nodo? Pues la verdad es que ninguna, es un nodo vacío. Sin tipo y sin propiedades (o atributos). Un nodo sin información por lo general no tiene mucho sentido, por lo que vamos a aprender...

Introducción a Neo4j

Ahora que ya conocemos las principales características de las bases de datos NoSQL en grafo y del modelo de datos que utilizan es el momento de ver, mediante ejemplos prácticos, cómo almacenar y manejar datos en estas bases de datos. En esta entrada comentaremos las principales características de Neo4j, veremos cómo instalar Neo4j en nuestro ordenador y cómo crear una base de datos y empezar a “jugar” con ella. Actualmente, Neo4j es la base de datos en grafo más popular según el ranking de db-engines.com. A fecha 2018, también es el número 21 de 295 en el ranking general de bases de datos. El modelo de datos utilizado por Neo4j es un grafo de propiedades etiquetado. Por tanto, las unidades básicas de procesamiento en Neo4j son las mismas que explicamos en la entrada anterior: nodos, relaciones entre nodos, propiedades (definidas sobre nodos o relaciones) y etiquetas que permiten definir el tipo de los nodos y de las relaciones. En Neo4j se utilizan los dos puntos “:” para representar las etiquetas. Por lo tanto, :Book, :Person y :HAS_READ, representarán las etiquetas Book, Persony HAS_READ. Por otro lado, para distinguir fácilmente las etiquetas de nodo de las de relación, en Neo4j se escriben las etiquetas de relación en mayúsculas y las etiquetas de nodo con la primera letra en mayúscula y el resto en minúsculas. Así pues, Book y Person serían etiquetas de nodo y HAS_READ una etiqueta de relación que representa qué libros (nodos de tipo :Book) ha leído una persona (nodo de tipo :Person). Las propiedades acostumbran a representarse en minúsculas. Neo4j es una base de datos schemaless. Esto no quiere...

Introducción a las bases de datos NoSQL en grafo

Las bases de datos NoSQL ya no son una novedad sino una realidad que encontramos en muchas de las aplicaciones que utilizamos diariamente. En el pasado habíamos comentado las características de este tipo de bases de datos y su evolución. A diferencia de las bases de datos relacionales, las bases de datos NoSQL no responden a un único modelo de datos, sino a un conjunto de ellos. Actualmente existen centenares de sistemas gestores de bases de datos NoSQL, en general muy distintos entre sí. En aras de favorecer la discusión y su comparación, los sistemas gestores de bases de datos NoSQL se clasifican en diferentes familias: los basados en modelos de agregación (que se pueden agrupar en clave-valor, documental o de grandes columnas) y los basados en grafo. Con este post queremos dar inicio a una serie de entradas que sirvan de tutorial a quienes quieran aprender a utilizar bases de datos NoSQL. En esta primera entrada, empezaremos viendo qué es una base de datos en grafo, qué modelo de datos permiten gestionar estas bases de datos y mostraremos algún ejemplo de uso. En las siguientes entradas aprenderemos a utilizar Neo4j, la base de datos en grafo de uso más extendido en la actualidad, según dbengines, y veremos algunos casos prácticos. Las bases de datos NoSQL en grafo permiten representar los datos utilizando estructuras de grafos. Un grafo es una representación abstracta de un conjunto de objetos. Los objetos de los grafos se representan mediante vértices (también llamados nodos) y aristas. El modelo en grafo es útil cuando los datos a almacenar tienen multitud de interrelaciones entre sí, y...

Wikipedia como laboratorio de investigación

Wikipedia es, sin lugar a duda, el mayor esfuerzo colaborativo realizado por la humanidad. Aunque no necesite presentación, podemos destacar que la Wikipedia en su versión inglesa apareció el 15 de enero de 2001 y hoy ya contiene más de 5.600.000 artículos en ese idioma, aunque existen más de 290 versiones en diferentes idiomas con más de 46 millones de artículos. La versión catalana destaca por ser la segunda Wikipedia creada tras la inglesa y cuenta ya con casi 580.000 artículos. En lo que se refiere a la versión castellana, contiene actualmente más de 1.400.000 artículos, y representa la novena Wikipedia en tamaño y la cuarta en cuanto a número de ediciones y número de editores considerados en activo. Todos estos datos pueden ser consultados aquí. Debido a su volumen y estructura de enlaces, se trata de un sitio web muy bien posicionado en los ránkings de los buscadores -aparece habitualmente en las primeras posiciones de cualquier búsqueda-, lo que la hace muy popular en Internet, generando suficiente tráfico como para aparecer en la 5a posición del ránking de Alexa. En Wikipedia se dan encuentro contenidos (los artículos), estructuras organizativas como las categorías, portales y anexos y, obviamente, los usuarios, ya sean anónimos o registrados, los cuales generan un volumen de interacción entre ellos y los contenidos muy considerable. Esto hace de Wikipedia un laboratorio único para realizar investigación sobre temas muy diversos: Sistemas de traducción automática que aprenden de las diferentes versiones lingüísticas de un mismo artículo en diferentes idiomas. Extracción automática de ontologías a partir de la estructura jerárquica de categorías y subcategorías. Diferencias en la creación de...