Slide 1 - TecWeb - PUC-Rio

Propaganda
Capa
Ferramentas
Triplify
Ferramentas e Repositórios
RDF
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
Ana Carolina Almeida
[email protected]
Carlos Juliano Viana
[email protected]
Ferramentas
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
 Triplify
• Agile Knowledge and Semantic
Web research group (AKSW)
• Versão 4 beta (2008)
 D2RServer
• Versão 0.4 alpha (2007)
 Openlink Virtuoso
• Openlink Software
• Versão 5.0.8 (2008)
Conceito
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
• Um plugin para aplicações web
que disponibiliza os dados de
BD’s relacionais em RDF, JSON
ou Linked Data.
• Consiste de poucos arquivos:
menos do que 500 linhas de
código (PHP);
• Uso de arquivo de configuração
(Construído em menos de uma
hora).
Problema
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
• Estrutura e a semântica dos
dados em esquemas de BD’s
relacionais não estão facilmente
acessíveis a máquinas de
busca.
Problema
Capa
Ferramentas
Triplify
• 15 mais populares aplicações na web no
Sourceforge (Maio 2007).
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
• Riqueza de informações quando os dados das
aplicações estiverem disponíveis na web!
Objetivo
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
• Explorar as representações
estruturais dos dados por trás
das aplicações web para criar
uma massa crítica de
representação de informação
semântica na web.
Solução
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
• Definir consultas a BD’s relacionais
da aplicação web específica:
– Resultados das consultas -> RDF,
JSON e Linked Data.
Estrutura de Consultas
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
• Para maioria de aplicações web: 3 a 7
consultas para extrair informações
importantes (Com base em Experiência).
• Pode-se prover um número arbitrário de
consultas. Consultas devem selecionar
informações sobre um objeto de um certo
tipo e possuir uma determinada estrutura:
1. Primeira coluna deve conter identificadores para
serem utilizados para gerar URI’s das instâncias.
(chave primária da tabela).
2. Nomes das colunas 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.
Estrutura de Consultas
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
3. Resultados das consultas devem restornar valores
literais ou referências para outras instâncias.
Resultados constituem-se na propriedade Object
das triplas RDF.
Arquivo de Configuração
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
• Software de gerenciamento de
conferência - OpenConf:
// Referencia para onde está o código do Triplify.
require_once("../include.php");
require_once("../db.php");
$triplify['namespaces']=array(
'vocabulary'=>'http://triplify.org/vocabulary/OpenConf/',
'foaf'=>'http://xmlns.com/foaf/0.1/',
'dc'=>'http://purl.org/dc/elements/1.1/',
'xsd'=>'http://www.w3.org/2001/XMLSchema#',
);
$triplify['db']=new PDO('mysql:host='.OCC_DB_HOST.';dbname='.OCC_DB_
NAME, OCC_DB_USER, OCC_DB_PASSWORD);
$triplify['objectProperties'] = array (
'isAuthorOf'=>'paper',
'isPCmemberOf'=>'',
'hasTopic'=>'topic'
);
Arquivo de Configuração
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
$triplify['queries'] = array (
'paper'=>array (
"SELECT paperid id, title, keywords, abstract
FROM ".OCC_TABLE_PAPER."
WHERE accepted='T'",
"SELECT paperid id,topicid hasTopic
FROM ".OCC_TABLE_PAPERTOPIC.“
INNER JOIN ".OCC_TABLE_PAPER." USING(paperid)
WHERE accepted='T'"
),
'author‘ => "SELECT CONCAT (paperid,'-',position) id,
SHA(CONCAT('mailto:',email)) mbox_sha1sum,
paperid isAuthorOf, name_first `foaf:firstName`,
name_last `foaf:family_name`,
organization,country
FROM ".OCC_TABLE_AUTHOR." INNER JOIN ".OCC_TABLE_P
APER."
USING(paperid) WHERE accepted='T'",
'topic'=>"SELECT topicid id, topicname, short FROM ".OCC_TABLE_T
OPIC,
);
OBS: Triplify tenta detectar e converter automaticamente os tipos.
Integrar Triplify em Apps. Web
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
1. Acrescentar o diretório do Triplify a raiz
da aplicação;
2. Definir consultas SQL e ajustar o arquivo
de configuração;
3. Possibilitar o acesso direto a base de
dados relacional por:
1. Objeto PDO;
2.
3.
Driver de conexão Mysql;
Utilizar um outro framework para abstração de base de
dados;
AllegroGraph
Virtuoso
Comparação
Exemplos de integrações:
• Simile Potluck;
• Yahoo! Pipes ; etc.
Conceito
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
• Publicar dados de BD relacionais
para a web semântica (on-the-fly);
• Dados mapeados para triplas RDF;
• Linguagem de mapeamento D2RQ:
– Identificar os recursos;
– Propriedades para descrever os
recursos;
• Servidor web embutido;
• Visualização em RDF ou HTML;
• Consultas: linguagem SPARQL.
Arquitetura
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
Mapeamento
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
• Automático e customizável:
– generate-mapping -> Cria um arquivo
de mapeamento default analisando o
esquema do BD.
• Tabela -> Classes;
• Colunas -> Propriedades;
– Customizar os termos gerados:
• utilizar vocabulários conhecidos: rdf, rdfs,
xsd, foaf, dc, owl, bio, etc.
• Compatibilidade:
– Oracle, MySQL, PostgresSQL, fontes de dados
ODBC (sem geração automática).
Mapeamento
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
# Namespace do arquivo de mapeamento;
@prefix map: <file:///Users/d2r/mapping_file.n3#> .
# Vocabulários.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix d2rq: <http://www.wiwiss.fu-berlin.de/suhl/bizer/D2RQ/0.1#> .
@prefix d2r: <http://sites.wiwiss.fu-berlin.de/suhl/bizer/d2r-server/config.rdf#>
.
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
# Configuração do servidor e do banco
<> a d2r:Server;
rdfs:label "D2R Server – Hello World ";
d2r:baseURI <http://localhost:2020/>;
d2r:port 2020;
.
map:Database1 a d2rq:Database;
d2rq:jdbcDSN "jdbc:mysql://localhost/helloworld";
d2rq:jdbcDriver "com.mysql.jdbc.Driver";
d2rq:username "root";
d2rq:password "password";
.
Mapeamento
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
# CREATE TABLE Conferences (ConfID int, Name text, Location text);
map:Conference a d2rq:ClassMap;
d2rq:dataStorage map:Database1.
d2rq:class :Conference;
d2rq:uriPattern
"http://conferences.org/comp/confno@@Conferences.ConfID@@";
.
map:eventTitle a d2rq:PropertyBridge;
d2rq:belongsToClassMap map:Conference;
d2rq:property :eventTitle;
d2rq:column "Conferences.Name";
d2rq:datatype xsd:string;
.
map:location a d2rq:PropertyBridge;
d2rq:belongsToClassMap map:Conference;
d2rq:property :location;
d2rq:column "Conferences.Location";
d2rq:datatype xsd:string;
.
Mapeamento
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
# Relacionamentos
# Tabelas: Paper (PaperID int, PaperName text); Topics
(TopicID int, TopidName text)
# Rel_Paper_Topic (PaperID, TopicID, RelationType);
# 1 para tópico primário no paper e 2 para tópico
secundário.
map:primaryTopic a d2rq:PropertyBridge;
d2rq:belongsToClassMap map:Paper;
d2rq:property :primaryTopic;
d2rq:refersToClassMap map:Topic;
d2rq:join "Paper.PaperID = Rel_Paper_Topic.PaperID";
d2rq:join "Rel_Paper_Topic.TopicID = Topic.TopicID";
d2rq:condition "Rel_Paper_Topic.RelationType = 1".
Mapeamento (Estrutura)
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
Exemplo de Resultado
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
http://www4.wiwiss.fu-berlin.de/is-group/
Conceito
Capa
Ferramentas
Triplify
 SPARQL -> SQL
• Consulta RDF – BD virtual
D2R Server
Comparação
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
21
Repositórios
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
 Virtuoso
• Openlink Software
• Versão 5.0.8 (2008)
 Boca
 IBM Adtech group (Cambridge)
 Versão 2.4 (2007)
 Java
 Mulgara
 Northrop Grumman
 Versão 2.0.5 (2008)
 Java
Conceito
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
• Framework open source em Java
para armazenar e consultar RDF e
RDF Schema.
• Utilizado como:
– BD’s para RDF e RDF Schema; ou
– Biblioteca Java: Aplicações com RDF
internamente.
• Provê ferramentas necessárias para
parsear, interpretar, consultar e armazenar
as informações na aplicação.
Conceito
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
• O framework é independente de
um dispositivo de
armazenamento em específico:
– BD’s relacionais;
– Estrutura de dados em memória (Objetos Java
em memória);
– Indexadores de palavras chaves;
– Repositórios de triplas
• Disponibiliza conjunto de ferramentas para
auxiliar desenvolvedores:
– Flexível API de acesso que suporta acesso
local e remoto (Através de HTTP ou RMI)
– Linguagens de consultas: SPARQL e SeRQL;
Sesame como Biblioteca
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
• Constitui-se dos seguintes
arquivos:
• sesame.jar: Classes centrais (core);
• rio.jar: Parsers e “escritores” para diferentes
formatos: RDF/XML, Turtle, N-triples;
• openrdf-model.jar: conjunto de interfaces e classes
para o modelo RDF.
• openrdf-util.jar: conjunto de classes úteis.
Sesame como Servidor
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
• Pode ser utilizado como um servidor:
aplicações clientes ou usuários humanos
podem se comunicar via protocolo HTTP;
Arquitetura
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
• SAIL – Camada de armazenamento e inferência: API que
abstrai o formato de armazenamento utilizado: (DBMS, dados
em memória, ou em arquivos.).
• Módulos Funcionais:
• Consultas; SeRQL e RQL;
• Exportação: Exportar dados em RDF/XML, N-Triplas,
etc.
• Administração: Inserir RDF e RDF Schema no
repositório
Arquitetura
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
 Sesame Access API:
• Sesame Repository API: Acesso de
alto-nível aos repositório Sesame:
• Consulta;
• Armazenamento arquivos RDF;
• Extração de RDF;
• Graph API: Suporte mais específico
(fine-grained) para manipulação de
RDF:
• Acrescentar ou remover sentenças
ao arquivo RDF.
Comparação
28
Arquitetura
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
 Sesame Access API:
• Provê acesso direto ao módulo
funcional para:
• Programa Cliente: Ex. Aplicação
desktop: utiliza Sesame como uma
biblioteca.
• Componente Servidor Sesame:
provê acesso HTTP as API’s do
Sesame.
AllegroGraph
Virtuoso
Comparação
29
Outras Características
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
 Suporte a DBMS:
• PostgreSQL;
• MySQL;
• Microsoft SQL Server; e
• Oracle.
 Desempenho e Escalabilidade:
• Em Memória: O (10^7) triplas;
• RDBMS e Mulgara: O(10^8) triplas.
• Melhorar a escabilidade em 2008: O(10^9).
 Versão: 2.2 (Setembro 2008);
 Plataformas:
• Windows;
• Linux;
• MAC OS X.
30
O repositório
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação




RDF – multi-usuário
Windows & Linux
Construção, Consulta e atualização
DB2 Express C / Apache Derby
• Boca Configuration
 Pré-requisitos (Conhecimento)
• Jena APIs
• SPARQL
 Testes
• MySQL
• PostgreSQL
31
Instalação
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
 Pré-requisitos
• JDK 5 (IBM/SUN)
• DB2 9.1
 Instalação
• Baixar/Descompactar
• Configurar caminho bibliotecas DB2
• Script check-dependencies
 Eclipse
AllegroGraph
Virtuoso
Comparação
32
Funcionalidades
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
 Construção de RDF
•
•
•
•
•
Grafos nomeados
Replicação
Segurança
Histórico de revisão
Notificação
 Avançados
• Comandos
• Pré-condições
• Versionamento
BocaQuery
Capa
Ferramentas
Grafo
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Grafos padrões
nomeados (String)
Graph results =
datasetService.getModelService().
execQuery(
defaultGraphs, ≈
defaultGraphs.add(namedGraphURI);
Grafos nomeados
new HashSet<String>(),
(String)
query,
≈ String query = "SELECT ?s ?p ?o WHERE { ?s ?p ?o
}";
"http://jena.hpl.hp.com/2003/07/query/SPARQL");
Virtuoso
Comparação
Linguagem de
Consulta (String)
Texto da Consulta
(String)
Jena X Nativa
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
 Jena
• String query = "SELECT ?s ?p ?o WHERE
{ ?s ?p ?o }";
• QueryExecutionFactory.create(query,
remoteModel);
 Nativa
• execQuery(defaultGraphs, new
HashSet<String>(), query,
"http://jena.hpl.hp.com/2003/07/query/SP
ARQL");
BocaTextIndexing
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
• Objetos literais
• Lucene
• Expressão (sujeito, predicado e objeto)
• Grafo nomeado
• Timestamp da última atualização
• execQueryIndex(
– String query, int startIndex, int numResult,
ResultsFormat format)
• Exemplo:
– Graph results =
datasetService.getModelService().execQuer
yIndex("text", 0, 10, ResultsFormat.TRIPLE)
– Resultado: grafo, sujeito, predicado e objeto
Conceito
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
 Armazenamento e Recuperação de metadados
 Segurança
 Nível de autenticação e autorização
 Linux & Windows & Mac
 Mul - "mull", garr - "car", ra - "huh“
 Importa/Exporta RDF e N3 (3 expressões RDF)
 Identificados por URLs
Mulgara
AllegroGraph
Virtuoso
Comparação
37
Ferramentas
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
 Mulgara Viewer
• Consulta
• Comandos iTQL
• Resultados: HTML
 Descritores (Descriptors)
• Folha de estilo XSL
• Consultas complexas  interface
simples
AllegroGraph
Virtuoso
Comparação
38
Mulgara Viewer
Capa
Ferramentas
• http://localhost:8080/webui/
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
39
Descritores
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
 Vantagens
• Definir interface para cliente
• Referenciados como URLs
 Desvantagem
• Permite somente parâmetros string
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
40
Descritores
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
41
Instalação
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
 Pré-requisitos
• Java 1.5 (Sun)
 Instalação
• Baixar
• Configurar caminho Java
• Arquivos executáveis JAR
 Eclipse
Mulgara
AllegroGraph
Virtuoso
Comparação
42
Demais BDs
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
• Mulgara X BD relacional
• Otimizado para gerência de metadados
• Não lida com grandes junções
• Recomenda
• D2R Map (relacional)
• Linguagem XML Stylesheet Language
Transformations (XSLT)
Mulgara
AllegroGraph
Virtuoso
Comparação
43
Comandos iTQL
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
 Básicos
•
•
•
•
•
•
•
•
alias / select
backup / restore
comment (#) / help / quit
commit / rollback
create / drop
insert /delete / load
execute
set (time/autocommit)
 Avançados
•
•
•
•
•
Views
Full-Text Models (Lucene)
Datatyping Models
Nodetyping Models
Filesystem Models
44
Comandos iTQL
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
 Criar novos modelos RDF
• create model [type];
• create <rmi://mysite.com/server1#model1>;
 Remover modelos
• drop <rmi://mysite.com/server1#model1>;
 Consultar modelos
 Inserir expressões (Dublin Core)
• insert <http://www.domain.net/~jsmith/home.html>
<dc:creator> 'John Smith'
into <rmi://mysite.com/server1#model1>;
 Apagar expressões
• delete <http://www.domain.net/~jsmith/home.html>
<dc:creator> 'John Smith'
from <rmi://mysite.com/server1#model1>;
 Carregar expressões (RDF/XML e N-Triple)
 load <file:/tmp/ntriple.n3>
into <rmi://mysite.com/server1#model1>;
45
Consultas iTQL
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
• Identificadores de Fragmento
• rmi://mysite.com/server1#model7
• Select
• select $subject $predicate
from <rmi://mysite.com/server1#MyModel>
where $subject $predicate 'Title';
• Alias (Default)
• alias <http://mulgara.org/mulgara#> as
mulgara;
AllegroGraph
Virtuoso
Comparação
46
Resolvedores
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
 Aceitam e processam as consultas
 Composto por 3 camadas:
• Resolvedor API
• Resolvedor SPI (service provider
interface)
• Conteúdo SPI
 Interno X Externo
AllegroGraph
Virtuoso
Comparação
47
Mulgara Rules Engine (Krule)
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
 Conjunto de regras e/ou axiomas prédefinidas
 Inferências-novas expressões RDF-fatos
 OWL (same as; cardinality)
 Ontologias (SOFA)
 Extensível (novas regras)
 Sem restrições de dados
Mulgara
AllegroGraph
Virtuoso
Comparação
48
Mulgara Rules Engine (Krule)
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
49
Aplicações de SW
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca






JavaServer Pages Tag Library
iTQL Shell
Simple Object Access Protocol (SOAP)
iTQL Bean
Mulgara Driver
Java RDF (JRDF)
Mulgara
AllegroGraph
Virtuoso
Comparação
50
Conceito
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
• É um framework de banco de
dados e aplicações para
possibilitar a construção de
aplicações na Web Semântica.
• Pode armazenar Dados e metadados como:
– Triplas RDF;
– Resultado de consultas: SPARQL
e Prolog.
51
Capa
Estrutura Lógia do
repositório
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
 Afirmações com 5 campos;
 Dicionário de Strings para gerenciar
Unique Part Identifier – UPI para os
campos: sujeito, predicado, objeto e graph.
 Criação de índices para agilizar consultas .
52
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
Estrutura Lógia do
repositório
 Criação de índices Freetext para possibilitar buscas
de “textos livre” (freetext).
 Mantém informações sobre triplas deletadas.
 As triplas que são enviadas para AllegroGraph
estão em formato RDF/XML ou no formato N-tripla
(uma tripla por linha).
 Dados podem ser importados de RDBMS, CSV ou
de outros dados formatados através da utilização
de uma API.
 AllegroGraph não impõe restrições a utilização de
RDF de fato, fazendo ele ser um verdadeiro banco
de grafos.
Banco de grafos
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
 Como AllegroGraph não faz restrições a
RDF:
 Pode armazenar quaisquer
informações nos campos sujeito,
predicado, objeto e grafo das suas
“triplas”. -> Finalidade de acrescentar
mais qualidade na representação:
 Em um banco de dados de grafos:
 Afirmação: Um nó s (sujeito) é
conectado a um nó o (objeto) via uma
aresta p (predicado) com informação
adicional g (grafo).
Banco de grafos
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
• BD de grafos podem ser mais
flexíveis e rápidos do que RDBMS:
• Acrescentar novos predicados
sem mudar o esquema;
• Todas as informações já estão
indexadas;
• Relações são codificadas
diretamente, sem utilizar uma
tabela para relacionamento.
Serviços
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
• AllegroGraph possibilita o acesso ao seu
repositório de triplas por:
• SPARQL consultas: resultados em
RDF, XML e outros formatos;
• Low-level API´s: Possibilitam um rápido
acesso as triplas por sujeito, predicado
e objeto;
• Prolog: provê a construção de
conceitos de alto nível que requerem
complexas regras ou processamento
numérico sobre dados RDF.
• RDFS++ Reasoning: ???
• RacerPro e RacerPorter: ???
Arquitetura Interna
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
• Repositório de armazenamento
AllegroGraph é um dos tipos de classes acima;
Um Abstract-triple-store define as principais interfaces que
um repositório deveria implementar :
• Concreto: Armazena as triplas atuais do repositóri;
• Federado: provê mecanismos para agrupar e estruturar
coleções arbitrárias de outros repositórios;
Arquitetura Interna
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
• Encapsulado: permite acrescentar comportamentos
ao armazenamento existente. Reasoning-triplestore ???
• Remoto: possibilita que AllegroGraph utilize
repositórios servidos por outros processos
localmente ou em rede. Esses repositórios podem
ser ou outros repositórios AllegroGrap ou conexões
para Oracle e Sesame.
• Utilizando uma das dessas classes pode-se
construir repositórios de dados de diferentes
arquiteturas e tratá-las como se fosse um
repositório único.
Como acessar o repositório
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
• Java: Classes Java, adaptadores para trabalhar
com chamadas das bibliotecas Jena e Sesame;
• Protocolo HTTP Sesame: possibilita acrescentar e
deletar triplas, consultar por triplas individuais ou
através de SPARQL;
Como acessar o repositório
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
• Linguagens: Python, Ruby, JavaScript: quaisquer
linguagems que saibam fazer requisições HTTP;
• Lisp;
• TopBrain Composer: Ferramenta comercial para
modelar e editar ontologias. Utilizado para
visualizar os seus dados RDF/OWL.
Conceito
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
 BD SQL objeto-relacional
 Versão open-source
 Versão comercial
• BD virtual
• Replicação
 Repositório WebDAV
 Windows, Linux, UNIX, MacOS X.
AllegroGraph
Virtuoso
Comparação
61
Características
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
 Transações
 Compilador SQL (Suporte ao SQL 99)
 Estruturas
• Tabelas (tables), visões (views), gatilhos
(triggers) e (procedimentos) stored
procedure (Java e .Net)
 Hot backup
 Interfaces
• ODBC, JDBC, ADO .Net, OLE/DB
 Gerência de usuários, regras e privilégios
 Estatísticas de BD
 Serviços Web
62
Arquitetura
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
63
Modelo de dados Lógico
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca







Tabela
Coluna
Chave
Subtabela
Tipos de dados SQL-92
Novos tipos – C#
Níveis de isolamento
Mulgara
AllegroGraph
Virtuoso
Comparação
64
Segurança
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph





Controle de usuários
Grupos
Objetos
backup/recovery
Diagnóstico de desempenho
 Memória
 Plano de consulta
 Tuning
 Otimização de I/O
 Utilização de índices
Virtuoso
Comparação
65
Banco de dados virtual
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
 Ligação com tabelas e visões remotas
 Procedimentos
 Mpaeamento de tipos de dados
 SQL_REAL -> Real
 Modelo de Transações
 Funções SQL
 db..vd_pass_through_function
('inf10', 'substring', 'substr');
AllegroGraph
Virtuoso
 Otimizador de consulta distribuída
Comparação
66
XML/NNTP
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
 XML
 SQL -> XML
 NNTP
 Create/Attach News Groups
 Limit Groups
 Local & Remote Groups
Mulgara
AllegroGraph
Virtuoso
Comparação
67
Conductor
Capa
Ferramentas
 c
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
68
RDF
Capa
Ferramentas
 SPARUL
 an Update Language For RDF
Graphs
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação




Inserção/Carga de expressões
Virtuoso Sponger
IRI dereferenciável e Linked Data
Visões RDFs
 Mapeando dados relacionais para RDF
 Inferência (RDF Schema/OWL)
 SPARQL / SPARQL BI
 Tuning
69
SPARQL BI
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios





Extensão SPARQL
Resultados
Sobconsultas
Agregações
Agrupamentos
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
70
Tuning
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
 Índices




G = Grafo
P = Predicado
O = Objeto
S = Sujeito
 create bitmap index RDF_QUAD_PGOS on
DB.DBA.RDF_QUAD (G, P, O, S);
Grafos especificados
e índices default
Mulgara
AllegroGraph
Virtuoso
Comparação
Grafos não especificados e
índices alternativos
71
Relacional -> RDF
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca





Chaves primárias/estrangeiras -> IRI
Coluna -> predicado IRI
Linha -> predicado rdf:type
Classe IRI RDF -> tabela
Tripla:
 Sujeito: chave primária
 Predicado: coluna
 Objetos: valores da coluna
Mulgara
AllegroGraph
Virtuoso
Comparação
72
Comparação entre repositórios
Capa
Ferramentas
Triplify
Desempenho
OLTP
D2R Server
Suporta
SPARQL
SGBD
D2R Server
Sim
Sim
Ferramenta
Sesame
Sim
Sim
Não
BOCA
Não
Sim
Não (DB2)
Sesame
Boca
Mulgara
Não
???/iTQL
???
AllegroGraph
Não
Sim
Não
Mulgara
Virtuoso
Sim
Sim
Sim
Comparação
Repositórios
AllegroGraph
Virtuoso
Comparação
73
Comparação entre repositórios
Capa
Ferramentas
 128 consultas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
 126 consultas
Mulgara
AllegroGraph
Virtuoso
Comparação
74
Comparação entre repositórios
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
75
Comparação entre repositórios
Capa
Ferramentas
Triplify
D2R Server
Comparação
Repositórios
Sesame
Boca
Mulgara
AllegroGraph
Virtuoso
Comparação
76
Download