Nueva guía e IDE de desarrollo de soluciones sobre Plataforma Sofia2

image0172

 

Uno de los objetivos fundacionales de la Plataforma Sofia2 es el de simplificar y agilizar el desarrollo de todo tipo de aplicaciones, desde aplicaciones IoT en las que intervienen Gateways o dispositivos móviles a grandes sistemas Big Data, sin olvidar las aplicaciones web puras de gestión, para las que Sofia2 es un facilitador.

En este ámbito se ha añadido en la sección de Documentación  de la web sofia2.com una nueva guía que explica paso a paso cómo construir aplicaciones web (en la guía basadas en Spring Boot y Angular):

image0172

 

Complementando la guía se ha generado un entorno de desarrollo empaquetado como un ZIP que contiene todas las herramientas necesarias para construir estas soluciones (incluyendo JVM Java, IDE Eclipse, Maven, Apache Tomcat,…)

Nueva guía e IDE de desarrollo de soluciones sobre Plataforma Sofia2

Sofia2 Desktops

T_21

A área de trabalho da plataforma constitui o ponto de acesso de qualquer usuário da plataforma a qualquer um dos aplicativos fornecidos no projeto e a que o usuário tenha acesso.

No nível da plataforma, diferentes desktops podem ser criados para que um usuário possa acessar vários desktops, cada um com diferentes finalidades e aplicativos.

Escritórios são aplicativos da Web que atuam como contêineres para outras aplicações. Um administrador de plataforma controla e configura quais aplicativos são acessíveis a partir de cada mesa, associando-os à área de trabalho do próprio painel de controle da plataforma.

Ao mesmo tempo, cada administrador de aplicativos, dando-o como um projeto na própria plataforma, controlará quais usuários têm acesso ao aplicativo.

Para que cada mesa, realize o controle do acesso aos usuários da plataforma através de uma tela de login e dependendo das permissões que esse usuário tenha em cada um dos aplicativos registrados, terá acesso ou não aos aplicativos registrados como aplicativos de área de trabalho.

Em seguida, explicaremos como criá-los e usá-los.

Seguir leyendo “Sofia2 Desktops”

Sofia2 Desktops

SOFIA2 Desktops

T_21

The desktop of the platform constitutes the access point of any user of the platform to any of the applications provided in the project and to which the user has access.

At the platform level, different desktops can be created so that a user can access several desktops, each with different purposes and applications.

Desks are Web applications that act as containers for other applications. A platform administrator controls and configures which applications are accessible from each desk, associating them to the desktop from the platform’s own control panel.

At the same time each application administrator, giving it as a project on the platform itself, will control which users have access to the application.

So that each desk, performs the control of access to users of the platform through a login screen, and depending on the permissions that that user has on each of the applications registered, will have access or not to the registered applications as desktop applications.

Next, we will explain how to create and use them.

Seguir leyendo “SOFIA2 Desktops”

SOFIA2 Desktops

Escritorios SOFIA2

T_21

El escritorio de la plataforma constituye el punto de acceso de cualquier usuario de la plataforma a cualquiera de las aplicaciones provistas en el proyecto y a las que el usuario tuviera acceso.

A nivel de plataforma se pueden crear diferentes escritorios de manera que un usuario pueda tener acceso a varios escritorios, cada uno con propósitos y aplicaciones distintos.

Los escritorios son aplicaciones Web que actúan como contenedores de otras aplicaciones. Un administrador de la plataforma controla y configura qué aplicaciones son accesibles desde cada escritorio, asociándolas al escritorio desde el propio panel de control de la plataforma.

A su vez cada administrador de aplicación, dándola de alta como proyecto en la propia plataforma, controlará qué usuarios tienen acceso a la aplicación.

De manera que cada escritorio, realiza el control de acceso a los usuarios de la plataforma mediante una pantalla de login, y en función de los permisos de que disponga dicho usuario sobre cada una de las aplicaciones dadas de alta, tendrá acceso o no a las aplicaciones registradas como aplicaciones de escritorio.

A continuación explicaremos como crearlos y utilizarlos.

Seguir leyendo “Escritorios SOFIA2”

Escritorios SOFIA2

¿Cómo invocar a un API REST externa desde el motor de flujos Sofia2?

En este ejemplo vamos a invocar a un API Externa desde el motor de flujos integrado en la plataforma.

En la versión 3.4 de Sofia2 se integró Node-RED como motor de flujos (post aquí), una funcionalidad típica a implementar desde esta programación visual es la de invocar a un API REST externa para posteriormente procesarlo en la plataforma (almacenarlo en la BDTR, hacer analítica, representarlo,…)

En el ejemplo invocaremos al API de Análisis del Sentimiento de MeaningCloud (qué es MeaningCloud). MeaningCloud es un Servicio Web que ofrece APIs (https://www.meaningcloud.com/developer/apis) que pueden invocarse vía REST con el token que nos dan tras registrarnos. Queremos probar este API:

Para poder crear un flujo Node-RED en Sofia2 tengo que seguir estos pasos:

1. Primero debo crear un proyecto, para eso desde

selecciono

2. Dentro del proyecto debo ir a la opción y crear un dominio:

3. Una vez creado el dominio ya puedo ir a Mis Flujos:

Donde veré mi Dominio, que puedo arrancar o parar desde

4. Una vez arrancado el dominio abajo veré Mis Flujos:

Desde donde puedo ir a

5. Una vez dentro de mi dominio Node-red podré crear los flujos que necesite:

Hemos creado un flujo muy sencillo, que luego habría que completar con el procesamiento completo (que se ejecute en cierto momento y que guarde los datos).

El nodo principal es este: que realiza la llamada al API:

El nodo anterior se encarga de pasar los parámetros:

Entre ellos el key para poder invocarlo, el texto a analizar, lenguaje y las headers para poder invocarlo.

A la salida hemos puesto un nodo Debug que nos permite ver el resultado de la invocación:

Como podéis ver, el resultado me da esto:

{
"status":{
"code":"0",
"msg":"OK",
"credits":"1",
"remaining_credits":"19974"
},
"model":"general_es",
"score_tag":"P",
"agreement":"AGREEMENT",
"subjectivity":"OBJECTIVE",
"confidence":"100",
"irony":"NONIRONIC",
"sentence_list":[
{
"text":"A ver si esto te parece positivo",
"inip":"0",
"endp":"31",
"bop":"y",
"confidence":"100",
"score_tag":"P",
"agreement":"AGREEMENT",
"segment_list":[
{
"text":"A ver si esto te parece positivo",
"segment_type":"main",
"inip":"0",
"endp":"31",
"confidence":"100",
"score_tag":"P",
"agreement":"AGREEMENT",
"polarity_term_list":[
{
"text":"positivo",
"inip":"24",
"endp":"31",
"confidence":"100",
"score_tag":"P"
}
]
}
],
"sentimented_entity_list":[

],
"sentimented_concept_list":[

]
}
],
"sentimented_entity_list":[

],
"sentimented_concept_list":[

]
}

Podemos ver la documentación del API para entender bien el significado de los conceptos: https://www.meaningcloud.com/developer/sentiment-analysis/doc/2.1/response

¿Cómo invocar a un API REST externa desde el motor de flujos Sofia2?

Algunas consultas en Motor SQL de Sofia2 para acceder a Mongo

En la primera versión de 2017 se incluyó en la plataforma un nuevo motor de consultas en SQL para los escenarios en los que se usaba como BDTR MongoDB.

Este nuevo motor se describe en profundidad en este post: Soporte para consultas SQL en BDTR

Este motor permite a los usuarios de SQL manejar todas las capacidades de MongoDB desde su lenguaje favorito.

En este post queríamos mostrar algunas consultas que se simplifican mucho usando este motor SQL en Sofia2.

Para probarlo iremos al Panel de Control de mi instancia Sofia2 y dentro a Consola BDTR y BDH:

Desde ahí puedo seleccionar una ontología y pulsar botón de :

En mi caso esto me devuelve un listado con 3 instancias de AparcamientPublicoMadrid:

Veamos primero como consultar las entidades cuya fecha de inserción (atributo ContextData.timestamp) es menor de una fecha concreta:

select * from AparcamientPublicoMadrid where contextData.timestamp<TIMESTAMP("2016-12-27T13:30:00.000Z")

select * from AparcamientPublicoMadrid where contextData.timestamp<DATE("2016-12-27")

select count(*) from AparcamientPublicoMadrid where contextData.timestamp<DATE("2016-12-28")

NOTA: Recordad que en este motor se deben usar comillas dobles (“) en lugar de comillas sencillas (‘)

Probemos ahora el DISTINCT, GROUP

Veamos esta ontología:

Puedo hacer por ejemplo

SELECT distinct(Tweet.tweet_user_name) FROM Tweets_Sofia2

SELECT Tweet.tweet_user_name,count(Tweet.tweet_user_name) as numtweets FROM Tweets_Sofia2 group by Tweet.tweet_user_name

o

SELECT count(*) FROM Tweets_Sofia2 where Tweet.tweet_text like "%Indra%"

Algunas consultas en Motor SQL de Sofia2 para acceder a Mongo