desarrollo de aplicaciones 3.0

48
Presentación de Desarrollo de Aplicaciones Web 3.0 Linked Data + BPM + Cloud

Upload: semanticwebbuilder

Post on 12-Jun-2015

756 views

Category:

Technology


5 download

DESCRIPTION

Presentación de la conferencia del Ingeniero Javier Solís acerca del Desarrollo de aplicaciones para la Web 3.0 en el marco de SG Conference y Expo 2012 organizado por la revista Software Gurú. En ella habló acerca del desarrollo de aplicaciones como Linked Data, BPM y Cloud enfocadas al desarrollo de aplicaciones.

TRANSCRIPT

Page 1: Desarrollo de aplicaciones 3.0

Presentación de

Desarrollo de Aplicaciones Web 3.0Linked Data + BPM + Cloud

Page 2: Desarrollo de aplicaciones 3.0

Agenda

¿Quién es INFOTEC?1

Linked Data3

La Web Semántica2

Demo5

Desarrollo Dirigido por Ontologías4

Preguntas6

Evolución de la Web2

Page 3: Desarrollo de aplicaciones 3.0

¿Quién es INFOTEC?

Page 4: Desarrollo de aplicaciones 3.0

¿Quién es INFOTEC?

Administración Integral de Infraestructura

Sistemas de Información Estratégica

Consultoría Estratégica

Oferta

Investigación Aplicada y Bajo Demanda

Formación de Capital Humano

Somos un Centro Público de Investigacion y Desarrollo Tecnológico que contribuye a la competitividad del Gobierno y de las PyMEs, a través del uso estratégico de Tecnologías de Información y Comunicaciones.

INFOTEC = I + D + DT x iEstrategia basada en

Arquitecturas Empresariales

Page 5: Desarrollo de aplicaciones 3.0

Evolución de la Web

Page 6: Desarrollo de aplicaciones 3.0

La evolución de la Web podría dividirse en tres niveles principalmente:

Evolución de la Web

• Web 1.0 - Personas conectándose a la Web

• Web 2.0 - Personas conectándose a personas - redes sociales, wikis, colaboración, posibilidad de compartir.

• Web Semántica - Aplicaciones Web conectándose a aplicaciones Web, a fin de enriquecer la experiencia de las personas.

Page 7: Desarrollo de aplicaciones 3.0

La Web Semántica

Page 8: Desarrollo de aplicaciones 3.0

La Web Semántica

Cómo Representar el mundo en una máquina (IA)

Page 9: Desarrollo de aplicaciones 3.0

La Web Semántica

Cómo percibimos y describimos el mundo

Es una construcción de piedra y madera que sirve para vivir.Está dividida en habitaciones con puertas y ventanas para el acceso de los habitantes.

Page 10: Desarrollo de aplicaciones 3.0

Qué es Semántica

Cómo percibimos y describimos el mundo

hecha de

tiene

hecha de

usada para

es una

tiene

tienepertenece a

Page 11: Desarrollo de aplicaciones 3.0

La Web Semántica según Tim Berners Lee

Una web semántica es una red de datos que pueden ser procesados

directa o indirectamente por máquinas.

Es una web extendida que permitirá a humanos y máquinas trabajar en

cooperación mutua.

Page 12: Desarrollo de aplicaciones 3.0

?

El problema…

Page 13: Desarrollo de aplicaciones 3.0

Web Semántica

Page 14: Desarrollo de aplicaciones 3.0

El objetivo detrás de darle significado a la información es crecer al Internet a un plano de conocimiento.

Visión de la Web Semántica

Page 15: Desarrollo de aplicaciones 3.0

No se trata de una inteligencia artificial mágica que permita a las máquinas entender

las palabras de los usuarios, es sólo la habilidad de una máquina para resolver

problemas bien definidos, a través de operaciones bien definidas que se llevarán

a cabo sobre datos existentes bien definidos.

Para obtener esa adecuada definición de los datos, la Web Semántica utiliza

esencialmente RDF, SPARQL, y OWL, mecanismos que ayudan a convertir la Web en

una infraestructura global en la que es posible compartir, y reutilizar datos y

documentos entre diferentes aplicaciones y usuarios.

Componentes de la Web Semántica

Page 16: Desarrollo de aplicaciones 3.0

RDF es un modelo de datos para los recursos y las relaciones que se puedan establecer entre ellos. Aporta una semántica básica para este modelo de datos que puede representarse mediante XML.

RDF proporciona información descriptiva simple sobre los recursos que se encuentran en la Web y que se utiliza, por ejemplo, en catálogos de libros, directorios, colecciones personales de música, fotos, eventos, etc.

Triple:

Sujeto – Propiedad – Objeto

¿Qué es Resource Definition Framework?

<casa><hecha de><piedra><casa><hecha de><madera><casa><usada para><vivir><casa><tiene><habitación><casa><es una><construcción><casa><pertenece a><Homero Simpson>< habitación><tiene><puerta>< habitación><tiene><ventana>

TRIPLAS

Page 17: Desarrollo de aplicaciones 3.0

SPARQL es lenguaje de consulta sobre RDF, que permite hacer búsquedas sobre los recursos de la Web Semántica utilizando distintas fuentes datos.

¿Qué es SPARQL?

Page 18: Desarrollo de aplicaciones 3.0

DBPedia.org

Page 19: Desarrollo de aplicaciones 3.0

OWL es un mecanismo para desarrollar temas o vocabularios específicos en los cuales asociar los recursos. Lo que hace OWL es proporcionar un lenguaje para definir ontologías estructuradas que pueden ser utilizadas a través de diferentes sistemas. Las ontologías incluyen definiciones de conceptos básicos en un campo determinado y la relación entre ellos.

Específicamente OWL es un vocabulario para describir las propiedades y las clases de los recursos RDF, ya que permite establecer jerarquías de generalización entre dichas propiedades y clases, además de describir relaciones entre clases como disyunción, cardinalidad (por ejemplo "únicamente uno"), igualdad, tipologías de propiedades más complejas, caracterización de propiedades (por ejemplo simetría) o clases enumeradas.

¿Qué es Ontology Web Language?

Page 20: Desarrollo de aplicaciones 3.0

Visión de la Infraestructura de la Web

Page 21: Desarrollo de aplicaciones 3.0

Linked Data

Page 22: Desarrollo de aplicaciones 3.0

¿Linked Data?

Linked Data es una propuesta para ayudar a construir la Web Semántica.

Linked Data describe la forma de exponer, compartir y conectar piezas de datos, información y conocimiento a través de la web

Page 23: Desarrollo de aplicaciones 3.0

1. Utiliza URIs como nombres para objetos

2. Utiliza URIs HTTP para que las personas pueda buscar esos nombres.

3. Cuando alguien busque un URI, proporcionar información útil, utilizando las normas (RDF, SPARQL)

4. Incluir enlaces a otros URIs para que puedan descubrir más cosas (Datos enlazados).

Reglas para construir datos enlazados (Linked Data)

Page 24: Desarrollo de aplicaciones 3.0

• Una estrella: ofrecer los datos en cualquier formato, aunque sean difíciles de manipular, como un pdf por ejemplo o una imagen escaneada..

• Dos estrellas: entregar los datos de manera estructurada, como en un archivo excel con extension xls.

• Tres estrellas: entregar los datos en un formato que no sea propietario, como csv en vez de excel, xml, rdf, etc.

• Cuatro estrellas: usar URI (que es una dirección web de un dato que sirve para enlazarlo con otros datos) para identificar cosas y propiedades, de manera que se pueda apuntar a los datos. De preferencia usar el estándar de RDF

• Cinco estrellas: vincular sus datos con los de otras personas, dotándolos de contexto. En la práctica, a que la información entregada también apunte a otras fuentes de datos. Por ejemplo, si coloco un país dentro de mis datos, puedo agregar una URI de referencia que apunte a los datos de ese país en Dbpedia o a Geonames.

Las cinco estrellas del Open Linked Data

Page 25: Desarrollo de aplicaciones 3.0

Crecimiento de la nube de Linked Data

Mayo 2007 (12 Datasets)

Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch. http://lod-cloud.net/

Page 26: Desarrollo de aplicaciones 3.0

Crecimiento de la nube de Linked Data

Septiembre 2008 (45 Datasets)

Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch. http://lod-cloud.net/

Page 27: Desarrollo de aplicaciones 3.0

Crecimiento de la nube de Linked Data

Julio 2009 (95 Datasets)

Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch. http://lod-cloud.net/

Page 28: Desarrollo de aplicaciones 3.0

Crecimiento de la nube de Linked Data

Septiembre 2010 (203 Datasets)

Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch. http://lod-cloud.net/

Page 29: Desarrollo de aplicaciones 3.0

Crecimiento de la nube de Linked Data

Septiembre 2011 (295 Datasets, 31 billions de triples)

Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch. http://lod-cloud.net/

Page 30: Desarrollo de aplicaciones 3.0

Desarrollo Dirigido por Ontologías

Page 31: Desarrollo de aplicaciones 3.0

Necesidades deNavegación y Búsqueda

Necesidades deAdministración y Publicación

WB 1.0 WB 1.5WB 2.0 ●

WB 2.1 ●WB 2.5 ●

WB 3.0 ●

WB 3.1 ●WB 3.2 Open Source ●

SWB ●

+ Semántica

●●2000 2001

2002

2004

2003

2005

2007

2006

2009

Linea de Tiempo del Desarrollo de la Familia SemanticWebBuilder

SWB Platform ●2010

SWProcess ●2011

2012SWB Search ●

SWB Cloud ●SWB Social ●

SWB Social Process ●

Page 32: Desarrollo de aplicaciones 3.0

Desarrollo Dirigido por Ontologías

El Desarrollo Dirigido por Ontologías es un nuevo paradigma de desarrollo que toma como punto de partida el conocimiento de un dominio capturado en una ontología para generar de manera automática la arquitectura y funcionalidad básica de un sistema de software cuyos objetos son persistentes de manera nativa en RDF

Page 33: Desarrollo de aplicaciones 3.0

Evolución de los paradigmas de desarrollo

Desarrollo Dirigido por Ontologías

Modelos Ontológicos (conocimiento)

Desarrollo Dirigido por Modelos

Modelos orientados a objetos (relaciones)

Programación Orientada a Objetos

Lenguajes de Programación (objetos)

Niv

el d

e ab

stra

cció

n

Niv

el d

e co

mpl

ejid

ad

Page 34: Desarrollo de aplicaciones 3.0

Generar Código

Transformación de Modelo Ontológico a Código

Page 35: Desarrollo de aplicaciones 3.0

Generar Código

Transformación de Modelo Ontológico a Código

Page 36: Desarrollo de aplicaciones 3.0
Page 37: Desarrollo de aplicaciones 3.0

SemanticWebBuilder es una

suite de herramientas para el

desarrollo de aplicaciones y

portales semánticos.

¿Qué es SemanticWebBuilder?

Page 38: Desarrollo de aplicaciones 3.0

Las herramientas que integran la suite del SemanticWebBuilder son:

SemanticWebBuilder Suite

• Modelador de Procesos (BPMN 2.0)• Motor de procesos

SW Process

• Servidor de Portales• Administración de contenidos• Administración de contextos de información• Administración de Usuarios

SWB Portal

• Modelado de Información (Definir significado)• Editor de Ontologías (OWL)

SWB Ontology Editor (En desarrollo)

• Plataforma Semántica• Punto de acceso para consultas semánticas (SPARQL)• Integración de Información (Fuentes externas)• Generación de código basado en ontologías• Soporte a Cloud

SWB Platform

• Persistencia de Datos (RDF)SWB Triple Store

Page 39: Desarrollo de aplicaciones 3.0

En INFOTEC por su naturaleza como Centro de Investigación y Desarrollo Tecnológico del CONACYT y buscando como principal objetivo el apoyo a la comunidad más que el beneficio económico, se tomo la decisión de liberar el producto bajo un esquema de código abierto con la finalidad de:

– Apoyar al crecimiento de la industria de TI en el país

– Abrir una oportunidad de negocia a la iniciativa privada

– Buscar el apoyo de la comunidad para crecer y evolucionar la herramienta

– Incrementar el potencial de penetración en el mercado

Esta decisión esta encaminada a brindar a la sociedad en general la oportunidad de contar con herramientas que le permitan el desarrollo de nuevas oportunidades de negocio en distintos ámbitos.

SemanticWebBuilder como Código Abierto

Page 40: Desarrollo de aplicaciones 3.0

Ontología VisitMexico

Page 41: Desarrollo de aplicaciones 3.0

Demo

Page 42: Desarrollo de aplicaciones 3.0

Ontología SWB Portal

Page 43: Desarrollo de aplicaciones 3.0

Ontología SWB Process

Page 44: Desarrollo de aplicaciones 3.0

Estándares• RDF, RDFS• OWL• SPARQL• HTML• XHTML• XML• JSR 168: Portlet Specification• JSR 170: Content Repository for JavaTM

technology API• JSR 286: Portlet Specification 2.0• JSR-223: Script engines for many languages• WSRP (Web Services for Remote Portlets)• JAAS• LDAP v3 (cliente)• XMLRPC• BPMN 2.0• XPDL 2.1

Lenguajes de desarrollo• Java JEE (servidor)• .Net Framework 3.5 (cliente office)

Persistencia Semántica• Memoria• Sistema de archivos• Base de Datos Relacional (HSQLDB, MySQL,

PostgreSQL, Derby, Oracle, Microsoft SQL Server)

• Base de Datos RDF Nativas (Virtuoso, Oracle 11g RDF, Allegro Graph)

• Bigdata

Soporte a Cloud• Sincronizacion automatica de cache de

Instancias• Soporte a Cloud-Front• Full Page Cache en base a alertas

Otras tecnologías• Dojo• Jena, ARQ• Java script• Ajax

Características tecnológicas

Page 45: Desarrollo de aplicaciones 3.0

Ventajas del Desarrollo Dirigido por Ontologías

• Se enfocan los esfuerzos del equipo de desarrollo en el correcto modelado del dominio más que en la definición y programación del sistema

• El modelo del sistema es comprensible por todas las partes involucradas en el desarrollo, pues se usan conceptos en un alto nivel de abstracción

• Un cambio en el modelo afecta al código base del sistema, pero un cambio en el código extendido no afecta al modelo, lo que permite mantener y reutilizar la funcionalidad existente

• El API se programación semántica permite a los programadores trabajar con ontologías, RDF y TripleStores sin requerir conocimientos profundos en esos tópicos

• Los recursos humanos y el tiempo necesarios para el desarrollo se reducen considerablemente

• Los datos de la aplicación se almacenan de manera semántica, por lo que es posible realizar consultas complejas y muy específicas

Page 46: Desarrollo de aplicaciones 3.0

Conclusiones

La Web Semantica y el Desarrollo de aplicaciones Web 3.0 es ya una realidad y nos abre las puertas a un nuevo mundo de posibilidades, en donde la integracion de datos de diferentes fuentes es el puento principal.

Actualmente existen muchas fuentes de datos accesibles por medio de APIs de la Web 2.0 como eBay, Amazon, Yahoo, Google. La tecnología Semántica tiene la ventaja de proveer un solo mecanismo estandar para el intercambio de datos, permitiendo a las fuentes de datos sea:

• Más facil para indexar por los buscadores• Es accesible por los navegadores genericos• Permite ligar datos de diferenctes fuentes.

El utilizar los conceptos de la Web Semantica para el desarrollo de aplicaciones abre la posibilidad de construir una nueva generación de aplicaciones a una fraccion del tiempo y cuya caracteristica principal se centra en la posibilidad de administrar información compleja y distribuida.

Page 47: Desarrollo de aplicaciones 3.0

Preguntas

Page 48: Desarrollo de aplicaciones 3.0

http://www.infotec.com.mxhttp://www.semanticwebbuilder.org.mx

[email protected]@softjei

[email protected]

Gracias