30
1 Laboratory for Advanced Collaboration L A C 5.1 – Ferramentas para publicação de dados Karin Breitman José Viterbo Edgard Marx Percy Salas Publicação de Dados Governamentais no Padrão Linked Data

5.1. Ferramentas para publicação de dados

Embed Size (px)

Citation preview

Page 1: 5.1. Ferramentas para publicação de dados

1Labora tory for A dvanc ed

C ollabora tion

L A C

5.1 – Ferramentas para public aç ão de dados

Karin BreitmanJosé Viterbo

Edgard MarxPercy Salas

Publicação de Dados Governamentais no Padrão Linked Data

Page 2: 5.1. Ferramentas para publicação de dados

2

Triplify

Page 3: 5.1. Ferramentas para publicação de dados

3

R equerimentos S oftw are

• Lic enç a– GNU Lesser General Public License.

• R equis itos• Web S erver

– Apache (recomendado)– IIS

• PHP (ready) , Ruby/Python (dev)• B anc o de Dados

– MyS QL, S QLite, Oracle, DB2, MS S QLPostgreS QL

Page 4: 5.1. Ferramentas para publicação de dados

4

Triplify• Objetivo

“Expor a semântica disponível em RDBMS de uma forma simples”.

• O que éUm “plugin” para aplicações Web PHP, Ruby/Python (dev).

• O que fazDisponibiliza os dados de BD’s relacionais em triplas.

• O que g era Arquivos RDF, JS ON e Linked Data

Page 5: 5.1. Ferramentas para publicação de dados

5

Triplify : C onfig uraç ão

• Consultas SQL selecionando a informação, que gostariam que seja disponível publicamente (Open Data)

S ELECT id, name AS ‘foaf:name’ FROM users

Page 6: 5.1. Ferramentas para publicação de dados

6

Triplify : E s trutura S QL Query

• Primeira coluna dever conter identificadores para serem utilizados para gerar URI’s das Instâncias

Select id, name AS ‘foaf:name’ FROM users

• Nome das colunas utilizados para gerar as propriedades renomeando as colunas da tabela

Select id, name AS ‘foaf:name’ FROM users

Pode-se utilizar propriedades de vocabulários existentes: FOAF, SIOC …

Page 7: 5.1. Ferramentas para publicação de dados

7

Triplify : E s trutura S QL Query

• Consultas devem retornar valores literais ou referencias para outras instancias

Page 8: 5.1. Ferramentas para publicação de dados

8

Triplify : E xemploLOC ADOR A

$triplify['objectProperties']=array('customer'=>

"select customer_id as id,concat(concat(first_name,' '),last_name) as 'foaf:name’,first_name as 'foaf:firstName’,last_name as 'foaf:surname’,store_id as 'customerOf’,SHA(email) as 'foaf:mbox_sha1sum’,address_id as 'liveAt’,create_date as 'dcterms:created’from customer”, … )

$triplify['objectProperties']=array(

'sioc:address'=>'address’,'customerOf'=>'store’,'liveAt'=>'address’…

);

$triplify['classMap']=array( 'customer'=>'foaf:Person’, 'store'=>'gr:LocationOfSales’, 'address'=>'vcard:Address');

Page 9: 5.1. Ferramentas para publicação de dados

9

Triplify : Integ raç ão em Apps . Web

• Acrescentar o diretório do Triplify a raiz da aplicação.

• Definir consultas SQL e ajustar o arquivo de configuração.

• Possibilitar o acesso direto ao banco de dados relacional através:

– Objeto PDO.– Driver de conexão Mysql.– Utilizar um outro framework para

abstração de base de dados (ODBC).

Page 10: 5.1. Ferramentas para publicação de dados

10

D2R Q e D2R S erver

Page 11: 5.1. Ferramentas para publicação de dados

11

R equerimentos S oftw are

• Licença– GNU General Public License

• Requerimentos• Java 1.4 ou pos terior

• B anc o de Dados– MyS QL, Oracle, MS S QL

PostgreS QL e ODBC (não automática).

Page 12: 5.1. Ferramentas para publicação de dados

12

D2R Q e D2R S erver : Introduç ão

• Objetivo“Permitir que aplicações consigam ter uma RDF-view em um banco de dados non-RDF”.

• O que éPlataforma desenvolvida em Java para publicação de dados de BD em grafo RDF (on-the-fly)

• O que gera RDF/XML (default), RDF/XML-ABBREV, N3, N-TRIPLE.

• Quais BD’s SuportaOracle, MySQL, PostgresSQL, Microsoft SQL Server, fontes de dados ODBC (sem geração automática).

Page 13: 5.1. Ferramentas para publicação de dados

13

D2R Q e D2R S erver : Introduç ão

• O que Permite– Mapeamento do BD para grafo virtual

RDF– Consultas: linguagem SPARQL– RDF dumps– Acessar a informação do BD como

Linked Data sobre a Web.

Page 14: 5.1. Ferramentas para publicação de dados

14

D2R Q

• D2R Q M apping Lang uag eLinguagem declarativa que descreve o mapeamento.

• D2R S erverservidor HTTP que fornece uma visão Linked Data e permite consultas SPARQL.– Tool que usa o D2RQ mapping para mapear o

conteúdo do BD• D2R Q E ng ine

plug-in para Jena e Sesame Semantic Web toolkits.

Page 15: 5.1. Ferramentas para publicação de dados

15

Arquitetura da pla ta forma D2R Q

Page 16: 5.1. Ferramentas para publicação de dados

16

D2R Q : Tipos de M apeamento [1]

• Automátic oCria um arquivo de mapeamento default analisando o esquema do BD .

• Tabela = Classes;• Colunas = Propriedades;

generate-mapping [-u username] [-p password] [-d driverclass] [-o outfile.n3] [-b base uri] jdbcURL

generate-mapping -o mapping .n3 -d driver.class.name -u db-user -p db-password jdbc:url:... E xemplo

Page 17: 5.1. Ferramentas para publicação de dados

17

D2R Q : Tipos de M apeamento [2]

• C us tomizadoM odificar o arquivo gerado pelo ”gerenate-mapping”

Utilizar vocabulários conhecidos– foaf, sioc, dc, goodrelations, etc.

Page 18: 5.1. Ferramentas para publicação de dados

18

D2R Q : M apeamento C us tomizado

M odificando o arquivo mapping .n32. Definir c onexão ao B D

map:MyDatabase a d2rq:Database;

d2rq:jdbcDS N "jdbc:mysql://localhost/mydb";

d2rq:jdbcDriver "com.mysql.jdbc.Driver";

d2rq:username "user";

d2rq:password "password".

3. Definir a s entidadesmap:People a d2rq:C lassMap;

d2rq:uriPattern “http://.../people/@ @ User.ID@ @ ”.

d2rq:condition “User.deleted=0”.

Page 19: 5.1. Ferramentas para publicação de dados

19

1. Adicionar propriedades para as entidades

map:People a d2rq:C lassMap;d2rq:uriPattern “http://.../people/@ @ User.ID@ @ ”;d2rq:condition “User.deleted=0”;d2rq:class foaf:Person .

(C lassMap)

map:People a d2rq:C lassMap .map:name a d2rq:PropertyBridge;d2rq:belongsToClassMap map:People;d2rq:property foaf:nick;d2rq:column “User.name”.

D2R Q : M apeamento C us tomizado

S

P

(D ata Properties)

O

Page 20: 5.1. Ferramentas para publicação de dados

20

1. Adicionar propriedades para as entidades

map:People a d2rq:C lassMap;d2rq:uriPattern “http://.../people/@ @ User.ID@ @ ”;d2rq:condition “User.deleted=0”;d2rq:class foaf:Person .

(C lassMap)

map:mbox_sha1 a d2rq:PropertyBridge;d2rq:belongsToClassMap map:People;d2rq:property foaf:mbox_sha1sum;d2rq:sqlExpression“S HA1(CONCAT(‘mailto:’, User.email))”.

D2R Q : M apeamento C us tomizado

(D ata Properties)

S

P

O

Page 21: 5.1. Ferramentas para publicação de dados

21

D2R Q : M apeamento C us tomizado

1. Link as entidadesmap:Photos a d2rq:C lassMap;d2rq:uriPattern “http://.../photo/@ @ Photo.ID@ @ ”;d2rq:class foaf:Image .

map:photo a d2rq:PropertyBridge;d2rq:belongsToClassMap map:People;d2rq:property foaf:made;d2rq:uriPattern “http://.../photo/@ @ Photo.UserID@ @ ”.

(Photo.UserID is a foreign key to User.ID)

map:photo a d2rq:PropertyBridge;d2rq:belongsToClassMap map:People;d2rq:property foaf:made;d2rq:join “User.ID = Photo.UserID”;d2rq:refersToClassMap map:Photos . (Object Properties)

Page 22: 5.1. Ferramentas para publicação de dados

22

D2R S erver : S ta rt the s erver

• Uma vez que temos o arquivo de mapeamento mapping .n3 executamos o seguinte comando

d2r-server mapping.n3

• Agora podemos navegar sobre o grafo RDF, atraves do servidor D2R- Server

http://localhost:2020/

Page 23: 5.1. Ferramentas para publicação de dados

23

Page 24: 5.1. Ferramentas para publicação de dados

24

OpenLink V irtuos o R DF V iew s

General Public License e Proprietario

Page 25: 5.1. Ferramentas para publicação de dados

25

V irtuos o R DF V iew s : Introduç ão

• Objetivo“Converter dinamicamente dados relacionais em RDF e expô-lo no Virtuoso-hosted S PARQL endpoint.”.

• O que éVirtuoso RDF Views mapea dados relacionais em RDF e permite que a representação do RDF possa ser personalizada.

• O que g era RDF/XML. (Quad S torage)

• Qua is B D’s S uportaOracle, MS S erver, DB2, Informix, Progress, MyS QL, Ingres, Firebird, PostgreS QL e ODBC ou JDBC accesiveis RDBMS .

Page 26: 5.1. Ferramentas para publicação de dados

26

@prefix peo: <http://localhost:8890/rdfv_demo/schemas/peoplet#> .

peo:People a rdfs:Class ; rdfs:label ”People" ; rdfs:comment "An OpenLink People" .

V irtuos o R DF V iew s : M apeamento [1]

• Definição de cada tabela em classes RDFS IRI

foa f:name a rdf:Property ;

rdfs:domain peo:People ;

rdfs:range xsd:string;

rdfs:label ”people name" .

ClassMap

Properties

foa f:made a rdf:Property ;

rdfs:domain peo:People ;

rdfs:range ; photo:Photo

rdfs:label ”photo id" .Data Properties Object Properties

Page 27: 5.1. Ferramentas para publicação de dados

27

V irtuos o R DF V iew s : M apeamento [2]

• Construir Subject IRI’s para cada classe utilizando as chaves primarias de cada tabela

sparqlprefix peo: <http://localhost:8890/rdfv_demo/schemas/people#>create iri class peo:us er_iri "http://localhost:8890/rdfv_demo/testdata/people#%s" (in user_id varchar not null) .

peo:us er_iri a rdf:Property ;

rdfs:domain peo:People ;

rdfs:range xsd:string;

rdfs:label ”people id" .

Page 28: 5.1. Ferramentas para publicação de dados

28

V irtuos o R DF V iew s : M apeamento [3]

• Construir Predicados IRI’s para cada classe utilizando o resto de colunas de cada tabelasparqlprefix qs: <http://localhost:8890/rdfv_demo/quad_storage/>prefix peo: <http://localhost:8890/rdfv_demo/schemas/people#>prefix pho: <http://localhost:8890/rdfv_demo/schemas/photos#>

c reate quad s torag e qs:default from OPLWEB.DBA.PEOPLE as people_tbl from OPLWEB.DBA.PHOTOS as photos_tbl{ create qs:people as graph <http://localhost:8890/rdfv_demo/testdata/people#> { peo:user_iri(people_tbl.U S E R _ID ) a peo:People as qs:people_People ; foaf:name people_tbl.N AM E as qs:people_peopleName ;} .

Page 29: 5.1. Ferramentas para publicação de dados

29

Triplify D2R S erver V irtuos o R DF V iew s

Tec nolog ia PHP Java M iddleware S olution

S PAR QL E ndpoint

- S im S im

Ling uag em de M apeamento

SQL RD F based RD F based

G eraç ão de mapeamento

Manual S em i-automático

M anual

E s c a labilidade Media – Alta(Não S PARQL)

M edia Alta

Link: http://esw.w3.org/Rdb2RdfXG/StateOfTheArt

Page 30: 5.1. Ferramentas para publicação de dados

30

Princ ipa is R eferênc ia s• D2RQ, site

http://www4.wiwiss.fu-berlin.de/bizer/d2r-server/#development, Consultado 20/05/10

• W3C Group, site http://esw.w3.org/Rdb2RdfXG/StateOfTheArt, Consultado 21/05/10

• Triplify, site http://triplify.org/Documentation, Consultado 21/05/10

• Mapping Relational Data to RDF with Virtuoso's RDF Views, site http://virtuoso.openlinksw.com/Whitepapers/html/rdf_views/virtuoso_rdf_views_example.html, Consultado 19/05/10