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