en ru Triplestore - Часть2И так, реализаций много. Нужно принять решение какой использовать или же вообще стоит написать свой собственный движок для работы с триплетами (СУБД/СУБЗ). Писать самому очень долго и не понятно зачем тратить время, если это уже все вроде реализовано. Поэтому рассмотрим подробнее существующие реализации. Отмечу, что меня лично больше всего интересует язык Pascal, но на Pascal реализаций БД триплетов я не нашел, поэтому рассматриваем наиболее крупные проекты написанные языках на Си и Java с целью сделать обертку или переписать на Pascal. Крупные проекты я определил очень просто: выбрал те, для описания которых есть отдельная страничка на википедии.
У меня получился такой список:
-- Jena --
-- Mulgara --
-- Redland --
-- Sesame --
-- Soprano --
-- StrixDB --
-- Virtuoso --
Рассмотрим их подробнее. Отмечу, что мне интересны только те варианты, которые так или иначе могут быть использованы в проектах AiKernel и AReason. Jena
Language: Java
jena.sourceforge.net
Jena is Java toolkit for developing semantic web applications based on W3C recommendations for RDF and OWL.
Mulgara
Language: Java
mulgara.org
Mulgara is a scalable RDF database written entirely in Java. The Mulgara Semantic Store is an Open Source, massively scalable, transaction-safe, purpose-built database for the storage and retrieval of metadata.
--- wikipedia.org ---
Redland
Language: C
librdf.org
Redland is a set of object-based, modular and portable C RDF libraries providing RDF APIs for the graph, triple storage (librdf), RDF/XML parsing and serializing (Raptor), SPARQL RDF querying (Rasqal). Language APIs in Perl, PHP, Python, Ruby and others. Programming Languages: C, Python, Perl, Ruby, PHP
License: All Redland packages are free software / open source software and released under the LGPL 2.1, GPL 2 or Apache 2 licenses as alternatives.
--- wikipedia.org ---
Redland is a set of free software libraries written in C that provide support for the Resource Description Framework (RDF), created by Dave Beckett (a former resident of Redland, Bristol). The packages that form Redland are:
Redland is a mature set of libraries, in development since 2000 and closely conformant to the relevant W3C specifications. Sesame
Language: Java
openrdf.org
=== Sesame (framework) (wikipedia.org) ===
SopranoНе стал рассматривать, т.к. сделать обертку для Pascal будет проблематично. StrixDBНе стал рассматривать по той же причине, что и Soprano. VirtuosoНе стал рассматривать по причине не свободной лицензии (GPL). ВыводыИ так, как можно видеть почти все (рассмотренные) свободные проекты реализованы на Java. Java использовать напрямую из Pascal не получится. Это возможно только или с использованием JNI или компиляция java в код виртуальной машины LLVM + добавление скомпилированных .o файлов и потом генерация x86 кода. Но это долго, сложно и не факт что получится. Но есть один проект, который можно использовать относительно свободно (под лицензией Appache 2.0) - это Redland. Но тут надо более подробнее изучить саму лицензию Appache, чтобы в будущем не возникли проблемы. Из всего этого я сделал такой вывод: стоит или использовать Redland и написать для него небольшую обертку на Pascal или брать за образец како-то другой проект (например Jena-TDB) и писать все с нуля. Лично я за использование Redland. Но окончательное решение, если оно и будет, то только после рассмотрения самих исходников проектов. P.S.1. Боюсь, что в итоге, потом, окажется что вообще все надо было сделать намного проще, без всяких заморочек. Но у меня есть только то понимание, какое есть. Другого пока нет. P.S.2. Еще замечание про быстродействие. Дело в том, что достичь самого лучшего быстродействия можно только используя низкоуровневое программирование (язык Си). Хотя часто зависит от конкретного программиста. Тем не менее тесты показывают преимущество языка Си. "Проект по тестированию эффективности языков программирования". P.S.3. Вот тут немного есть про использование OWL и RDF:
Обсуждение: project-ai.org/forum/viewtopic.php?t=61 |
© AiKernel 2010-2013
08.07.2011 - 29.12.2012