5.1. Ferramentas para publicação de dados

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

Transcript of 5.1. Ferramentas para publicação de dados

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