Значения BIND из документов в переменную SPARQL (MarkLogic) - PullRequest
0 голосов
/ 14 марта 2019

В настоящее время я пытаюсь выяснить, возможно ли извлечь определенное значение из документа и связать его с переменной в SPARQL

Например, если у меня есть такой документ в MarkLogic.

/ человек / John

<person_data>
   <name>John</name>
   <age>25</age>
</person_data>

используя эти данные, я пытался связать их различными способами, например использовать XPath в sem: sparql, как показано ниже

xquery version "1.0-ml";
import module namespace sem = "http://marklogic.com/semantics" at "/MarkLogic/semantics.xqy";

sem:sparql('
PREFIX fn : <http://www.w3.org/2005/xpath-functions>
SELECT *
WHERE {
?s ?p ?o .
BIND (fn:doc("/person/John")//name/text() AS ?name)
}
',
(),
(),
()
)

Однако это привело к ошибке. Поэтому я очень ценю любые советы, которые даются для достижения этой цели.

1 Ответ

1 голос
/ 14 марта 2019

Движок SPARQL не имеет доступа к документам, но в любом случае есть лучшее решение. Для этого вы можете использовать Template Driven Extraction . Он может предоставлять представление SQL для документов, а также «Определять тройки в документах» . Это фактически означает, что определенные значения могут быть спроецированы в тройной индекс и станут доступны как данные RDF, как и любые другие данные RDF в вашей базе данных.

НТН!

...