41
Desarrollo Orientado a la Semántica

Programación orientada a la semántica

Embed Size (px)

DESCRIPTION

¿Cómo podemos desarrollar código orientado a la semántica? En esta presentación podrás conocer cómo y cuáles son las ventajas de hacerlo de esta manera.

Citation preview

Page 1: Programación orientada a la semántica

Desarrollo Orientado a la Semántica

Page 2: Programación orientada a la semántica

Agenda

¿Quién es INFOTEC?1

La Web Semántica3

¿Qué es semántica?2

SemanticWebBuilder Suite5

Desarrollo Orientado a la Semántica4

Preguntas6

Page 3: Programación orientada a la semántica

¿Quién es INFOTEC?

Page 4: Programación orientada a la semántica

Somos un Centro Público de Investigación,Innovación y Desarrollo Tecnológico delCONACYT que contribuye a lacompetitividad del Gobierno y de lasPyME’s, a través del uso estratégico deTecnologías de Información yComunicaciones.

Misión de la Institución

Page 5: Programación orientada a la semántica

¿Qué es Semántica?

Page 6: Programación orientada a la semántica

RAE > Semántico(ca)

• Perteneciente o relativo a la significación de las palabras.

• Estudio del significado de los signos lingüísticos y de sus combinaciones, desde un punto devista sincrónico o diacrónico.

RAE > Significación

• Sentido de una palabra o frase

RAE > Significado

• Significación o sentido de una palabra o frase

• Contenido semántico de cualquier tipo de signo, condicionado por el sistema y el contexto

RAE > Sentido

• Entendimiento o razón, en cuanto discierne las cosas

• Modo particular de entender algo, o juicio que se hace de ello

¿Qué es Semántica?

*RAE -- Real Academia Española

Page 7: Programación orientada a la semántica

• Es la manera en que percibimos y entendemos el mundoque nos rodea.

• Siempre se basa en las relaciones entre los objetos queconocemos del mundo.

• Si no conocemos algo, para nosotros no existe.

• Cuando descubrimos algo nuevo, lo relacionamos con lo queconocemos.

• Nuestra semántica es conocimiento y tiene construccionescomunes a nuestro contexto.

¿Qué es Semántica?

Page 8: Programación orientada a la semántica

¿Qué es Semántica?

Cómo percibimos y describimos el mundo

Una casa 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 9: Programación orientada a la semántica

¿Qué es Semántica?

hecha de

tiene

hecha de

usada para

es una

tiene

tiene

pertenece a

Cómo percibimos y describimos el mundo

Page 10: Programación orientada a la semántica

¿Qué es Semántica?

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

Page 11: Programación orientada a la semántica

Qué es Semántica

Ontología

Ontología (Filosofía / Lógica)

• Conjunto de entidades presupuestas en una teoría [1].

Ontología (Ciencias de la Computación)

• Modelo de datos que representa un conjunto de conceptos dentro de un dominio y susrelaciones [1].

Ontología (Ciencias de la Computación)

• En teoría, una ontología es “una especificación formal y explícita de una conceptualizacióncompartida”. Provee un vocabulario compartido que puede usarse para modelar un dominio– esto es, el tipo de objetos y/o conceptos que existen, sus propiedades y relaciones [2].

[1] Traducción de The free dictionary. http://www.thefreedictionary.com

[2] Wikipedia, the free encyclopedia. http://en.wikipedia.org/wiki/Ontology_(information_science)

Page 12: Programación orientada a la semántica

La Web Semántica

Page 13: Programación orientada a la semántica

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 14: Programación orientada a la semántica

• Hoy en día, las ideas propuestas por Berners-Lee sobre la Web Semántica [Berners-Lee][Shadbolt ] son casi una realidad.

• La disponibilidad de recursos en la Web, el poder de cómputo, las técnicas y estándaressemánticos como RDF [Klyne] y OWL [Motik] permiten a los grupos de investigación ydesarrollo construir poderosos mecanismos de software para representar y explorar laWeb de manera Semántica.

• Actualmente existen herramientas que permiten añadir Semántica a las piezas de códigoo páginas Web existentes [Chiu] [Bizer] [Story] [Cowan et.al], sin embargo, se cuenta conpocas herramientas que permiten la creación de código totalmente semántico desde suconceptualización [Koide ] [Völkel] [Kalyanpur].

• Más aún, sólo algunas herramientas integran una metodología y un API de desarrollopara construir aplicaciones semánticas [Solís et.al].

Como esta La Web Semántica hoy

Page 15: Programación orientada a la semántica

?

El problema…

Page 16: Programación orientada a la semántica

Web Semántica

Page 17: Programación orientada a la semántica

DBPedia.org

Page 18: Programación orientada a la semántica

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 19: Programación orientada a la semántica

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

RDF proporciona información descriptiva simple sobre los recursos que se encuentranen la Web y que se utiliza, por ejemplo, en catálogos de libros, directorios, coleccionespersonales 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 20: Programación orientada a la semántica

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 21: Programación orientada a la semántica

OWL es un mecanismo para desarrollar temas o vocabularios específicos en los cualesasociar los recursos. Lo que hace OWL es proporcionar un lenguaje para definirontologí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 yla relación entre ellos.

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

¿Qué es Ontology Web Language?

Page 22: Programación orientada a la semántica

Desarrollo Orientado a la Semántica

Page 23: Programación orientada a la semántica

Desarrollo Orientado a la Semántica

El Desarrollo Orientado a la Semántica 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 24: Programación orientada a la semántica

Desarrollo Orientado a la Semántica

El Desarrollo Orientado a la Semántica tiene como objetivo el proporcionar a los analistas y desarrolladores los siguientes elementos:

• Una metodología de desarrollo basada en un lenguaje flexible y de alto

nivel para capturar los requerimientos del sistema, soportado por el estándar OWL

•Un API Semántica para el desarrollo acelerado y fácil mantenimiento de aplicaciones.

•Un mecanismo de transformación de modelos que permita explotar el API semántica para la generación automática de aplicaciones.

Page 25: Programación orientada a la semántica

Evolución de los paradigmas de desarrollo

Desarrollo Orientado a la Semántica

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 a

bst

racc

ión

Nive

l de

com

ple

jidad

Page 26: Programación orientada a la semántica

Proceso de Desarrollo Orientado a la Semántica

Page 27: Programación orientada a la semántica

Programar Lógica Específica

• ¿Qué hará el nuevo recurso?

• ¿Qué modos de despliegue necesita?

• ¿El recurso será administrable?

• ¿Qué diseño tendrá el recurso?

Proceso de Desarrollo Orientado a la Semántica

Page 28: Programación orientada a la semántica

Modelar el Recurso

• ¿Qué va a ser el nuevo recurso?

• ¿Qué objetos se relacionan con el recurso?

• ¿Que propiedades necesita tener el recurso?

• ¿Es necesaria una jerarquía de recursos?

• ¿Existen objetos que pueden ser reutilizados?

Proceso de Desarrollo Orientado a la Semántica

Page 29: Programación orientada a la semántica

Modelar el Recurso

Proceso de Desarrollo Orientado a la Semántica

Page 30: Programación orientada a la semántica

Generar Código

• ¿Dónde se colocará el nuevo código?

• ¿Qué paquete se va a crear?

• ¿Qué prefijo de la ontología se usará para generar código?

• ¿Qué otras ontologías se requieren?

Proceso de Desarrollo Orientado a la Semántica

Page 31: Programación orientada a la semántica

Generar Código

Proceso de Desarrollo Orientado a la Semántica

Page 32: Programación orientada a la semántica

Generar Código

Proceso de Desarrollo Orientado a la Semántica

Page 33: Programación orientada a la semántica

Formatos de representación de ontologías

Estructura de árbol extensible

Resource, Literal, Triple

Class, DataType, Relation, SubClass

Class, ObjectProperty, InverseOf

Generar Código

Page 34: Programación orientada a la semántica

Ventajas

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

• El modelo del sistema es comprensible por todas las partes involucradas en el desarrollo, puesse 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ódigoextendido 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 yTripleStores 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 realizarconsultas complejas y muy específicas

Page 35: Programación orientada a la semántica
Page 36: Programación orientada a la semántica

SemanticWebBuilder es

una plataforma para el

desarrollo de aplicaciones

y portales semánticos.

¿Qué es SemanticWebBuilder?

Page 37: Programación orientada a la semántica

SemanticWebBuilder Suite

SWBPlatform

SWBPortal

SWBProcess

SWBModeler

SWBOntology Editor

Utilerías SWBP

Plug –In(MS Office, Open Office)

Componentes SWB

Soluciones Llave en mano

Page 38: Programación orientada a la semántica

Conclusiones

Page 39: Programación orientada a la semántica

Conclusiones

• El Desarrollo Orientado a la Semántica es un nuevo paradigma que utiliza elconocimiento como punto de partida en el desarrollo de sistemas semánticos.

• En lugar de agregar metadatos o anotaciones al código de los desarrolladores,el código es generado de manera automática a partir de un modelo ontológicoy la persistencia en RDF es asegurada de manera nativa.

• La suite de productos de SemanticWebBuilder® permite aplicar de maneraeficiente el proceso de Desarrollo Orientado a la Semántica, que consiste en a)modelar los recursos; b) generar código y c) programar la lógica específica.

• Con el Desarrollo Orientado a la Semántica de SemanticWebBuilder® sepueden desarrollar de manera rápida aplicaciones y Sitios Web Semánticos,cuya información es almacenada en un modelo de triplas y puede serconsultada a través de un endpoint.

Page 40: Programación orientada a la semántica

¿Preguntas?

Page 41: Programación orientada a la semántica

http://www.infotec.com.mx

[email protected]

Facebook/HersalVJ

Facebook/Semius.SemanticWebBuilder

Graciashttp://www.semanticwebbuilder.org.mx

[email protected]

Twitter/hersalvj

Twitter/Semius_SWB