27
II Encontro Python 7Masters 26 de Março de 2014 Rodrigo D. A. Senra

Brainiak - uma API REST Hipermedia

Embed Size (px)

DESCRIPTION

Apresentação feita no encontro 7Masters sobre a API Brainiak (criada na Globo.com) para gestão de dados semânticos.

Citation preview

Page 1: Brainiak - uma API REST Hipermedia

II Encontro Python 7Masters!26 de Março de 2014!!

Rodrigo D. A. Senra!

Page 2: Brainiak - uma API REST Hipermedia
Page 3: Brainiak - uma API REST Hipermedia

Apenas um rapaz latino americano...

• Especialista de Softwareno mercado desde 1996 na Globo.com desde 08/2012

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

• Pythonista pioneiro (desde 1999)

���3

Page 4: Brainiak - uma API REST Hipermedia

BROADCAST MOVIES PAY TV INTERNET

EVENTS MUSIC

PUBLISHING

NEW VENTURES NEWSPAPERRADIO NETWORK

Page 5: Brainiak - uma API REST Hipermedia

Isabella Nardoni foi morta em 29 de março de 2008

Isabella de Oliveira Nardoni, de 5 anos, foi morta na noite de 29 de março de 2008. A perícia concluiu que a menina foi atirada do sexto andar do prédio onde moravam seu pai, Alexandre Nardoni, sua madrasta, Anna Carolina Jatobá, e dois filhos pequenos do casal, na Vila Isolina Mazzei, na zona norte de São Paulo.

Túmulo de Isabella vira local de visitação em SP; casal Nardoni está preso.

Caso Isabella Nardoni

Juliana Cardilli G1 SP

Motivação

Page 6: Brainiak - uma API REST Hipermedia

Isabella Nardoni foi morta em 29 de março de 2008

Isabella de Oliveira Nardoni, de 5 anos, foi morta na noite de 29 de março de 2008. A perícia concluiu que a menina foi atirada do sexto andar do prédio onde moravam seu pai, Alexandre Nardoni, sua madrasta, Anna Carolina Jatobá, e dois filhos pequenos do casal, na Vila Isolina Mazzei, na zona norte de São Paulo.

Túmulo de Isabella vira local de visitação em SP; casal Nardoni está preso.

Caso Isabella Nardoni

Juliana Cardilli G1 SP

RDF

FOAF

GEO

Dublin Core

SKOS

Motivação

Page 7: Brainiak - uma API REST Hipermedia

Ontologias

Page 8: Brainiak - uma API REST Hipermedia
Page 9: Brainiak - uma API REST Hipermedia
Page 10: Brainiak - uma API REST Hipermedia
Page 11: Brainiak - uma API REST Hipermedia

Solr

Virtuosos

Inicialmente

Page 12: Brainiak - uma API REST Hipermedia

Atualmente

Legado Virtuosos

Solr

Barramento

Mercury

Brainiak

ElasticSearch

Autenticação e AutorizaçãoBackstage

Eureka VoceDaNota A-Z Sitemaps CMAaS

Page 13: Brainiak - uma API REST Hipermedia

Futuramente

Virtuosos

Barramento

Brainiak

ElasticSearch

Autenticação e AutorizaçãoBackstage

Eureka VoceDaNota A-Z Sitemaps CMAaS

Page 14: Brainiak - uma API REST Hipermedia

Brainiak é … !• 100% Python • API RESTful • Hipermídia (HATEOAS) • Json-schema ☜☞ RDF

Page 15: Brainiak - uma API REST Hipermedia

Vamos examinar como o Brainiak opera.

Page 16: Brainiak - uma API REST Hipermedia

listar todos times

Consulta SPARQL

Page 17: Brainiak - uma API REST Hipermedia

/esportes/Equipe

Consulta ao Brainiak

GET

Page 18: Brainiak - uma API REST Hipermedia

Resposta SPARQL

Page 19: Brainiak - uma API REST Hipermedia

Resposta do Brainiak{! "@context": {! "@language": "pt"! },! "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"!}

Page 20: Brainiak - uma API REST Hipermedia

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

Page 21: Brainiak - uma API REST Hipermedia

Mapa de Hiper-navegação

Page 22: Brainiak - uma API REST Hipermedia
Page 23: Brainiak - uma API REST Hipermedia
Page 24: Brainiak - uma API REST Hipermedia

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

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

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

Page 25: Brainiak - uma API REST Hipermedia

Desenvolvedores

Ícaro Medeiros

Tatiana Al-Chueyr

Rodrigo Senra

Page 26: Brainiak - uma API REST Hipermedia

Vamos liberar o Brainiak ! !

@brainiak_api

Page 27: Brainiak - uma API REST Hipermedia

Obrigado a todos pela atenção.

Rodrigo Dias Arruda Senra [email protected]

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.