SlideShare una empresa de Scribd logo
1 de 25
Parte 2: ¿Cómo crear
aplicaciones basadas en
      Linked Data?

    (Usando LODSPeaKr )
LODSPeaKr
• Framework para crear aplicaciones basadas en
  Linked Data
• Permite publicación de datos en pocos minutos
• Simplifica la exploración de datos
• Permite crear APIs, webapps móviles, portales de
  datos, etc.
• Requisito: Tener datos en un SPARQL endpoint
Exploración por clases




  Es posible ver todas las clases que
      existen en el triple store
Instancias de una clase




  LODSPeaKr lista todas las instancias
           de una clase.
Exploración de una instancia




         Cualquier recurso que sea
    derreferenceable por LODSPeaKr es
    desplegado como una tabla de triples
Módulos

• Existen varios módulos
• Al servir una URI, LODSPeaKr chequea en
  orden cuál va a ser ejecutado, dependiendo
  de distintas variables
• Sólo se ejecuta un por cada URI
Módulo: Type
• Principio: Todas las URIs del mismo tipo
  debiesen ser servidas similarmente
  • Ej: Todas las personas tienen apellido,
    mientras que todos los computadores
    tienen RAM
  • Queremos mostrar a las personas de
    manera uniforme, y no necesariamente
    igual a los computadores
Módulo: Type (2)
• Cuando se pide una URI, LODSPeaKr busca
  su rdf:type en triple store
• En base al tipo se pueden definir multiples
  consultas SPARQL y templado de cómo
  mostrar los datos (en HTML u otro)

• Si no tiene tipo, se asume rdfs:Resource
• Si una URI pertenece a más de una clase, se
  puede establecer prioridad sobre
  componentes y sólo se usa uno.
Ejemplo módulo Type


      <- consulta1

      <- consulta2
Módulo: Service

• Principio: Entregar información agregada
  debiese ser fácil
• Service permite crear URIs que entreguen
  información agregada (Ej. lista de personas
  cuyo nombre empiece con “A”)
Módulo: Service (2)
• Si URI es un servicio, se ejecutan las
  consultas definidas por el usuario
  • Ej: “/classes” muestra todas las clases en
    endpoint
• Service acepta argumentos en la URI de la
  forma

  /servicio/arg0/arg1/.../argn
Example service
Multiples formatos
•   Usuario define qué y cómo entregar datos en HTML,
    LODSPeaKr se encarga del resto usando Content Negotiation

    •   Reescritura de consultas SPARQL (SELECT ->
        CONSTRUCT)

    •   RDF/XML, Turtle, N-Triples, RDF/JSON

•   Es posible definir consultas para cada formato (pero es mala
    idea)

•   Es posible definir vistas para cada formato (pero es mala
    idea, excepto JSON)

•   Ej: Servir BIBTEX desde Linked Data
Otras características
•   ¿Cómo usar URIs http://otrodominio/... en mi sitio http://
    midominio/?

    •   LODSPeaKr provee espejado (mirroring) de URIs

•   ¿Cómo usar multiples endpoints?

    •   LODSPeaKr permite ejecutar consultas SPARQL en
        diferentes endpoints

    •   Es posible usar resultados intermedios en nuevas
        consultas

•   Templado basado en Haanga, similar a pseudo código
Conclusiones
• LODSPeaKr es un framework Open Source
  con múltiples funcionalidades para crear
  aplicaciones basadas en Linked Data
• Las cosas simples debiesen ser simples
 • Publicar datos en 5 estrellas
• Las cosas difíciles debiesen ser posibles
 • Módulos por tipos, servicios
 • Templado por tipo, usando Haanga
 • Multiples endpoints, múltiples formatos
Trabajo futuro

• Portar a Python (posiblemente)
 • rdflib > ARC2
• Aplicaciones Read/Write
• Reusar aplicaciones
Ejemplos
                        http://lodspeakr.org

•   Global Hunger Index:

    •   http://graves.cl/ghi

•   Linking Open Government Data portal

    •   http://logd.tw.rpi.edu

•   Farmers Market

    •   http://graves.cl/farmersmarket

•   ESSI-LOD webapp

    •   http://aquarius.tw.rpi.edu/essi-lod/
Ejemplo
Se pueden crear componentes para todas las instancias
         de un clase (definida via rdf:type)
Bash


                 $ utils/lodspk.sh create type ex:Professor

                 components/
                           |
                           ->types/
File directory




                                   |
                                   ->ex:Professor/
                                                  |
                                                  ->html.template
                                                  |
                                                  ->queries/
                                                            |
                                                            ->sp.query
                                                            |
                                                            ->po.query
Componente para ex:Professor
SELECT ?alumno ?nombreAlumno WHERE{
  ?tesis ex:hasAdvisor <{{uri}}> .
                                                 alumnos.query
  ?alumno ex:hasThesis ?tesis;
          rdfs:label ?nombreAlumno .
}


SELECT ?nombre WHERE{                             details.query
  <{{uri}}> rdfs:label ?nombre
}


<h2>{{first.details.nombre.value}}</h2>          html.template
<div>
 <h4>Alumnos</h4>
 <ul>
  {%for i in models.alumnos%}
  <li>
   <a href='{{i.alumno.value}}'>{{i.nombreAlumno.value}}</a>
  </li>
  {%endfor%}
 </ul>
</div>
Componentes: Servicios
                  Es posible definir servicios que entregar datos
                     agregados (Ej: http://mysite.com/classes)
Bash




                 $ utils/lodspk.sh create service totalTesis

                 components/
                           |
File directory




                           ->service/
                                     |
                                     ->totalTesis/
                                                  |
                                                  ->html.template
                                                  |
                                                  ->queries/
                                                            |
                                                            ->main.query
Componente para totalTesis
SELECT (COUNT(DISTINCT ?tesis) AS ?total) ?profesor ?nombreProfesor
WHERE {
  ?tesis ex:hasAdvisor ?profesor .
  ?profesor rdfs:label ?nombreProfesor .
}GROUP BY ?profesor ?nombreProfesor                    main.query

<ul>
 {% for row in models.main %}
                                                    html.template
 <li>
  <a href="{{row.profesor.value}}">
   {{row.nombreProfesor.value}}
  </a> ({{row.total.value}})
 </li>
 {% endfor %}
</ul>

<div>
 {{models.main|GoogleVizPieChart:"nombreProfesor,total"}}
</div>
Como crear aplicaciones basadas en linked data usando lods pea kr

Más contenido relacionado

La actualidad más candente

Perspectivas en el ámbito del patrimonio digital: nuevos retos de futuro (2005)
Perspectivas en el ámbito del patrimonio digital: nuevos retos de futuro (2005)Perspectivas en el ámbito del patrimonio digital: nuevos retos de futuro (2005)
Perspectivas en el ámbito del patrimonio digital: nuevos retos de futuro (2005)Joseba Abaitua
 
Navegación y búsqueda en el cyberespacio
Navegación y búsqueda en el cyberespacioNavegación y búsqueda en el cyberespacio
Navegación y búsqueda en el cyberespacioanesantivale
 
A. Fuster. La era del Open Data: Caso de éxito y oportunidades. Semanainforma...
A. Fuster. La era del Open Data: Caso de éxito y oportunidades. Semanainforma...A. Fuster. La era del Open Data: Caso de éxito y oportunidades. Semanainforma...
A. Fuster. La era del Open Data: Caso de éxito y oportunidades. Semanainforma...COIICV
 
Banco de archivos.pptx
Banco de archivos.pptx Banco de archivos.pptx
Banco de archivos.pptx onceunogrj2014
 
Dspace: Herramienta de apoyo para la implementación de un Repositorio Institu...
Dspace: Herramienta de apoyo para la implementación de un Repositorio Institu...Dspace: Herramienta de apoyo para la implementación de un Repositorio Institu...
Dspace: Herramienta de apoyo para la implementación de un Repositorio Institu...AMBACienSalud
 
aporte de internet
aporte de internetaporte de internet
aporte de internetanjogonz
 

La actualidad más candente (6)

Perspectivas en el ámbito del patrimonio digital: nuevos retos de futuro (2005)
Perspectivas en el ámbito del patrimonio digital: nuevos retos de futuro (2005)Perspectivas en el ámbito del patrimonio digital: nuevos retos de futuro (2005)
Perspectivas en el ámbito del patrimonio digital: nuevos retos de futuro (2005)
 
Navegación y búsqueda en el cyberespacio
Navegación y búsqueda en el cyberespacioNavegación y búsqueda en el cyberespacio
Navegación y búsqueda en el cyberespacio
 
A. Fuster. La era del Open Data: Caso de éxito y oportunidades. Semanainforma...
A. Fuster. La era del Open Data: Caso de éxito y oportunidades. Semanainforma...A. Fuster. La era del Open Data: Caso de éxito y oportunidades. Semanainforma...
A. Fuster. La era del Open Data: Caso de éxito y oportunidades. Semanainforma...
 
Banco de archivos.pptx
Banco de archivos.pptx Banco de archivos.pptx
Banco de archivos.pptx
 
Dspace: Herramienta de apoyo para la implementación de un Repositorio Institu...
Dspace: Herramienta de apoyo para la implementación de un Repositorio Institu...Dspace: Herramienta de apoyo para la implementación de un Repositorio Institu...
Dspace: Herramienta de apoyo para la implementación de un Repositorio Institu...
 
aporte de internet
aporte de internetaporte de internet
aporte de internet
 

Destacado

Towards a better understanding of Social Machines
Towards a better understanding of Social MachinesTowards a better understanding of Social Machines
Towards a better understanding of Social MachinesAlvaro Graves
 
Integrating and publishing public safety data using semantic technologies
Integrating and publishing public safety data using semantic technologiesIntegrating and publishing public safety data using semantic technologies
Integrating and publishing public safety data using semantic technologiesAlvaro Graves
 
Publishing Linked Data with LODSPeaKr
Publishing Linked Data with LODSPeaKrPublishing Linked Data with LODSPeaKr
Publishing Linked Data with LODSPeaKrAlvaro Graves
 
Creation of visualizations based on Linked Data
Creation of visualizations based on Linked DataCreation of visualizations based on Linked Data
Creation of visualizations based on Linked DataAlvaro Graves
 
Visualizations using Visualbox
Visualizations using VisualboxVisualizations using Visualbox
Visualizations using VisualboxAlvaro Graves
 
Creating Visualizations with Linked Open Data
Creating Visualizations with Linked Open DataCreating Visualizations with Linked Open Data
Creating Visualizations with Linked Open DataAlvaro Graves
 

Destacado (7)

Towards a better understanding of Social Machines
Towards a better understanding of Social MachinesTowards a better understanding of Social Machines
Towards a better understanding of Social Machines
 
Integrating and publishing public safety data using semantic technologies
Integrating and publishing public safety data using semantic technologiesIntegrating and publishing public safety data using semantic technologies
Integrating and publishing public safety data using semantic technologies
 
Publishing Linked Data with LODSPeaKr
Publishing Linked Data with LODSPeaKrPublishing Linked Data with LODSPeaKr
Publishing Linked Data with LODSPeaKr
 
Data Tuesday
Data TuesdayData Tuesday
Data Tuesday
 
Creation of visualizations based on Linked Data
Creation of visualizations based on Linked DataCreation of visualizations based on Linked Data
Creation of visualizations based on Linked Data
 
Visualizations using Visualbox
Visualizations using VisualboxVisualizations using Visualbox
Visualizations using Visualbox
 
Creating Visualizations with Linked Open Data
Creating Visualizations with Linked Open DataCreating Visualizations with Linked Open Data
Creating Visualizations with Linked Open Data
 

Similar a Como crear aplicaciones basadas en linked data usando lods pea kr

Desarrollo dirigido por modelo de servicios web REST
Desarrollo dirigido por modelo de servicios web RESTDesarrollo dirigido por modelo de servicios web REST
Desarrollo dirigido por modelo de servicios web RESTJose R. Hilera
 
Anatomía de implementación de un LCMS basado en moodle
Anatomía de implementación de un LCMS basado en moodleAnatomía de implementación de un LCMS basado en moodle
Anatomía de implementación de un LCMS basado en moodleJosé Luis Granda
 
Servicios Web Rest con Spring MVC
Servicios Web Rest con Spring MVCServicios Web Rest con Spring MVC
Servicios Web Rest con Spring MVCVortexbird
 
Tutorial de cakePHP itst
Tutorial de cakePHP itstTutorial de cakePHP itst
Tutorial de cakePHP itstomicx
 
Presentación de zan php
Presentación de zan phpPresentación de zan php
Presentación de zan phpCarlos Zantana
 
Introducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebIntroducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebFacundo E. Goñi Perez
 
Web services restful con JAX-RS
Web services restful con JAX-RSWeb services restful con JAX-RS
Web services restful con JAX-RSVortexbird
 
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsDesarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsFreelancer
 
Transformaciones modelo a texto: ACCELEO
Transformaciones modelo a texto: ACCELEOTransformaciones modelo a texto: ACCELEO
Transformaciones modelo a texto: ACCELEORicardo Tesoriero
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web javaCésar Ocampo
 
Interoperabilidade de dados_entre_lilacs_e_artemisa_poster_es
Interoperabilidade de dados_entre_lilacs_e_artemisa_poster_esInteroperabilidade de dados_entre_lilacs_e_artemisa_poster_es
Interoperabilidade de dados_entre_lilacs_e_artemisa_poster_esSueli Suga
 
PHP Tema 7 - Seguridad
PHP Tema 7 - SeguridadPHP Tema 7 - Seguridad
PHP Tema 7 - SeguridadSpacetoshare
 
Tutorial php basico
Tutorial php basicoTutorial php basico
Tutorial php basicoYo ♥ Tacna
 
Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014Carlos Camacho
 
Framework kahana
Framework kahanaFramework kahana
Framework kahanaH31D1
 

Similar a Como crear aplicaciones basadas en linked data usando lods pea kr (20)

Desarrollo dirigido por modelo de servicios web REST
Desarrollo dirigido por modelo de servicios web RESTDesarrollo dirigido por modelo de servicios web REST
Desarrollo dirigido por modelo de servicios web REST
 
Introducción a Kohana Framework
Introducción a Kohana FrameworkIntroducción a Kohana Framework
Introducción a Kohana Framework
 
Anatomía de implementación de un LCMS basado en moodle
Anatomía de implementación de un LCMS basado en moodleAnatomía de implementación de un LCMS basado en moodle
Anatomía de implementación de un LCMS basado en moodle
 
Servicios Web Rest con Spring MVC
Servicios Web Rest con Spring MVCServicios Web Rest con Spring MVC
Servicios Web Rest con Spring MVC
 
Tutorial de cakePHP itst
Tutorial de cakePHP itstTutorial de cakePHP itst
Tutorial de cakePHP itst
 
Presentación de zan php
Presentación de zan phpPresentación de zan php
Presentación de zan php
 
Introducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebIntroducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos Web
 
Web services restful con JAX-RS
Web services restful con JAX-RSWeb services restful con JAX-RS
Web services restful con JAX-RS
 
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsDesarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
 
Transformaciones modelo a texto: ACCELEO
Transformaciones modelo a texto: ACCELEOTransformaciones modelo a texto: ACCELEO
Transformaciones modelo a texto: ACCELEO
 
Laravel 5.1
Laravel 5.1Laravel 5.1
Laravel 5.1
 
Koha biblioteca nacional v3
Koha biblioteca nacional v3Koha biblioteca nacional v3
Koha biblioteca nacional v3
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web java
 
S4-DAW-2022S1.pptx
S4-DAW-2022S1.pptxS4-DAW-2022S1.pptx
S4-DAW-2022S1.pptx
 
Interoperabilidade de dados_entre_lilacs_e_artemisa_poster_es
Interoperabilidade de dados_entre_lilacs_e_artemisa_poster_esInteroperabilidade de dados_entre_lilacs_e_artemisa_poster_es
Interoperabilidade de dados_entre_lilacs_e_artemisa_poster_es
 
Tecnologias Web Semantica
Tecnologias Web SemanticaTecnologias Web Semantica
Tecnologias Web Semantica
 
PHP Tema 7 - Seguridad
PHP Tema 7 - SeguridadPHP Tema 7 - Seguridad
PHP Tema 7 - Seguridad
 
Tutorial php basico
Tutorial php basicoTutorial php basico
Tutorial php basico
 
Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014
 
Framework kahana
Framework kahanaFramework kahana
Framework kahana
 

Más de Alvaro Graves

Datos malos, robots tristes
Datos malos, robots tristesDatos malos, robots tristes
Datos malos, robots tristesAlvaro Graves
 
Democratizing Open Data
Democratizing Open DataDemocratizing Open Data
Democratizing Open DataAlvaro Graves
 
Creating visualizations using Linked Data
Creating visualizations using Linked DataCreating visualizations using Linked Data
Creating visualizations using Linked DataAlvaro Graves
 
Improving decision-making based on government data and visualizations
Improving decision-making based on government data and visualizationsImproving decision-making based on government data and visualizations
Improving decision-making based on government data and visualizationsAlvaro Graves
 
Creating web applications with LODSPeaKr
Creating web applications with LODSPeaKrCreating web applications with LODSPeaKr
Creating web applications with LODSPeaKrAlvaro Graves
 
Publicando RDF y Linked Data con LODSPeaKr
Publicando RDF  y Linked Data con LODSPeaKrPublicando RDF  y Linked Data con LODSPeaKr
Publicando RDF y Linked Data con LODSPeaKrAlvaro Graves
 
Open Data y participación ciudadana
Open Data y participación ciudadanaOpen Data y participación ciudadana
Open Data y participación ciudadanaAlvaro Graves
 
Web semántica y linked data la web como bd
Web semántica y linked data  la web como bdWeb semántica y linked data  la web como bd
Web semántica y linked data la web como bdAlvaro Graves
 
LODSPeaKr - Use cases Lighting Talk
LODSPeaKr - Use cases Lighting TalkLODSPeaKr - Use cases Lighting Talk
LODSPeaKr - Use cases Lighting TalkAlvaro Graves
 
Publishing Linked Open Data in 15 minutes
Publishing Linked Open Data in 15 minutesPublishing Linked Open Data in 15 minutes
Publishing Linked Open Data in 15 minutesAlvaro Graves
 
TWC LOGD: A Portal for Linking Government Data
TWC LOGD: A Portal for Linking Government DataTWC LOGD: A Portal for Linking Government Data
TWC LOGD: A Portal for Linking Government DataAlvaro Graves
 
POMELo: A PML Online Editor
POMELo: A PML Online EditorPOMELo: A PML Online Editor
POMELo: A PML Online EditorAlvaro Graves
 

Más de Alvaro Graves (12)

Datos malos, robots tristes
Datos malos, robots tristesDatos malos, robots tristes
Datos malos, robots tristes
 
Democratizing Open Data
Democratizing Open DataDemocratizing Open Data
Democratizing Open Data
 
Creating visualizations using Linked Data
Creating visualizations using Linked DataCreating visualizations using Linked Data
Creating visualizations using Linked Data
 
Improving decision-making based on government data and visualizations
Improving decision-making based on government data and visualizationsImproving decision-making based on government data and visualizations
Improving decision-making based on government data and visualizations
 
Creating web applications with LODSPeaKr
Creating web applications with LODSPeaKrCreating web applications with LODSPeaKr
Creating web applications with LODSPeaKr
 
Publicando RDF y Linked Data con LODSPeaKr
Publicando RDF  y Linked Data con LODSPeaKrPublicando RDF  y Linked Data con LODSPeaKr
Publicando RDF y Linked Data con LODSPeaKr
 
Open Data y participación ciudadana
Open Data y participación ciudadanaOpen Data y participación ciudadana
Open Data y participación ciudadana
 
Web semántica y linked data la web como bd
Web semántica y linked data  la web como bdWeb semántica y linked data  la web como bd
Web semántica y linked data la web como bd
 
LODSPeaKr - Use cases Lighting Talk
LODSPeaKr - Use cases Lighting TalkLODSPeaKr - Use cases Lighting Talk
LODSPeaKr - Use cases Lighting Talk
 
Publishing Linked Open Data in 15 minutes
Publishing Linked Open Data in 15 minutesPublishing Linked Open Data in 15 minutes
Publishing Linked Open Data in 15 minutes
 
TWC LOGD: A Portal for Linking Government Data
TWC LOGD: A Portal for Linking Government DataTWC LOGD: A Portal for Linking Government Data
TWC LOGD: A Portal for Linking Government Data
 
POMELo: A PML Online Editor
POMELo: A PML Online EditorPOMELo: A PML Online Editor
POMELo: A PML Online Editor
 

Último

El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...Luis Olivera
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 

Último (20)

El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
Clase N°4 - Purificación y secuenciación de acidos nucleicos Benoit Diringer ...
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 

Como crear aplicaciones basadas en linked data usando lods pea kr

  • 1. Parte 2: ¿Cómo crear aplicaciones basadas en Linked Data? (Usando LODSPeaKr )
  • 2. LODSPeaKr • Framework para crear aplicaciones basadas en Linked Data • Permite publicación de datos en pocos minutos • Simplifica la exploración de datos • Permite crear APIs, webapps móviles, portales de datos, etc. • Requisito: Tener datos en un SPARQL endpoint
  • 3.
  • 4. Exploración por clases Es posible ver todas las clases que existen en el triple store
  • 5. Instancias de una clase LODSPeaKr lista todas las instancias de una clase.
  • 6. Exploración de una instancia Cualquier recurso que sea derreferenceable por LODSPeaKr es desplegado como una tabla de triples
  • 7. Módulos • Existen varios módulos • Al servir una URI, LODSPeaKr chequea en orden cuál va a ser ejecutado, dependiendo de distintas variables • Sólo se ejecuta un por cada URI
  • 8. Módulo: Type • Principio: Todas las URIs del mismo tipo debiesen ser servidas similarmente • Ej: Todas las personas tienen apellido, mientras que todos los computadores tienen RAM • Queremos mostrar a las personas de manera uniforme, y no necesariamente igual a los computadores
  • 9. Módulo: Type (2) • Cuando se pide una URI, LODSPeaKr busca su rdf:type en triple store • En base al tipo se pueden definir multiples consultas SPARQL y templado de cómo mostrar los datos (en HTML u otro) • Si no tiene tipo, se asume rdfs:Resource • Si una URI pertenece a más de una clase, se puede establecer prioridad sobre componentes y sólo se usa uno.
  • 10. Ejemplo módulo Type <- consulta1 <- consulta2
  • 11. Módulo: Service • Principio: Entregar información agregada debiese ser fácil • Service permite crear URIs que entreguen información agregada (Ej. lista de personas cuyo nombre empiece con “A”)
  • 12. Módulo: Service (2) • Si URI es un servicio, se ejecutan las consultas definidas por el usuario • Ej: “/classes” muestra todas las clases en endpoint • Service acepta argumentos en la URI de la forma /servicio/arg0/arg1/.../argn
  • 14. Multiples formatos • Usuario define qué y cómo entregar datos en HTML, LODSPeaKr se encarga del resto usando Content Negotiation • Reescritura de consultas SPARQL (SELECT -> CONSTRUCT) • RDF/XML, Turtle, N-Triples, RDF/JSON • Es posible definir consultas para cada formato (pero es mala idea) • Es posible definir vistas para cada formato (pero es mala idea, excepto JSON) • Ej: Servir BIBTEX desde Linked Data
  • 15. Otras características • ¿Cómo usar URIs http://otrodominio/... en mi sitio http:// midominio/? • LODSPeaKr provee espejado (mirroring) de URIs • ¿Cómo usar multiples endpoints? • LODSPeaKr permite ejecutar consultas SPARQL en diferentes endpoints • Es posible usar resultados intermedios en nuevas consultas • Templado basado en Haanga, similar a pseudo código
  • 16. Conclusiones • LODSPeaKr es un framework Open Source con múltiples funcionalidades para crear aplicaciones basadas en Linked Data • Las cosas simples debiesen ser simples • Publicar datos en 5 estrellas • Las cosas difíciles debiesen ser posibles • Módulos por tipos, servicios • Templado por tipo, usando Haanga • Multiples endpoints, múltiples formatos
  • 17. Trabajo futuro • Portar a Python (posiblemente) • rdflib > ARC2 • Aplicaciones Read/Write • Reusar aplicaciones
  • 18. Ejemplos http://lodspeakr.org • Global Hunger Index: • http://graves.cl/ghi • Linking Open Government Data portal • http://logd.tw.rpi.edu • Farmers Market • http://graves.cl/farmersmarket • ESSI-LOD webapp • http://aquarius.tw.rpi.edu/essi-lod/
  • 20. Se pueden crear componentes para todas las instancias de un clase (definida via rdf:type) Bash $ utils/lodspk.sh create type ex:Professor components/ | ->types/ File directory | ->ex:Professor/ | ->html.template | ->queries/ | ->sp.query | ->po.query
  • 21. Componente para ex:Professor SELECT ?alumno ?nombreAlumno WHERE{ ?tesis ex:hasAdvisor <{{uri}}> . alumnos.query ?alumno ex:hasThesis ?tesis; rdfs:label ?nombreAlumno . } SELECT ?nombre WHERE{ details.query <{{uri}}> rdfs:label ?nombre } <h2>{{first.details.nombre.value}}</h2> html.template <div> <h4>Alumnos</h4> <ul> {%for i in models.alumnos%} <li> <a href='{{i.alumno.value}}'>{{i.nombreAlumno.value}}</a> </li> {%endfor%} </ul> </div>
  • 22.
  • 23. Componentes: Servicios Es posible definir servicios que entregar datos agregados (Ej: http://mysite.com/classes) Bash $ utils/lodspk.sh create service totalTesis components/ | File directory ->service/ | ->totalTesis/ | ->html.template | ->queries/ | ->main.query
  • 24. Componente para totalTesis SELECT (COUNT(DISTINCT ?tesis) AS ?total) ?profesor ?nombreProfesor WHERE { ?tesis ex:hasAdvisor ?profesor . ?profesor rdfs:label ?nombreProfesor . }GROUP BY ?profesor ?nombreProfesor main.query <ul> {% for row in models.main %} html.template <li> <a href="{{row.profesor.value}}"> {{row.nombreProfesor.value}} </a> ({{row.total.value}}) </li> {% endfor %} </ul> <div> {{models.main|GoogleVizPieChart:"nombreProfesor,total"}} </div>

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n