Как определить тип объекта в тройках Redland R RDF

Я пытаюсь использовать реализацию RDF Redland R для создания простого хранилища RDF, но у меня возникают проблемы с написанием не буквальных троек. В коде после настройки world а также model, в то время как буквальная тройка

addStatement(model,
             new("Statement",world,
                 "a:John","b:likes","a:Jane"))

дает ожидаемое

<a:John> <b:likes> "a:Jane"

код

addStatement(model,
             new("Statement",world,
                 "a:Sian","b:likes","a:John",objectType="blank"))

дает _:a:John вместо <a:John>

<a:Sian> <b:likes> _:a:John

который не совпадает в сгибе в SPARQL

select ?a ?b where {?a <b:likes> ?x. ?x <b:likes> ?b.}

Что я здесь не так делаю? Обратите внимание, что это приложение само по себе не смотрит на какие-либо делегированные базы данных, поскольку я просто использую тройки для использования логической силы запроса SPARQL. Первоначально сделал это в другом пакете, но пытаюсь переехать в Редленд по техническим причинам.

1 ответ

Огромное спасибо комментарию Станислава выше, ответ - просто установить для objectType значение "uri". Это не очень хорошо документировано в R, но, глядя на определение Statement Объект, строка 68 на Github, дает соответствующие параметры и значения по умолчанию.

Другие вопросы по тегам