Версии RDF-магазина
Позвольте мне перефразировать это:
Я ищу надежное хранилище RDF или библиотеку со следующими функциями:
- Именованные графики или другая форма овеществления.
- Отслеживание версий (возможно, на указанном уровне графа).
- Конфиденциальность между группами пользователей, либо на названном графике, либо на трех уровнях.
- Ввод и вывод данных, считываемых человеком, например. TriG анализатор и сериализатор.
Я играл с Jena, Сезам, Boca, RDFLib, Redland и один или два человека некоторое время назад, но у каждого были свои проблемы. Улучшились ли в вышеуказанных областях в последнее время? Может ли что-нибудь еще делать то, что я хочу, или RDF еще не готов к прайм-тайму?
Прочитав эту тему немного, я обнаружил, что:
- Jena, ничего более
- Сезам, ничего более
- Boca больше не поддерживается и, по-видимому, только для DB2. OpenAnzo, open-source fork, выглядит более перспективным.
- RDFLib, ничего более
- Redland, ничего дальше
- Талис платформа, похоже, поддерживает изменения (wiki page и ссылка в Учебное пособие по Kniblet, часть 5), но это служба только для хостинга. Тем не менее, вы можете изучить его.
- SemVersion звучит многообещающе, но, похоже, прост.
Ответы
Ответ 1
Талис - очевидный выбор, но конфиденциальность может быть проблемой или воспринимаемой проблемой в любом случае с момента ее предложения SaaS. Я говорю, очевидно, потому что три смелых черты в вашем списке являются основными функциями их платформы IIRC.
У них нет списка функций как такового, что затрудняет резервное копирование этого ответа, но они say, который хранит данных могут быть индивидуально защищены. Я полагаю, вы могли бы - в крайнем случае - зарегистрироваться в отдельном магазине от имени каждого из ваших собственных пользователей.
Удобный для чтения ввод часто лучше всего поддерживается написанием пользовательских интерфейсов для каждой пользовательской задачи, поэтому лучше всего быть готовым сделать это по мере необходимости.
Относительно готовности в прайм-тайм. Я бы сказал "да" для некоторых приложений, но в противном случае "не совсем". В основном сообщество должно интегрироваться с существующими инструментами разработчика и писать хорошую документацию, предназначенную для "обычных" разработчиков - возможно, разработчиков OO, использующих Java,.NET и Ruby/ Groovy, - и затем я предсказываю, что это будет снежок.
См. также Временная область для тройки RDF
Ответ 2
От: http://www.semanticoverflow.com/questions/453/how-to-implement-semantic-data-versioning/748#748
Мне лично очень нравится прагматичный подход, который Freebase принял.
Просмотр и редактирование представлений для людей:
- http://www.freebase.com/view/guid/9202a8c04000641f80000000041ecebd
- http://www.freebase.com/edit/topic/guid/9202a8c04000641f80000000041ecebd
Представленная здесь модель данных:
- http://www.freebase.com/tools/explore/guid/9202a8c04000641f80000000041ecebd
Строго говоря, это не RDF (это, вероятно, его надмножество), но часть его может быть представлена как RDF:
- http://rdf.freebase.com/rdf/guid.9202a8c04000641f80000000041ecebd
Поскольку это веб-сайт, основанный на сообществе, не только они должны отслеживать, кто сказал что, когда... но они, вероятно, сохраняют историю (никогда ничего не удалять):
- http://www.freebase.com/history/view/guid/9202a8c04000641f80000000041ecebd
В заключение, способ решения вашей проблемы очень схож и прагматичен. AFAIK, вы не найдете решение, которое работает готово. Но вы можете использовать хранилище "tuple" (3 или 4 недостаточно, чтобы сохранить историю в самой тонкой детализации (т.е. Тройки | квадраты)).
Я бы использовал TDB-код в качестве библиотеки (поскольку он дает вам B + Trees и много полезных вещей, которые вам нужны), и я бы использовал модель данных, которая позволяет мне: считать квадратики, назначить право собственности на квад, временную метку и предыдущий/следующий квад (ы), если они доступны:
[ id | g | s | p | o | user | timestamp | prev | next ]
Где:
id - long (unique identifier, same (g,s,p,o) will have different id...
a lot of space, but you can count quads... and when you have a
community driven website (like this one) counting things it
important.
g - URI (or blank node?|absent (i.e. default graph))
s - URI|blank node
p - URI
o - URI|blank node|literal
user - URI
timestamp - когда квадрат был создан prev предыдущего id (если имеется) next - id следующего квада (если присутствует)
Затем вам нужно подумать о том, какие индексы вам нужны, и это будет зависеть от способа, которым вы хотите разоблачить и получить доступ к своим данным.
Вам не нужно раскрывать все свои внутренние структуры/индексы внешним пользователям/людям/приложениям. И когда (и если) появятся словари RDF или онтологии для представления версий и т.д., Вы сможете быстро разоблачить свои данные, используя их (если хотите).
Будьте осторожны, это не обычная практика, и вы смотрите на нее своими "семантическими веб-очками", это, вероятно, неправильно, плохо и т.д. Но я разделяю эту идею, так как считаю, что это не вредно, это позволяет (это будет медленнее и использовать больше места, чем квад-хранилище), часть его может быть подвержена семантической сети как RDF/LinkedData.
Мои 2 (еретические) цента.
Ответ 3
LMF поставляется с модулем версии: http://code.google.com/p/lmf/wiki/ModuleVersioning
The Linked Media Framework - это простая в установке серверная программа, разработанная в JavaEE, которая объединяет основные технологии Semantic Web, предлагая множество дополнительных услуг.
Ответ 4
Посмотрите, поддерживает ли Virtuoso поддержка RDF, это звучит так, как будто это может пойти довольно неплохо, и это играет хорошо с XML и веб-сервисами тоже. Там есть коммерческая версия и версия GPL.
Ответ 5
Mulgara/Fedora-Commons может соответствовать счету. Я верю, что конфиденциальность в настоящее время является крупным проектом, и я понимаю, что он поддерживает управление версиями, но это может быть слишком много, поскольку это тоже объект-магазин.
Ответ 6
(годы спустя)
Я думаю, что оба хранилища Oracle RDF:
http://www.oracle.com/technetwork/database/options/semantic-tech/index.html
и недавно объявленное хранилище графиков в IBM DB2 поддерживает большую часть этого:
http://www-01.ibm.com/software/data/db2/linux-unix-windows/graph-store.html