2012-03-15 4 views
4

Я разрабатываю приложение в Node.js и у меня есть свои данные в JSon представлении тройной, а так:Сохранение троек в Node.js

{ 
    subject:"Hello", 
    predicate:"Knows", 
    object:"World" 
} 

Я хотел бы иметь возможность хранить мои данные в хранилище [data | triple] относительно простым способом.

Значения данных в кортеже также должны быть доступны для поиска.

Я искал использование существующего сервера RDF и обратился к нему через HTTP, но хотел бы избежать использования Sparql (обходной путь может заключаться в том, чтобы иметь отдельный модуль javascript, который обтекает Sparql).

Есть ли существующие модули узла, которые имеют дело с хранением троек? Если нет, то было бы прагматичным решением для хранения троек?

ответ

2

Если вам нужен только доступ к данным с помощью ключа (например, идентификатор пользователя), используйте хранилище значений ключа, например Redis, и подключитесь к нему с помощью node_redis.

Если вам нужно выполнить поиск по данным в тройной, используйте MongoDB и подключитесь к нему с чем-то вроде Mongoose.

2

Понятно, что я не знаю ни одного хранилища данных, которое оптимизировано для хранения 3-х кортежей (тройки) для Node.js. Не зная больше о проблеме, которую вы решаете, и о соответствующем домене, трудно дать конкретные рекомендации. Имея текущую информацию, которую вы предоставили, для каждой тройки я создал бы ключ. Затем выберите либо MongoDB (возможно, избыточный), Redis (Hash или Set), либо ассоциативный массив JavaScript в зависимости от ваших требований.

Если вы ищете производительность среди многих клиентов Node.js, то использование Redis с этим будет отлично.

2

Чтобы начать, ваш пример недействителен в тройной RDF, поэтому, если вы действительно хотите пойти в/RDF, вам придется быть более строгим с вашими данными.

С учетом сказанного существует несколько вариантов, которые я знаю, this framework реализует предлагаемый интерфейс RDF в Javascript. Не знаете, можете ли вы подключить его к существующему трехъядерному хранилищу или к чему, но он может работать для представления ваших данных. This library работает с jQuery для обеспечения некоторой поддержки RDF. Наконец, есть this library, который пытался быть компактным представлением RDF в Javascript.

Другой вариант - RDF/JSON LD spec, который с его представлением JSON вполне поддается использованию в Javascript.

1

Я только что сделал очень легкий каркас JS, чтобы это именно то, что вы хотите:

https://www.npmjs.com/package/hexastore

Добавить троек:

mydb.putAll([ 
    ["hexastore","is","nice"], 
    ["hexastore","speed","fast"], 
    ["javascript","is","nice"] 
]); 

Запрос троек:

var result = db.search([ 
    [["what"],"is","nice"] 
]); 
// result == [{what:hexastore},{what:javascript}] 

 Смежные вопросы

  • Нет связанных вопросов^_^