Brainiak: Um plano maligno de dominação semântica hipermídia

Preview:

DESCRIPTION

Presentation given at PythonBrasil[10] on 6th November, 2014 in Porto de Galinhas-PE. This presentaion explanis

Citation preview

PythonBrasil [10] 201406 de Novembro de 2014

Rodrigo D. A. Senra

Apenas um rapaz latino americano...

• Engenheiro de Software • GPr Sistemas (11 anos) • HI Tecnologia (5 anos)• Professor Universitário - PUC-Campinas (2 anos)

• Especialista - Globo.com (2 anos)

• Cientista Pesquisador - EMC2

• Engenheiro de Computação Grad-MSc-PhD IC-Unicamp

• Entusiasta de FLOSS(atuante na comunidade Python desde 2000)

Vamos falar sobre …

• Semântica• Aplicações• Modelo RDF

• Brainiak API:• Por que foi criado ?• O que é ?• Como funciona ?• Quem desenvolve ?• Open-source \o/

• Recados Finais

globoesporte.com

CMA

Jornalista

Matéria

Anotações Semânticas

cita

http://globoesporte.globo.com/…/noticia-tal

http://semantica.globo.com/esportes/Equipe/Barcelona

http://semantica.globo.com/base/cita_a_entidade

sujeito

predicado

objeto

http://semantica.globo.com/esportes/Equipe/Barcelona

http://www.w3.org/1999/02/22-rdf-syntax-ns#type

sujeito

predicado

objetohttp://semantica.globo.com/esportes/Equipe

Ontologia Base

Upper

Person Place Organization

Music

Politics

Programme Education

Sports

Ontologias de Domínio

CMA

Jornalista

CDA

Browser

Internauta

Web

Caches

Matéria

Anotações Semânticas

listar todos timesConsulta SPARQL

select ?id ?nomefrom esportes:where {

?id rdf:type esportes:Equipe . ?id rdfs:label ?nome .}

Resposta SPARQL?id ?nome

Solr

Virtuosos

Inicialmente

Migração

Legado Virtuosos

Solr

Barramento

Mercury

Autenticação e AutorizaçãoBackstage

Eureka VoceDaNota A-Z Sitemaps CMAaS

Brainiak

ElasticSearch

Cenário Ideal

Virtuosos

Barramento

Brainiak

ElasticSearch

Autenticação e AutorizaçãoBackstage

Eureka VoceDaNota A-Z Sitemaps CMAaS

Brainiak é …

• 100% Python• API RESTful • Hipermídia (HATEOAS)

• Json-schema ☜☞ RDF

Vamos examinar como o Brainiak opera.

listar todos timesConsulta SPARQL

select ?id ?nomefrom esportes:where {

?id rdf:type esportes:Equipe . ?id rdfs:label ?nome .}

/esportes/Equipe

Consulta ao Brainiak

GET

Resposta do Brainiak{ "items": [ { "title": "Atlético-MG", "@id": "http://semantica.globo.com/esportes/equipe/282", "class_prefix": "esportes", "resource_id": "282" }, { "title": "Bahia de Feira", "@id": "http://semantica.globo.com/esportes/equipe/2590", "class_prefix": "esportes", "resource_id": "2590" }[ ], "@id": "esportes:Equipe"}

Esquema do Brainiak{ "links": [ { "href": "/esportes/Equipe/_schema?class_prefix=http://semantica.globo.com/esportes/", "method": "GET", "rel": "class" }, { "href": "/esportes/Equipe?class_prefix=http://semantica.globo.com/esportes/", "method": "POST", "rel": "create", "schema": {"$ref": "{+_base_url}"} }, { "href": "/_/_/_?instance_uri={value}", "method": "GET", "rel": "relatedInstance" },…

/esportes/Equipe/_schema

Mapa de Hiper-navegação

> pip freeze

SPARQLWrapper==1.5.0-authdigestDAD==1.0.2ESTester==1.1.0Fabric==1.6.0Jinja2==2.7.1MarkupSafe==0.18Pygments==1.6Sphinx==1.1.3Unidecode==0.04.14alf==0.4astroid==1.0.0coverage==3.7distribute==0.7.3docutils==0.11ecdsa==0.9

nose-exclude==0.1.9paramiko==1.12.0pep8==1.4.1pinocchio==0.3.1pycrypto==2.6pycurl==7.19.0pyflakes==0.7.3pylint==1.0.0python-dateutil==2.2python-slugify==0.0.7rdflib==3.2.3redis==2.7.6requests==2.0.1greenlet==0.4.0gunicorn==0.14.6isodate==0.4.9jsonschema==2.3.0meld3==0.6.10

selenium==2.37.2semantic-web-pygments==0.1.0simplejson==3.3.1six==1.5.2sphinx-bootstrap-theme==0.1.8sphinxcontrib-programoutput==0.8splinter==0.5.4stomp.py==3.1.3supervisor==3.0b2tornado==3.1tornado-cors==0.3.2ujson==1.33uritemplate==0.6wsgiref==0.1.2mock==1.0.1logilab-common==0.60.0meld3==0.6.10mock==1.0.1nose==1.2.1

O Brainiak agora é open-source!

@brainiak_api

https://github.com/globocom/brainiak_api

Desenvolvedores

Ícaro Medeiros

Tatiana Al-Chueyr

Rodrigo Senra

… e grande elenco de colaboradores !

Obrigado a todos pela atenção.

Rodrigo Dias Arruda Senra

http://rodrigo.senra.nom.br rodsenra@gmail.com

@rodsenra

As opiniões e conclusões expressas nesta apresentação são de exclusiva responsabilidade de Rodrigo Senra.

É necessário requisitar permissão do autor para o uso de partes ou do todo desta apresentação, favor consultar o autor.

As ilustrações do Brainiac foram obtidas de domínio público e são de autoria de Alex Ross.