SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
ISIS­DM
       The ISIS Data Model API


  Uma API independente de banco de dados
            para manipulação de
    registros bibliográficos e documentais



Luciano Ramalho
BIREME/OPAS/OMS
Contexto tecnológico
• O modelo relacional normalizado (MRN) 
  reinava praticamente incontestável
• Em alguns nichos, usuários de bancos de 
  dados NoSQL resistiam (ex. ISIS, Adabas, 
  Mumps...)
• Grandes usuários de NoSQL saíram do 
  armário (Google, Amazon, Facebook...)
• Vários bancos NoSQL novos sendo  
  lançados
Alguns produtos recentes
• ZODB
• Apache CouchDB
• MongoDB
• Hadoop Hbase
• ThruDB
                   • Google Datastore
• Redis
                   • Amazon SimpleDB
• Hypertable
                   • Apstrata
• Riak
Exemplos de NoSQL
Uma aplicação: LILACS
• LILACS: Literatura Latinoamericana y del 
  Caribe en Ciencias de la Salud
• Catalogação cooperativa de artigos 
  científicos nos países de origem
• Registros fornecidos por mais de 100 
  bibliotecas e centros de informação, de 
  praticamente todos os países da região
• Promove a pesquisa relevante para os 
  nossos problemas de saúde
A metodologia é o elo
Dicionário de Dados da Metodologia Lilacs
Dicionário de Dados da Metodologia Lilacs
O absurdo
[...] seria interessante notar o absurdo do padrão do
MRN [Modelo Relacional Normalizado]: se um livro
tiver 3 autores e 5 assuntos, será necessário representá-
lo no MRN por meio de uma linha na tabela Livros, mais
3 na Nomes-de-autores (que implementaria o atributo
multivalorado correspondente) e mais 5 na de Assuntos,
num total de 9 linhas em três tabelas distintas [...]. Mas
o que se vê e e pega-se na mão no mundo real é um livro
só, e não um picadinho de livro!
SETZER, V. Bancos de dados: aprenda o que são,
melhore seu conhecimento, construa os seus.
1ª ed. São Paulo: Edgard Blücher, 2005.
Registros bibliográficos
• MARC: Machine Readable Cataloging
  – US Library of Congress
• ISO 2709
  – Information and documentation: Format for 
    information exchange
• CDS/ISIS
  – Unesco, BIREME/OPAS/OMS et al.
Modelo de dados apoia
        a metodologia

• Campos repetitivos
• Campos opcionais
• Sub­campos

        Características comuns aos formatos
         Características comuns aos formatos
        de registros MARC, ISO-2709 e ISIS
         de registros MARC, ISO-2709 e ISIS
Exemplo de registro ISIS


10   «Lewis Carroll^y1832-1898^rauthor»
10   «John Tenniel^y1820-1914^rillustrator»
10   «Lewis Carroll^y1914-2010^reditor»
12   «The Annotated Alice^sThe Definitive Edition»
Exemplo de registro ISIS

 Campo repetitivo
10   «Lewis Carroll^y1832-1898^rauthor»
10   «John Tenniel^y1820-1914^rillustrator»
10   «Lewis Carroll^y1914-2010^reditor»
12   «The Annotated Alice^sThe Definitive Edition»
Exemplo de registro ISIS
         Marcador de sub-campo        Sub-campo


10   «Lewis Carroll^y1832-1898^rauthor»
10   «John Tenniel^y1820-1914^rillustrator»
10   «Lewis Carroll^y1914-2010^reditor»
12   «The Annotated Alice^sThe Definitive Edition»
Exemplo de registro ISIS

 Campo repetitivo
10   «Lewis Carroll^y1832-1898^rauthor»
10   «John Tenniel^y1820-1914^rillustrator»
10   «Lewis Carroll^y1914-2010^reditor»
12   «The Annotated Alice^sThe Definitive Edition»

             Marcador de sub-campo     Sub-campo
ISIS Formatting Language
• DSL usada para extração de dados e 
  definição de índices
Projeto ISIS­DM: ISIS Data Model
• API para definição de esquemas de dados 
  através de classes, como em certos ORMs
• API de extração de dados tão ou mais 
  poderosa quanto a ISIS Format. Language
• Back­ends para BDs NF² modernos
  – MongoDB
  – Google Datastore
  – PostgreSQL (hstore, JSON?)
  – O seu BD favorito
Definição de um esquema
Instanciação


>>> book == Book(title='The Annotated Alice^sDefinitive Edition',
 >>> book    Book(title='The Annotated Alice^sDefinitive Edition',
...
 ...             pages=352,
                  pages=352,
...
 ...             creators=['Lewis Carroll^y1832-1898^rAuthor',
                  creators=['Lewis Carroll^y1832-1898^rAuthor',
...
 ...                       'John Tenniel^rIllustrator',
                            'John Tenniel^rIllustrator',
...
 ...                       'Martin Gardner^y1914-2010^rEditor'])
                            'Martin Gardner^y1914-2010^rEditor'])
Acesso a campos e sub­campos

  >>> book.title
   >>> book.title
  u'The Annotated Alice^sDefinitive Edition'
   u'The Annotated Alice^sDefinitive Edition'
  >>> print book.title.s
   >>> print book.title.s
  Definitive Edition
   Definitive Edition
  >>> print book.creators[0].y
   >>> print book.creators[0].y
  1832-1898
   1832-1898
  >>> for creator in book.creators:
   >>> for creator in book.creators:
  ...
   ...    print '%-12s: %s' %% (creator.r, creator[0])
           print '%-12s: %s'     (creator.r, creator[0])
  Author
   Author      :: Lewis Carroll
                   Lewis Carroll
  Illustrator :: John Tenniel
   Illustrator     John Tenniel
  Editor
   Editor      :: Martin Gardner
                   Martin Gardner
Projeto ISIS­DM
• FLOSS: Licença LGPL
• Iniciando agora: participe das decisões 
  cruciais, envolva­se enquanto ainda é fácil
• Excelente oportunidade para ganhar 
  experiência com NoSQL, trabalhando com 
  massas de dados e necessidades reais
• Alto impacto social: a missão é democratizar 
  o acesso à informação em saúde
• Visibilidade internacional
O que
temos:
usuários,
dados,
casos
de uso 
concretos
http://reddes.bvsalud.org
 http://reddes.bvsalud.org
                         luciano.ramalho@bireme.org
                          luciano.ramalho@bireme.org
http://reddes.bvsalud.org
 http://reddes.bvsalud.org
                         luciano.ramalho@bireme.org
                          luciano.ramalho@bireme.org

Mais conteúdo relacionado

Semelhante a ISIS Data Model API

Aula8.pptx
Aula8.pptxAula8.pptx
Aula8.pptxacsme
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documentoAlex Martins
 
Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)Rodrigo Valerio
 
Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Thiago de Azeredo
 
Bancos de Dados para Bibliotecarios
Bancos de Dados para BibliotecariosBancos de Dados para Bibliotecarios
Bancos de Dados para BibliotecariosLuciano Ramalho
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dadosvini_campos
 
Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Rafael Barbolo
 
Padroes descricao boas_praticas_recursos_musicais
Padroes descricao boas_praticas_recursos_musicaisPadroes descricao boas_praticas_recursos_musicais
Padroes descricao boas_praticas_recursos_musicaisRosana Lanzelotte
 
Banco de Dados (pré-apresentação)
Banco de Dados (pré-apresentação)Banco de Dados (pré-apresentação)
Banco de Dados (pré-apresentação)samlobo
 
Os Rumos da Catalogação Contemporâneas: RDA: Resource Description Access
Os Rumos da Catalogação Contemporâneas: RDA: Resource Description AccessOs Rumos da Catalogação Contemporâneas: RDA: Resource Description Access
Os Rumos da Catalogação Contemporâneas: RDA: Resource Description AccessUniversidade de São Paulo
 
Bancos de dados no sql – uma nova abordagem
Bancos de dados no sql – uma nova abordagemBancos de dados no sql – uma nova abordagem
Bancos de dados no sql – uma nova abordagemJoão Gabriel Lima
 
Os novos papéis do e-publisher
Os novos papéis do e-publisherOs novos papéis do e-publisher
Os novos papéis do e-publisherClaudio Soares
 

Semelhante a ISIS Data Model API (20)

Bancos de dados NoSQL (Not only sql)
Bancos de dados NoSQL (Not only sql)Bancos de dados NoSQL (Not only sql)
Bancos de dados NoSQL (Not only sql)
 
Aula8.pptx
Aula8.pptxAula8.pptx
Aula8.pptx
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documento
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
NoSQL & SQL
NoSQL & SQLNoSQL & SQL
NoSQL & SQL
 
Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)
 
Aula 2 - Introdução a Banco de Dados
Aula 2 - Introdução a Banco de DadosAula 2 - Introdução a Banco de Dados
Aula 2 - Introdução a Banco de Dados
 
Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)
 
Bancos de dados NoSQL
Bancos de dados NoSQLBancos de dados NoSQL
Bancos de dados NoSQL
 
Bancos de Dados para Bibliotecarios
Bancos de Dados para BibliotecariosBancos de Dados para Bibliotecarios
Bancos de Dados para Bibliotecarios
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)
 
Padroes descricao boas_praticas_recursos_musicais
Padroes descricao boas_praticas_recursos_musicaisPadroes descricao boas_praticas_recursos_musicais
Padroes descricao boas_praticas_recursos_musicais
 
Banco de Dados (pré-apresentação)
Banco de Dados (pré-apresentação)Banco de Dados (pré-apresentação)
Banco de Dados (pré-apresentação)
 
Apresentação
ApresentaçãoApresentação
Apresentação
 
Os Rumos da Catalogação Contemporâneas: RDA: Resource Description Access
Os Rumos da Catalogação Contemporâneas: RDA: Resource Description AccessOs Rumos da Catalogação Contemporâneas: RDA: Resource Description Access
Os Rumos da Catalogação Contemporâneas: RDA: Resource Description Access
 
Bancos de dados no sql – uma nova abordagem
Bancos de dados no sql – uma nova abordagemBancos de dados no sql – uma nova abordagem
Bancos de dados no sql – uma nova abordagem
 
Aula 1
Aula 1Aula 1
Aula 1
 
Os novos papéis do e-publisher
Os novos papéis do e-publisherOs novos papéis do e-publisher
Os novos papéis do e-publisher
 

Mais de Luciano Ramalho

Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Luciano Ramalho
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Luciano Ramalho
 
Encapsulamento com descritores
Encapsulamento com descritoresEncapsulamento com descritores
Encapsulamento com descritoresLuciano Ramalho
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoLuciano Ramalho
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compactoLuciano Ramalho
 
Iteraveis e geradores em Python
Iteraveis e geradores em PythonIteraveis e geradores em Python
Iteraveis e geradores em PythonLuciano Ramalho
 
Encapsulamento com Descritores em Python
Encapsulamento com Descritores em PythonEncapsulamento com Descritores em Python
Encapsulamento com Descritores em PythonLuciano Ramalho
 
Python: Iteraveis, geradores etc
Python: Iteraveis, geradores etcPython: Iteraveis, geradores etc
Python: Iteraveis, geradores etcLuciano Ramalho
 
Jython no JavaOne Latin America 2011
Jython no JavaOne Latin America 2011Jython no JavaOne Latin America 2011
Jython no JavaOne Latin America 2011Luciano Ramalho
 
Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Luciano Ramalho
 
OO em Python sem sotaque
OO em Python sem sotaqueOO em Python sem sotaque
OO em Python sem sotaqueLuciano Ramalho
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do GoogleLuciano Ramalho
 

Mais de Luciano Ramalho (20)

Wiki-wiki S/A
Wiki-wiki S/AWiki-wiki S/A
Wiki-wiki S/A
 
Mongodb: agregação
Mongodb: agregaçãoMongodb: agregação
Mongodb: agregação
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)
 
Encapsulamento com descritores
Encapsulamento com descritoresEncapsulamento com descritores
Encapsulamento com descritores
 
Iteraveis e geradores
Iteraveis e geradoresIteraveis e geradores
Iteraveis e geradores
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojo
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compacto
 
Iteraveis e geradores em Python
Iteraveis e geradores em PythonIteraveis e geradores em Python
Iteraveis e geradores em Python
 
Encapsulamento com Descritores em Python
Encapsulamento com Descritores em PythonEncapsulamento com Descritores em Python
Encapsulamento com Descritores em Python
 
Dojo com Processing
Dojo com ProcessingDojo com Processing
Dojo com Processing
 
Dojo com Arduino
Dojo com ArduinoDojo com Arduino
Dojo com Arduino
 
Python: Iteraveis, geradores etc
Python: Iteraveis, geradores etcPython: Iteraveis, geradores etc
Python: Iteraveis, geradores etc
 
Open Library no Mongodb
Open Library no MongodbOpen Library no Mongodb
Open Library no Mongodb
 
Jython no JavaOne Latin America 2011
Jython no JavaOne Latin America 2011Jython no JavaOne Latin America 2011
Jython no JavaOne Latin America 2011
 
Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)
 
OO em Python sem sotaque
OO em Python sem sotaqueOO em Python sem sotaque
OO em Python sem sotaque
 
Modelos ricos
Modelos ricosModelos ricos
Modelos ricos
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do Google
 

ISIS Data Model API

  • 1. ISIS­DM The ISIS Data Model API Uma API independente de banco de dados para manipulação de registros bibliográficos e documentais Luciano Ramalho BIREME/OPAS/OMS
  • 2.
  • 3.
  • 4. Contexto tecnológico • O modelo relacional normalizado (MRN)  reinava praticamente incontestável • Em alguns nichos, usuários de bancos de  dados NoSQL resistiam (ex. ISIS, Adabas,  Mumps...) • Grandes usuários de NoSQL saíram do  armário (Google, Amazon, Facebook...) • Vários bancos NoSQL novos sendo   lançados
  • 5.
  • 6. Alguns produtos recentes • ZODB • Apache CouchDB • MongoDB • Hadoop Hbase • ThruDB • Google Datastore • Redis • Amazon SimpleDB • Hypertable • Apstrata • Riak
  • 7.
  • 9. Uma aplicação: LILACS • LILACS: Literatura Latinoamericana y del  Caribe en Ciencias de la Salud • Catalogação cooperativa de artigos  científicos nos países de origem • Registros fornecidos por mais de 100  bibliotecas e centros de informação, de  praticamente todos os países da região • Promove a pesquisa relevante para os  nossos problemas de saúde
  • 11. Dicionário de Dados da Metodologia Lilacs Dicionário de Dados da Metodologia Lilacs
  • 12. O absurdo [...] seria interessante notar o absurdo do padrão do MRN [Modelo Relacional Normalizado]: se um livro tiver 3 autores e 5 assuntos, será necessário representá- lo no MRN por meio de uma linha na tabela Livros, mais 3 na Nomes-de-autores (que implementaria o atributo multivalorado correspondente) e mais 5 na de Assuntos, num total de 9 linhas em três tabelas distintas [...]. Mas o que se vê e e pega-se na mão no mundo real é um livro só, e não um picadinho de livro! SETZER, V. Bancos de dados: aprenda o que são, melhore seu conhecimento, construa os seus. 1ª ed. São Paulo: Edgard Blücher, 2005.
  • 13. Registros bibliográficos • MARC: Machine Readable Cataloging – US Library of Congress • ISO 2709 – Information and documentation: Format for  information exchange • CDS/ISIS – Unesco, BIREME/OPAS/OMS et al.
  • 14. Modelo de dados apoia a metodologia • Campos repetitivos • Campos opcionais • Sub­campos Características comuns aos formatos Características comuns aos formatos de registros MARC, ISO-2709 e ISIS de registros MARC, ISO-2709 e ISIS
  • 15. Exemplo de registro ISIS 10 «Lewis Carroll^y1832-1898^rauthor» 10 «John Tenniel^y1820-1914^rillustrator» 10 «Lewis Carroll^y1914-2010^reditor» 12 «The Annotated Alice^sThe Definitive Edition»
  • 16. Exemplo de registro ISIS Campo repetitivo 10 «Lewis Carroll^y1832-1898^rauthor» 10 «John Tenniel^y1820-1914^rillustrator» 10 «Lewis Carroll^y1914-2010^reditor» 12 «The Annotated Alice^sThe Definitive Edition»
  • 17. Exemplo de registro ISIS Marcador de sub-campo Sub-campo 10 «Lewis Carroll^y1832-1898^rauthor» 10 «John Tenniel^y1820-1914^rillustrator» 10 «Lewis Carroll^y1914-2010^reditor» 12 «The Annotated Alice^sThe Definitive Edition»
  • 18. Exemplo de registro ISIS Campo repetitivo 10 «Lewis Carroll^y1832-1898^rauthor» 10 «John Tenniel^y1820-1914^rillustrator» 10 «Lewis Carroll^y1914-2010^reditor» 12 «The Annotated Alice^sThe Definitive Edition» Marcador de sub-campo Sub-campo
  • 20. Projeto ISIS­DM: ISIS Data Model • API para definição de esquemas de dados  através de classes, como em certos ORMs • API de extração de dados tão ou mais  poderosa quanto a ISIS Format. Language • Back­ends para BDs NF² modernos – MongoDB – Google Datastore – PostgreSQL (hstore, JSON?) – O seu BD favorito
  • 22. Instanciação >>> book == Book(title='The Annotated Alice^sDefinitive Edition', >>> book Book(title='The Annotated Alice^sDefinitive Edition', ... ... pages=352, pages=352, ... ... creators=['Lewis Carroll^y1832-1898^rAuthor', creators=['Lewis Carroll^y1832-1898^rAuthor', ... ... 'John Tenniel^rIllustrator', 'John Tenniel^rIllustrator', ... ... 'Martin Gardner^y1914-2010^rEditor']) 'Martin Gardner^y1914-2010^rEditor'])
  • 23. Acesso a campos e sub­campos >>> book.title >>> book.title u'The Annotated Alice^sDefinitive Edition' u'The Annotated Alice^sDefinitive Edition' >>> print book.title.s >>> print book.title.s Definitive Edition Definitive Edition >>> print book.creators[0].y >>> print book.creators[0].y 1832-1898 1832-1898 >>> for creator in book.creators: >>> for creator in book.creators: ... ... print '%-12s: %s' %% (creator.r, creator[0]) print '%-12s: %s' (creator.r, creator[0]) Author Author :: Lewis Carroll Lewis Carroll Illustrator :: John Tenniel Illustrator John Tenniel Editor Editor :: Martin Gardner Martin Gardner
  • 24.
  • 25. Projeto ISIS­DM • FLOSS: Licença LGPL • Iniciando agora: participe das decisões  cruciais, envolva­se enquanto ainda é fácil • Excelente oportunidade para ganhar  experiência com NoSQL, trabalhando com  massas de dados e necessidades reais • Alto impacto social: a missão é democratizar  o acesso à informação em saúde • Visibilidade internacional
  • 27. http://reddes.bvsalud.org http://reddes.bvsalud.org luciano.ramalho@bireme.org luciano.ramalho@bireme.org
  • 28. http://reddes.bvsalud.org http://reddes.bvsalud.org luciano.ramalho@bireme.org luciano.ramalho@bireme.org