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 [email protected]
@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.