Download presentation
Presentation is loading. Please wait.
Published byMaurice Newman Modified over 9 years ago
1
RDF storages and indexes Maciej Janik September 1, 2005 Enterprise Integration – Semantic Web
2
Outline RDF storages –Jena –Sesame –Redland –Brahms Indexing RDF –difference from DB indexing –what to index –examples of index types
3
Storages Jena –Implemented in Java –Supports RDF, RDFS and OWL –In memory and persistent storage (Oracle, MySQL, PostgreSQL) –RDQL –Reasoning/inference engine –Optimization for common statement patterns - grouping of properties –Powerful, but slow and memory exhaustive
4
Storages Sesame –Implemented in Java –Modules (HTTP/SOAP handler, admin, query, export, Repository Abstraction Layer) –Persistent RDF store traditional DBMS or dedicated RDF triple storage –Database independent –Scalable architecture –Node-centric approach –Fast and efficient, as for Java implementation
5
Storages Redland – together with Rasqual and Raptor –Modular approach –Redland – only storage for RDF triples + low level API –Implemented in pure C for portability –Rich API and bindings to other languages –Rasqual - RDF query module (RDQL, SPARQL) –Raptor - a very fast RDF parser –Average performance
6
Storages Brahms /from LSDIS lab/ –Read-only main-memory storage for RDF read RDF and saves optimized snapshot –Written in C++, optimized for speed additional bindings to Java –Full indexing of Subject-Predicate-Object –Uses Raptor as RDF parser –Rich low level API for graph manipulation –Very fast and memory efficient –Waiting for SPARQL implementation
7
Brahms Separation of different resource types: –InstanceNode, Literal, SchemaClass, SchemaProperty –Statements InstanceStatament (instance – property – instance) LiteralStatement (instance – property – literal) TypeOfStatement (instance – type – class) –Taxonomy for classes and properties Iterators deal only with one type of resource –not wasting time during instance search algorithm to check for literal or type relation
8
Indexing of RDF RDF = Graph –traditional DB indexes may not be sufficient XML cannot be indexed directly as relational DB Indexing may take advantage of tree structure –depth of node –common path from the root –convert each path to string expression –precalculate the path tree Simple indexes on statements may also be powerful
9
Redland Brahms What to index? Most straight-forward approach Statements : subject –[predicate] object Possibilities: Single: S PO S OP O SP O PS P SO P OS Double: SO P SP O PO S
10
Single indexes in Brahms [design]
11
Power of single indexes Full indexing of statements –SPO, SOP, PSO, POS, OSP, OPS –indexes for each type of statements (InstanceStatements, LiteralStatements...) –fast check if given resrouce is connected to another, or uses given property – use of binary search –merge of 2-hop path element in linear time All RDF storages are based on simple indexes and their extensions
12
Schema Vs. Instances [Brahms] Schema is small compared to instances Instance to taxonomy –know or check for type of the instance Taxonomy index (classes and properties) –direct subtypes/supertypes –all ancesstors/descendants –dynamically build index of instances for given type and all its subtypes
13
Tree-based index Idea is based on Patricia’s trie Index should scale with the growth of data Path together with leaf is encoded into string -> the Index Fabric „A Fast Index for Semistructured Data” - Brian F. Cooper et al.
14
Index fabrics Index is used to accelerate path expressions - mainly for queries that ask for root-to-leaf path Idea of prefix encoding –xml: alpha beta gamma –paths: alpha ; beta ; gamma –encoded: A alpha ; A B beta ; A B C gamma –infix (not common): A alpha B beta C gamma Convert path to string for fast searches Replace tags with ‘non-terminal’ characters (like in automata)
15
Indexing of graphs Backbone http://www.aisee.com/
16
Indexing of graphs http://www.aisee.com/ Tree-type - prefixes - tries
17
Indexing of graphs „Index Structure for Path Expressions” - Tova Milo, Dan Suciu 1-index 2-index T-index Path templates
18
Indexing of graphs http://www.aisee.com/ Landmarks
19
Indexing of graphs Indexing semistructured data –index fabric - encoding, multilayered –common prefixes - trie structure –backbone - highways between points –landmarks - county division –path templates - precalculated expressions –clustering - grouping by theme access Indexing such data is NOT easy, solution depends how you want to search the graph
20
References Beckett, D., „The Design and Implementation of the Redland RDF Application Framework”. Cooper et al., „A Fast Index for Semistructured Data” Janik M. And Kochut K., „BRAHMS: A WorkBench RDF Store And High Performance Memory System for Semantic Association Discovery” Milo T. and Suciu D., „Index Structures for Path Expressions” Wilkinson et al., „Efficient RDF Storage and Retrieval in Jena2” Jena - http://jena.sourceforge.net/http://jena.sourceforge.net/ Raptor - http://librdf.org/raptor/http://librdf.org/raptor/ Redland – http://librdf.org/http://librdf.org/ Sesame - http://www.openrdf.org/http://www.openrdf.org/
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.