28
Uma API independente de banco de dados para manipulação de registros bibliográficos e documentais ISIS-DM ISIS-DM The ISIS Data Model API The ISIS Data Model API Luciano Ramalho BIREME/OPAS/OMS

ISIS Data Model API

Embed Size (px)

DESCRIPTION

Apresentação feita em 14/jul/2010 no 2º Google Open Source Jam em São Paulo

Citation preview

Page 1: ISIS Data Model API

Uma API independente de banco de dados para manipulação de

registros bibliográficos e documentais

ISIS­DMISIS­DMThe ISIS Data Model APIThe ISIS Data Model API

Luciano RamalhoBIREME/OPAS/OMS

Page 2: ISIS Data Model API
Page 3: ISIS Data Model API
Page 4: ISIS Data Model API

Contexto tecnológicoContexto 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

Page 5: ISIS Data Model API
Page 6: ISIS Data Model API

Alguns produtos recentesAlguns produtos recentes

• ZODB• Apache CouchDB• MongoDB• Hadoop Hbase• ThruDB• Redis• Hypertable• Riak

• Google Datastore• Amazon SimpleDB• Apstrata

Page 7: ISIS Data Model API
Page 8: ISIS Data Model API

Exemplos de NoSQLExemplos de NoSQL

Page 9: ISIS Data Model API

Uma aplicação: LILACSUma 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

Page 10: ISIS Data Model API

A metodologia é o eloA metodologia é o elo

Page 11: ISIS Data Model API

Dicionário de Dados da Metodologia LilacsDicionário de Dados da Metodologia Lilacs

Page 12: ISIS Data Model API

O absurdoO 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.

Page 13: ISIS Data Model API

Registros bibliográficosRegistros 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.

Page 14: ISIS Data Model API

Modelo de dados apoiaModelo de dados apoiaa metodologiaa metodologia

• Campos repetitivos• Campos opcionais• Sub­campos

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

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

Page 15: ISIS Data Model API

Exemplo de registro ISISExemplo 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»

Page 16: ISIS Data Model API

Exemplo de registro ISISExemplo 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»

Campo repetitivo

Page 17: ISIS Data Model API

Exemplo de registro ISISExemplo 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»

Marcador de sub-campo Sub-campo

Page 18: ISIS Data Model API

Exemplo de registro ISISExemplo 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»

Campo repetitivo

Marcador de sub-campo Sub-campo

Page 19: ISIS Data Model API

ISIS Formatting LanguageISIS Formatting Language

• DSL usada para extração de dados e definição de índices

Page 20: ISIS Data Model API

Projeto ISIS­DM: ISIS Data ModelProjeto 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

Page 21: ISIS Data Model API

Definição de um esquemaDefinição de um esquema

Page 22: ISIS Data Model API

InstanciaçãoInstanciação

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

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

Page 23: ISIS Data Model API

Acesso a campos e sub­camposAcesso a campos e sub­campos

>>> book.titleu'The Annotated Alice^sDefinitive Edition'>>> print book.title.sDefinitive Edition>>> print book.creators[0].y1832-1898>>> for creator in book.creators:... print '%-12s: %s' % (creator.r, creator[0])Author : Lewis CarrollIllustrator : John TennielEditor : Martin Gardner

>>> book.titleu'The Annotated Alice^sDefinitive Edition'>>> print book.title.sDefinitive Edition>>> print book.creators[0].y1832-1898>>> for creator in book.creators:... print '%-12s: %s' % (creator.r, creator[0])Author : Lewis CarrollIllustrator : John TennielEditor : Martin Gardner

Page 24: ISIS Data Model API
Page 25: ISIS Data Model API

Projeto ISIS­DMProjeto 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

Page 26: ISIS Data Model API

O queO quetemos:temos:usuários,usuários,dados,dados,casoscasosde uso de uso concretosconcretos

Page 27: ISIS Data Model API

http://reddes.bvsalud.orghttp://reddes.bvsalud.org

[email protected]@bireme.org

Page 28: ISIS Data Model API

http://reddes.bvsalud.orghttp://reddes.bvsalud.org

[email protected]@bireme.org