mongify + Sofia2 o cómo convertir tus datos SQL a ontologías sofia2

mongify es una herramienta de conversión de base de datos relacional a MongoDB.

mongify soporta MySQL, PostgreSQL, SQLite, Oracle, SQLServer y DB2.

Si unimos mongify a la capacidad de Sofia2 de disponibilizar colecciones MongoDB a ontologías Sofia2 desde la consola de configuración tenemos un mecanismo inmediato para pasar de nuestro repositorio tradicional relacional a Sofia2 como repositorio centralizado.

En las próximas semanas arrancaremos un piloto para probar esta herramienta…os mantendremos informados!

mongify + Sofia2 o cómo convertir tus datos SQL a ontologías sofia2

Smart Cyber-Physical Systems Engineering Labs selecciona Sofia2 como plataforma para el desarrollo de soluciones Smart Cities

Sofia2 ha sido seleccionada como plataforma para la construcción de soluciones y servicios Smart Cities dentro del proyecto europeo de I+D Smart Cyber Physical Systems (CPS) Engineering Labs

.

El objetivo de este proyecto es la creación de una red colaborativa de centros expertos en ingeniería para el desarrollo de sistemas ciberfísicos en diferentes áreas.

El proyecto tiene una duración de tres años y entre sus objetivos figura que la red de centros expertos prolongue su actividad tras la finalización del proyecto europeo mediante mecanismos de financiación que se generen en el ecosistema.

El proyecto se enmarca dentro del programa Marco Europeo Horizon 2020 de financiación para la investigación, desarrollo y la innovación, y tiene por objetivo facilitar la experimentación de productos y servicios y acelerar la transferencia de tecnología a la industria europea con el objetivo de promover su competitividad.

Cuenta con la colaboración de cinco países miembros, que acogerán centros expertos: Alemania, Francia, Suecia, Reino Unido y España.

La actividad en los tres primeros países se centra en el sector de la automoción mientras que Reino Unido trabajará en el ámbito de la sostenibilidad urbana.

Por su parte, el centro de España, que se ubicará en las instalaciones de la Universidad Politécnica de Madrid (UPM), se convertirá en el laboratorio de Smart Cities para Europa.

Indra lidera los trabajos que se desarrollarán en el Laboratorio CPS de España, cuyo objetivo es la experimentación y desarrollo de servicios para el ciudadano digital que faciliten la comunicación entre el mundo físico y el mundo virtual utilizando las capacidades de Sofia2.

Dentro del proyecto Indra se encargará también de coordinar todas las Open Calls del resto de centros de la red europea. Esto quiere decir que gestionará la publicación de concursos para que terceros propongan experimentos a realizar sobre las facilidades que ofrecen los centros y reciban financiación de la Unión Europea para realizarlos a través de ellos. Además, supervisará los experimentos que se realicen en cada uno de los ecosistemas de entidades que sustentarán la actividad del nodo (universidades, empresas, centros de investigación y ayuntamientos).

Asimismo, para facilitar la maduración de la tecnología se ha definido que los productos y servicios alcancen valores de TRL (Technology Readiness Level) cercanos al mercado. TRL es una escala definida por la Comunidad internacional que clasifica productos o servicios desde un nivel de principios teóricos básicos, que sería el TRL 1, hasta otro en el que estos son totalmente operativos en un entorno real, que sería el TRL 9.

Smart Cyber-Physical Systems Engineering Labs selecciona Sofia2 como plataforma para el desarrollo de soluciones Smart Cities

Já está disponível a nova versão 2.18.0 de Sofia2

Já está disponível a nova versão 2.18.0 deSofia2, que foi igualmente disponibilizada na Plataforma de Experimentação Sofia2CloudLab.

Ver versões

Esta nova versão acrescenta à Plataforma as seguintes funcionalidades:

· Página da plataforma Sofia2 em italiano e português:

O idioma português e o italiano foram adicionados ao site Sofia2.

Além disso, atualmente estão a ser traduzidos os guias do utilizador para esses idiomas.

· Modelo visual de Ontologias:

Na versão 2.18 da plataforma Sofia2, adicionou-se à consola web de configuração, um editor visual que permite modelar graficamente as ontologias de Sofia2. (este editor está construído na biblioteca jsUML2 desenvolvida por Jose Raúl Romero e a sua equipa, à qual agradecemos a sua colaboração)

Para modelar visualmente as ontologias, utilizaremos o botão correspondente:

Que abrirá o editor gráfico

A ontologia pode construir-se com os elementos do menu, que permite criar classes, atributos, relações:

Após modelar a nossa ontologia, teremos uma estrutura idêntica a esta, na qual se poderá verificar que uma ontologia não tem de ser equivalente a uma tabela num modelo relacional, mas pode ser um conjunto complexo de entidades que representam todo um modelo de domínio:

Para finalizar gerar-se-á o esquema que representa o modelo da nossa ontologia.

· Suporte BDTR (Base de Dados em Tempo Real) para a utilização de bases de dados relacionais V1.

A implementação de referência da BDTR de Sofia2 está construída em MongoDB. Nesta versão inclui-se à BDTR o suporte de bases de dados relacionais, o motor funciona em qualquer base de dados relacional com driver JDBC (Oracle, MySQL, PostgreSQL, SQLServer,..), embora nesta primeira versão se tenha certificado em Oracle Database.

Esta nova implementação permite utilizar a plataforma Sofia2 em organizações (inclusive sistemas), onde temos um Sistema Gestor de Base de Dados Relacional (SGBDR) já implementado ou onde o departamento de sistemas tem experiência na sua administração.

Neste cenário, Sofia2 mantém todas as funcionalidades e é transparente para o cliente da plataforma (neste caso a linguagem nativa de consulta será SQL).

Ao utilizar uma base de dados relacional como a BDTR de Sofia2, as ontologias serão mapeadas para tabelas do modelo de dados e será o módulo gestor da BDTR de Sofia2 quem fará a tradução a partir/para o modelo relacional das instâncias da ontologia e resultados de consultas (documentos JSON).

Quando se escolhe esta implementação, o modelo de ontologias realiza-se a partir de um novo assistente que integra as capacidades do SGBDR escolhido:

Além disso, quando a base de dados subjacente suporta o tipo de dados JSON (por exemplo Oracle 12 ou Postgresql 9.3) poderá selecionar-se este tipo de atributo:

· Suporte de binários em ontologias Sofia2

A Plataforma Sofia2 já permitia a inclusão de binários nas ontologias, mas exigia uma gestão manual aquando da definição da Ontologia.

Nesta versão, incorporou-se o suporte para modelar um novo tipo de atributo (binário) nas nossas ontologias.

Este campo permite definir o tipo MIME, codificação, tipo de armazenamento e nome do binário a adicionar à nossa ontologia.

Em API Java, oferece-se ainda um método útil para trabalhar de uma forma acessível com este tipo de dados, permitindo adicionar binários com um método simples:

Poderá encontrar mais detalhes sobre esta funcionalidade nos guias de utilização da consola web e das APIS, assim como num próximo post.

· Novos Gadgets de Visualização

Nesta nova versão de Sofia2, incluíram-se novos gadgets e uma melhoria dos existentes, o que nos permite a criação de Dashboards Sofia2 mais sofisticados.

Para estes novos gadgets utilizou-se a biblioteca Javascript Google Charts. A seguir pode verificar o aspecto destes novos Gadgets e como se configuram:

Gráfico de Área

Gráfico de Barras

Gráfico de Tarte

Gráfico Gauge

· Melhorias nos Dashboards de Sofia2

Ao complementar as novas funcionalidades dos Gadgets, incorporaram-se melhorias nos dashboards de Sofia2, permitindo nesta nova versão atribuir novos layouts e temas para o Dashboard:

Um exemplo básico de Gadget na estação meteorológica:

· Incorporação da rede social Instagram às capacidades Social Media da Plataforma:

Enquanto uma Plataforma IoT, Sofia2 simplifica a integração da informação de qualquer “coisa”. Estas “coisas” podem ser dispositivos, smartphones, sistemas corporativos e obviamente as redes sociais, que são uma das fontes mais importantes atualmente.

Ampliaram-se as capacidades da Plataforma incluindo o Instagram, no qual poderá nesta versão obter a imagem ou vídeo mais popular:

Os resultados podem armazenar-se numa ontologia nova ou numa já existente.

· Como construir APPs Sofia2 na App Inventor

Nesta versão de Sofia2, publicaram-se vários posts no blog/wiki de Sofia2 nos quais se explica a integração da ferramenta App Inventor com Sofia2, para o desenvolvimento de aplicações Android de forma visual.

O conteúdo dos posts distribui-se da seguinte forma:

Sofia2 e Google App Inventor: Introdução.

Sofia2 e Google App Inventor: Primeiros Passos e Configuração

Sofia2 e Google App Inventor: Enviar Informação

Sofia2 e Google App Inventor: Pedir, receber e mostrar informação

O objetivo destas publicações é explicar como fazer uma aplicação móvel e como configurá-la, para que se ligue à plataforma Sofia2 a fim de enviar e receber informação de uma ontologia.

Relativamente a este trabalho, realizaram-se duas sessões formativas na Universidade Carlos III de Madrid de apoio ao concurso Smart Campus UC3M, no qual participa a Indra.

Já está disponível a nova versão 2.18.0 de Sofia2

PUBLICADA RELEASE 2.18.0 DE SOFIA2

Ya está disponible la release 2.18.0 deSofia2, esta release también se ha disponibilizado en la Plataforma de Experimentación Sofia2CloudLab.

Ver releases

Esta versión añade a la Plataforma las siguientes funcionalidades:

· Web pública Sofia2 en italiano y portugués:

Se han añadido los idiomas portugués e italiano al site Sofia2.

Se está trabajando además en traducir las guías de usuario a estos idiomas.

· Modelado visual de Ontologías:

En la versión 2.18 de la plataforma Sofia2 se ha añadido a la consola web de configuración un editor visual que permite modelar de forma gráfica las ontologías Sofia2.

(este editor está construido sobre la librería jsUML2 desarrollada por Jose Raúl Romero y su equipo al que queremos agradecerle la colaboración)

Para modelar visualmente ontologías usaremos el botón correspondiente

Que nos abrirá el editor gráfico

La ontología puede construirse con los elementos del menú que permite crear clases, atributos, relaciones:

Tras modelar nuestra ontología tendremos una estructura de este estilo en la que puede verse que una Ontología no tiene porque ser equivalente a una tabla en un modelo relacional si no a una conjunto complejo de entidades que representan todo un modelo de dominio:

Para finalizar generaremos el esquema que representa el modelo de nuestra ontología.

· Soporte BDTR (Base Datos Tiempo Real) para el uso de bases de datos relacionales V1.

La implementación de referencia de la BDTR de Sofia2 está construida sobre MongoDB. En este release se ha incluido a la BDTR el soporte de bases de datos relacionales, el motor funciona sobre cualquier base de datos relacional con driver JDBC (Oracle, MySQL, PostgreSQL, SQLServer,..), aunque en esta primera versión se ha certificado sobre Oracle Database.

Esta nueva implementación permite usar Sofia2 en organizaciones (incluso sistemas) donde tenemos un Sistema Gestor de Base de Datos Relacional (SGBDR) ya implantado o donde el departamento de sistemas tiene experiencia en su administración.

En este escenario Sofia2 mantiene todas las funcionalidades y es transparente para el cliente de la plataforma (en este caso el lenguaje nativo de consulta será SQL).

Utilizando una base de datos relacional como BDTR de Sofia2, las ontologías serán mapeadas a tablas del modelo de datos, y será el módulo gestor de BDTR de Sofia2 quien haga traduzca desde/hacia el modelo relacional las instancias de ontología y resultados de consultas (documentos JSON).

Cuando se elija esta implementación el modelado de ontologías se realiza desde un nuevo asistente que integra las capacidades del SGBDR elegido:

Además cuando la base de datos subyacente soporta el tipo de datos JSON (por ejemplo Oracle 12 o Postgresql 9.3) se podrá seleccionar este tipo de atributo:

· Soporte binarios en ontologías Sofia2

La Plataforma Sofia2 ya permitía la inclusión de binarios en las ontologías pero requería una gestión manual a la hora de definir la Ontología.

En esta release se ha incorporado soporte para modelar un nuevo tipo de atributo (binary) a nuestras ontologías.

Este campo permite definir el mime-type, encoding, tipo de almacenamiento y nombre del binario a añadir a nuestra ontología.

En el API Java se ofrece además un método de utilidad para trabajar de forma sencilla con este tipo de datos permitiendo añadir binarios con un simple método:

Puede encontrarse más detalle sobre esta funcionalidad en las guías de uso de la consola web y de las APIS y en un próximo post.

· Nuevos Gadgets de Visualización

En esta nueva versión de Sofia2 se han incluido nuevos gadgets y mejorado los existentes. Esto permite la creación de Dashboards Sofia2 más sofisticados.

Para estos nuevos gadgets se ha usado la librería Javascript Google Charts, a continuación podemos ver el aspecto de estos nuevos Gadgets y cómo se configuran:

Gráfico de Área

Gráfico de Barras

Gráfico de Tarta

Gráfico Gauge

· Mejoras en Dashboards Sofia2

Complementando las nuevas funcionalidades de los Gadgets se han incorporado mejoras en los dashboards Sofia2, permitiendo en esta nueva versión asignar nuevos layouts y temas para el Dashboard:

Un ejemplo básico de Gadget sobre la estación meteorológica:

· Incorporación de red social Instagram a capacidades Social Media de la Plataforma:

Sofia2 como Plataforma IoT simplifica la integración de información de cualquier “Thing”, estas Things pueden ser dispositivos, smartphones, sistemas corporativos y por supuesto las redes sociales que son unas de las fuentes más importantes en la actualidad.

Se han ampliado las capacidades de la Plataforma incluyendo Instagram, sobre la que podremos en esta versión obtener el media (imagen o vídeo) más popular:

Los resultados pueden almacenarse sobre una ontología nueva o sobre una ya existente.

· Cómo construir APPs Sofia2 sobre App Inventor

En esta release de Sofia2 se han publicado varios posts en el blog/wiki de Sofia2 en los que se explica la integración de la herramienta App Inventor con Sofia2 para el desarrollo de aplicaciones Android de forma visual

El contenido de los posts se distribuye de la siguiente manera:

Sofia2 y Google App Inventor: Introducción.

Sofia2 y Google App Inventor: Primeros Pasos y Configuración

Sofia2 y Google App Inventor: Enviar Información

Sofia2 y Google App Inventor: Pedir, recibir y mostrar información

El fin de estas publicaciones es el de explicar cómo hacer una aplicación móvil y cómo configurarla para que se conecte a Sofia2 para enviar y recibir información de una ontología.

Relacionado con esta labor se han realizado 2 sesiones formativas en la Universidad Carlos III de Madrid de apoyo el concurso Smart Campus UC3M en el que Indra participa.

PUBLICADA RELEASE 2.18.0 DE SOFIA2

SOFIA2 RELEASE 2.18.0 PUBLISHED

Sofia2 new release 2.18.0 is now available. This release has also been deployed in the experimentation platform Sofia2 CloudLab.

View releases

This new version adds the following features to the platform:

· Now, Sofia2’s public webpage, in Italian and Portuguese:

Italian and Portuguese languages have been added to Sofia2’s Site.

We are working also in translating all user guides to these languages.

· Ontologies visual modeling:

An ontology visual editor has been added to the configuration web console in Sofia2`s version2.18, in order to make the modeling of ontologies easier.

(this editor has been built using jsUML2 library developed by Jose Raúl Romero and his team, who we want to thank for his cooperation)

To visually model ontologies, we will use the corresponding button

It will open up the graphic editor

We can build ontologies using the elements shown at the menu, which allow us to create classes, attributes and relations:

After modeling our ontology, we will have a structure similar to the one bellow. Where we can see that an Ontology does not have to be the equivalent of a relational model table, but a complex set of entities which represent a whole domain model.

Finally we will generate the schema that represents the model of our Ontology.

· RTDB (Real Time Data Base) relational Data Bases V1 support.

Sofia2 BDTR reference implementation is built using MongoDB. In this release, relational data base RTDB support has been included. The data base engine works over any relational data base that uses JDBC driver (Oracle, MySQL, PostgreSQL, SQLServer…), even though this first version has been certified on just Oracle Database.

This new implementation allows Sofia2 to be used in Organizations (even Systems ) where we have a Relational Data Base Manager System already deployed or where the systems department already have experience managing them. In this scenario, Sofia2, maintains every functionality and it is transparent for the final platform client (in this case the native query language will be SQL ).

Using a relational data base as Sofia2 RTDB, the ontologies will be mapped as tables of the data model, and Sofia2 RTDB manager module will be which translate from/to the relational model any ontology instance and query result (JSON documents).

When this implementation is chosen, the ontology modeling is done from a new assistant that integrates the capabilities of the Relational Data Base Manager System that has been chosen.

Also whenever the underlying data base supports JSON (e.g. Oracle 12 or Postgresql 9.3) this type of attribute could be selected:

· Binary Support on Sofia2 Ontologies

The Sofia2 Platform already allowed the inclusion of binaries on ontologies but required a manual management when defining the Ontology.

This release includes support for modeling a new attribute type (binary) to our ontologies.

This field allows setting the mime-type, encoding, storage type and name of the binary to be added to our ontology.

In the Java API there is also provided a utility method to easily work with this type of data that allows adding binary with a simple method:

You can find more information on this functionality in the Web Console User and APIs Guide and in the new post.

· New Display Gadgets

In this new version of Sofia2 we have included new gadgets and improved the existing. This allows the creation of more sophisticated Sofia2 Dashboards.

For these new gadgets we have used the Javascript Google Charts library. The appearance and configuration of these new gadgets is as follows:

Area Chart

Bar Chart

Pie Chart

Gauges

· Improvements in Sofia2 Dashboards

Complementing the new features in the Gadgets there has been incorporated improvements in Sofia2 dashboards, allowing in this version:

New layouts and styles:

Basic example:

· Incorporation of the social network Instagram to the Social Media capabilities of the Platform:

Sofia2 as IoT Platform simplifies the integration of information from any “Thing”, these Things can be devices, smartphones, corporate systems and of course the social networks that are among the most important sources today.

The capabilities of the Platform have expanded including Instagram, on which we can in this version get the most popular media (image and video):

The results can be stored on a new Ontology or on an existing one.

· How to build APPs Sofia2 on App Inventor

In this release of Sofia2 several posts have been published on the Sofia2 blog/wiki in which we explain the integration of APP inventor tool with Sofia2 for visually developing Android applications

The content of the posts is distributed as follows:

Sofia2 y Google App Inventor: Introducción. (Introduction)

Sofia2 y Google App Inventor: Primeros Pasos y Configuración (First steps and configuration)

Sofia2 y Google App Inventor: Enviar Información (Send information)

Sofia2 y Google App Inventor: Pedir, recibir y mostrar información (Query, receiving and displaying information)

The purpose of these publications is to explain how to make a mobile application and how to configure it to connect to Sofia2 to send and receive information from an ontology.

Related to this task we have done 2 training sessions at the Carlos III University of Madrid supporting the Smart Campus UC3M contest in which Indra participates.

SOFIA2 RELEASE 2.18.0 PUBLISHED

Actualización Versión Community Sofia2

Sofia2 sigue apostando por el compromiso open source, y ha actualizado la versión Community de Sofia2 a la 2.17 estable.

Los usuarios de esta versión pueden actualizarse a esta nueva versión y empezar a trabajar con ella.

Para conocer en detalle las funcionalidades que se han ido incluyendo en la plataforma podemos consultar las releases previas.

Recordemos las características de la versión community:

  • Licencia open-source.
  • Sin coste por uso.
  • Versión base de la Plataforma operativa.
  • No ofrece Consolas Web ni Herramientas avanzadas (Reglas y CEP).
  • Fuentes descargables desde Forja SOFIA2: http://sofia2.org
  • Incluye Guías de Uso y SDK http://sofia2.com

Para tener acceso basta con acceder al formulario de registro: http://sofia2.org/redmine/account/register

Para contactar con soporte basta escribir un email al Usuario genérico Soporte Plataforma Sofia2 supportsofia2@indra.es

Actualización Versión Community Sofia2

Asistente para la creación de reglas

Sofia2 cuenta con un motor de reglas CEP y de Script que son muy útiles para la gestión automática de eventos, como por ejemplo, si alguien inserta algo en una ontología determinada, podemos hacer que automáticamente mande un email a una cuenta de correo electrónico, o que realice otra inserción en una ontología diferente, etc.

Las posibilidades que ofrecen, ya no solo las reglas CEP y script de manera independiente, sino la combinación de ambas, son infinitas. Pero, para los que entran en contacto por primera vez con estas herramientas, puede ser difícil al principio crearlas y ver sus posibilidades. Para ello hemos diseñado un Asistente de creación de reglas para facilitar la creación las mismas en base a unas plantillas. Actualmente solo disponemos dos plantillas, una para detectar la ausencia de un determinado evento y otra para filtrar los eventos que se produzcan. Todo ello intentando abstraer al usuario lo máximo posible de lenguajes y sintaxis a los que puede que no esté acostumbrado.

Os mostramos ahora paso a paso como crear cada una de las dos reglas usando esta herramienta.

Regla de ausencia

Primero, para llegar al menú de selección de la plantilla de ausencia, es necesario que seleccionéis en el menú de la izquierda en el apartado “Reglas” la opción “Crear Regla con Wizard”. Os aparecerá una lista con las opciones que hay, debéis seleccionar ahora la primera opción, donde pone “Generar regla utilizando plantillas” y pulsamos en SIGUIENTE.

Ahora debería aparecerte una lista con las plantillas disponibles. Si pulsas sobre cada una de ellas, podrás observar a la derecha una breve descripción de su funcionalidad. En esta ocasión seleccionaremos la plantilla de ausencia y pulsaremos en SIGUIENTE.

En este segundo paso nos encontramos en una pantalla con diferentes campos que deberemos rellenar. El primero se trata del Nombre de la regla, el cual solo puede estar formado por letras, en el segundo campo seleccionamos la ontología sobre la que queramos detectar la ausencia y finalmente introducimos el tiempo para la ausencia. Comprobamos que está todo correcto y pulsamos en siguiente. Aquí será cuando se generen automáticamente el evento y la regla CEP de entrada que detectará la ausencia.

Ahora deberíamos estar en el paso 3 con prácticamente todos los campos rellenos, a excepción de las pestañas THEN, ELSE y ERROR del script. En estos campos, podemos realizar cualquier acción utilizando la APISofia, como podemos ver en la imagen de abajo que nos mandaría un e-mail a la cuenta de Sofia para avisarnos de la ausencia. Una vez le demos a siguiente terminaremos el proceso y estará todo creado y funcionando.

Regla con filtros

Para utilizar esta plantilla, haremos como en el caso de la Plantilla de ausencia, hasta llegar al menú de selección de plantillas, donde describíamos el funcionamiento de cada una, pero en este caso seleccionamos la que pone “Plantilla con filtros” y le damos a siguiente.

En este primer paso tendremos que rellenar el campo identificación con las mismas restricciones de antes, y tendremos que seleccionar una ontología sobre la que queramos hacer el filtrado y cargar sus campos. Una vez cargados podremos empezar a crear los filtros e ir añadiéndolos a la tabla. Siempre tendremos la opción de editar los filtros una vez agregados en el caso de que, por cualquier motivo, nos hayamos equivocado a la hora de agregarlo, o simplemente queramos modificarlos.

Como podrás observar, en la tabla, la primera columna contiene unos selectores con dos opciones (AND y OR) en todas las filas menos en la primera. De esta manera cada filtro se combina con el inmediatamente superior con la operación que indiquemos en esa columna. Si ya hemos agregado todos los filtros y estamos satisfechos con las reglas creadas, podemos darle a siguiente para pasar al último paso.

Como habrás podido observar, esta pantalla se parece mucho a la del último paso de la Plantilla de ausencia, con la diferencia de que la pestaña IF estará llena de código que se ha generado automáticamente a partir de los filtros agregados en el paso anterior. Aunque por debajo su funcionamiento es ligeramente diferente, nosotros tendremos que rellenar los mismos campos (pestañas THEN, ELSE y ERROR) que en el caso de la ausencia. Una vez terminemos de rellenar las pestañas, pulsaremos sobre el botón siguiente y se habrá creado el Script de filtrado.

De momento estas son las dos únicas plantillas disponibles, pero en un futuro la lista crecerá con más opciones.

Asistente para la creación de reglas