Станислав верен, вам нужно обернуть строку в IRI ().Вот фрагмент кода, который запускается непосредственно в QC.Запустите его для пустой базы данных, чтобы не загрязнять другие ваши данные:
xdmp:document-insert('/triples.xml', <triples>{
sem:triple(sem:iri("http://my/subject1"), sem:iri("/in/relationship/with"), sem:iri("http://my/subject2")),
sem:triple(sem:iri("http://my/subject1/in/relationship/with/http://my/subject2"), sem:iri("/current/status"), "My status")
}</triples>)
;
sem:sparql('
SELECT *
WHERE {
?subject </in/relationship/with> ?object.
BIND(IRI(CONCAT(?subject, "/in/relationship/with/", ?object)) AS ?relationship)
?relationship </current/status> ?status.
}
')
Может ли это быть разумным подходом.Имейте в виду, что MarkLogic особенно силен в хранении связанных данных в документах, и вы можете встраивать тройки или использовать TDE для проецирования тройок из них, что позволяет вам объединять силы из поиска документов и сохранять связанные данные вместе, одновременнопо-прежнему позволяет аргументировать факты с помощью SPARQL.
HTH!