Есть ли нереляционная база данных для Python?

Я ищу что-то вроде sqlite, но нереляционное. Другими словами, я хотел бы работать с тройным хранилищем (набором троек объект-предикат-субъект) вместо таблиц. Это означает, что я хочу использовать запросы SPARQL вместо SQL.

Первая идея, которая приходит в голову, - это RDFLib. Однако я вижу две проблемы с этим вариантом:

  1. RDFLib не является базой данных и, как следствие, не предназначен для работы с параллельным процессом (например, с параллельным запросом, инициированным многими веб-пользователями). Это может привести к несоответствиям, если два пользователя одновременно попытаются добавить или удалить из тройного хранилища.
  2. RDFLib разработан для работы с RDF, который представляет собой частную реализацию (синтаксис) тройного хранилища. Например, у каждого объекта, предиката и субъекта должен быть URI, а у меня их нет. В моем тройном хранилище я хотел бы иметь такие тройки: ("Washington","is capital of", "USA") (то есть без URI).

person Roman    schedule 25.06.2014    source источник
comment
Нет ли драйвера MongoDB для Python?   -  person DavidO    schedule 25.06.2014
comment
вы имеете в виду, например, rdflib.github.io/sparqlwrapper? или api.mongodb.org/python/current? или redis-py.readthedocs.org/en/latest? или ...   -  person Joran Beasley    schedule 25.06.2014
comment
@DavidO: MongoDB не встроен, и это хранилище документов, а не хранилище онтологий.   -  person David Ehrmann    schedule 25.06.2014
comment
Это не по теме. Из близких причин: вопросы, просящие нас порекомендовать или найти инструмент, библиотеку или любимый сторонний ресурс, не относятся к теме Stack Overflow, поскольку имеют тенденцию привлекать самоуверенные ответы и спам. Вместо этого опишите проблему и то, что было сделано на данный момент для ее решения.   -  person Joshua Taylor    schedule 26.06.2014


Ответы (2)


SPARQL явно предназначен для RDF; если вы хотите его использовать, вам нужно будет создать свою собственную онтологию или использовать существующие.

Я рекомендую взглянуть на ORDF с 4store в качестве серверной части.

person Matthew Trevor    schedule 25.06.2014

Как уже сказали комментаторы, для SPARQL есть интерфейс-оболочка - интерфейс конечной точки SPARQL для Python (в настоящее время в версии 1.6.0): http://rdflib.github.io/sparqlwrapper/

Я также наткнулся на другой поток, обсуждающий нереляционные базы данных с Python, хотя в нем конкретно не упоминается SPARQL: переносимый нереляционная база данных

Хотя это не так много, это руководство для разработчиков Python SPARQL содержит несколько указателей: http://www.openlinksw.com/blog/~kidehen/?id=1651

person Alium Britt    schedule 25.06.2014