en ru

Triplestore - Часть1

Появилась задача как-то хранить знания. После многочисленных обсуждений пришли к мнению, что знания удобно хранить и использовать в виде онтологий. При этом, онтологии можно записывать всевозможными видами (N3, RDF, OWL, и др). Для быстрого доступа к онтологии ее можно загружать целиком в оперативную память (в виде объектов, или структур, или массива или еще как-нибудь).

Возникает проблема ограниченности ресурсов (ОЗУ). БЗ большая, а оперативка маленькая.
Возникает задача хранить БЗ (Базу Знаний) на HDD и, по необходимости, быстро подгружать необходимые "знания".
Наиболее компактным и удобным для использования во время выполнения является запись онтологии в виде триплетов.

Для обработки БД триплетов существует много разных реализаций.
Вот некоторые из них:

-- 3store --
Language: C
Homepage: aktors.org/technologies/3store

-- 4store --
Language: C
Homepage: 4store.org

-- 5store --
Language: C
Homepage: 4store.org/trac/wiki/5store

-- AllegroGraph --
Language: Common Lisp
Homepage: franz.com/agraph/allegrograph
en.wikipedia.org/wiki/AllegroGraph

-- ARC --
Language: PHP
Homepage: arc.semsol.org

-- Bigdata --
Language: Java
Homepage: bigdata.com

-- BigOWLIM --
Language: Java
Homepage: ontotext.com/owlim

-- Jena --
Language: Java
License: BSD License
Homepage: jena.sourceforge.net
en.wikipedia.org/wiki/Jena_(framework)
openjena.org/wiki/TDB

-- Mulgara --
Language: Java
License: Mulgara is licensed under the Open Software License v3.0. New code is being contributed using the Apache 2.0 license.
Homepage: mulgara.org
en.wikipedia.org/wiki/Mulgara_(software)
Mulgara is a scalable RDF database written entirely in Java.

-- OpenAnzo --
Language: Java
Homepage: openanzo.org

-- OntoBroker --
Language: Java
Homepage: ontoprise.de/en/home/products/ontobroker

-- Parliament --
Language: Java/C++
Homepage: parliament.semwebcentral.org

-- Pointrel System --
Language: Java/Python
Homepage: sourceforge.net/projects/pointrel

-- RAP --
Language: PHP
Homepage: www4.wiwiss.fu-berlin.de/bizer/rdfapi

-- RDF::Core --
Language: Perl
Homepage: search.cpan.org/dist/RDF-Core

-- RDF::Trine --
Language: Perl
Homepage: perlrdf.org

-- RDF-3X --
Language: C++
Homepage: mpi-inf.mpg.de/~neumann/rdf3x

-- RDFBroker --
Language: Java
Homepage: rdfbroker.opendfki.de

-- Redland --
Language: C
License: Apache License V2.0, GNU General Public License (GPL), GNU Library or Lesser General Public License (LGPL)
Homepage: librdf.org
en.wikipedia.org/wiki/Redland_RDF_Application_Framework

-- RedStore --
Language: C
Homepage: aelius.com/njh/redstore

-- Semantics Platform --
Language: C#
Homepage: intellidimension.com

-- SemWeb-DotNet --
Language: C#
Homepage: razor.occams.info/code/semweb

-- Sesame --
Language: Java
License: BSD-style license
Homepage: openrdf.org
en.wikipedia.org/wiki/Sesame_(framework)

-- Soprano --
Language: C++
Homepage: soprano.sourceforge.net
en.wikipedia.org/wiki/Soprano_(KDE)

-- StrixDB --
Language: C++/Lua
Homepage: strixdb.com
en.wikipedia.org/wiki/StrixDB

-- SwiftOWLIM --
Language: Java
Homepage: ontotext.com/owlim

-- Virtuoso --
Language: C
License: GPLv2[1] and proprietary
Homepage: virtuoso.openlinksw.com
en.wikipedia.org/wiki/Virtuoso_Universal_Server

-- YARS --
Language: Java
Homepage: sw.deri.org/2004/06/yars

-- Smart-M3 --
Language: Python/Java/C/C#
en.wikipedia.org/wiki/Smart-M3

Список взят отсюда: en.wikipedia.org/wiki/Triplestore

Вот описание на англ.

Triplestore

A triplestore is a purpose-built database for the storage and retrieval of Resource Description Framework (RDF) metadata.

Much like a relational database, one stores information in a triplestore and retrieves it via a query language.
Unlike a relational database, a triplestore is optimized for the storage and retrieval of many short statements called triples,
in the form of subject-predicate-object, like "Bob is 35" or "Bob knows Fred".

Some triplestores can store billions of triples.
The performance of a particular triplestore can be measured with the Lehigh University Benchmark (LUBM),
or with real data from UniProt.

Implementation

Some triplestores have been built as database engines from scratch,
while others have been built on top of existing commercial relational database engines (i.e. SQL-based).
Like the early development of OLAP databases,
this intermediate approach allowed large and powerful database engines to be constructed for
little programming effort in the initial phases of triplestore development.
Long-term though it seems likely that native triplestores will have the advantage for performance.
A difficulty with implementing triplestores over SQL is that although "triples" may thus be "stored",
implementing efficient querying of a graph-based RDF model (i.e. mapping from SPARQL) onto SQL queries is difficult.

Обсуждение: project-ai.org/forum/viewtopic.php?t=61












© AiKernel 2010-2013
08.07.2011 - 29.12.2012