Получение выписки в Йене по ее уникальному идентификатору

Я создаю REST API, который будет обслуживать информацию об операторах, хранящихся в моей БД Jena.

Было бы здорово, если бы у каждого оператора был свой уникальный идентификатор, чтобы я мог использовать этот идентификатор в запросе GET для получения информации о конкретном операторе. Есть ли что-то подобное в Йене?

Я знаю, что могу получить оператор(ы), указав соответствующие идентификаторы субъекта/предиката/объекта в методе model.listStatements, но было бы довольно некрасиво добавлять эти параметры в запросы API GET.


person user3024710    schedule 09.08.2015    source источник


Ответы (2)


В RDF тройка определяется своим субъектом, объектом и предикатом. Если у вас есть две тройки с одним и тем же S/P/O, это действительно одна и та же тройка (равенство значений, а не равенство экземпляров). Граф RDF представляет собой набор троек; если вы добавите тройку дважды, в наборе будет только один экземпляр. В RDF нет концепции тройного идентификатора, как и в TDB.

person AndyS    schedule 10.08.2015

Таким образом, вы можете использовать уникальные идентификаторы, скажем, строку длиной 4, для каждого S, каждого P и каждого O. Просто сохраните их все как пары ключ/значение (id/resource, id/property). Тогда у вас будет строка длиной 12 в качестве уникального идентификатора вашего оператора.

Даже если оператор удаляется и добавляется снова, что приводит к другому идентификатору при пометке каждого оператора идентификатором, этот метод каждый раз будет давать один и тот же оператор.

person Laurens Koppenol    schedule 11.08.2015