Есть ли ограничение на количество троек, которые можно вставить в один запрос SPARQL? - PullRequest
0 голосов
/ 17 января 2019

Использование версии markLogic 8.0-6.3

Я вставляю и удаляю тройки в MarkLogic, используя

WITH <>
DELETE {}
INSERT {}
WHERE {}

пункт.

В предложении вставки есть почти 3000 тройных шаблонов, при выполнении запроса я получаю ошибку ниже.

** 2019-01-17 12: 53: 08.230 Примечание: TaskServer: XDMP-UNEXPECTED: (ошибка: XPST0003) Неожиданная память токена исчерпана

Когда я ограничил тройные шаблоны значением 2043 в предложении INSERT, ошибки не было.

Похоже, что существует некоторое ограничение на количество троек, которые могут быть вставлены за один раз, если это так, есть какой-либо способ увеличить предел.

Это мой пример кода.

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX xs: <http://www.w3.org/2001/XMLSchema>
PREFIX skos-mla: <http://www.mlacustom.com#>
PREFIX term: <http://www.mla.com/term/>
PREFIX name: <http://www.mla.com/name/>
PREFIX work: <http://www.mla.com/work/>
PREFIX text: <http://www.mla.com/text/>
PREFIX rindicator: <http://www.mla.com/roleindicator/>
PREFIX facet: <http://www.mla.com/facet/>
PREFIX subfacet: <http://www.mla.com/subfacet/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
WITH <thesaurus-term>
DELETE {
    ?termiri skos-mla:hasSRsortCode ?predicate.
    ?termiri skos-mla:hasSSsortCode ?predicate.
    ?termiri skos-mla:hasVSsortCode ?predicate.
    ?termiri skos-mla:hasXSsortCode ?predicate.
    ?termiri skos-mla:hasZSsortCode ?predicate.   
} INSERT {
    term:1 skos-mla:hasZSsortCode 'aaa'.
    term:2582 skos-mla:hasZSsortCode 'aab'.
    term:162 skos-mla:hasZSsortCode 'aac'.
    term:136 skos-mla:hasZSsortCode 'aad'.
    term:709 skos-mla:hasZSsortCode 'aae'.
} WHERE {
    optional {?termiri skos-mla:hasSRsortCode ?predicate.}
    optional {?termiri skos-mla:hasSSsortCode ?predicate.}
    optional {?termiri skos-mla:hasVSsortCode ?predicate.}
    optional {?termiri skos-mla:hasXSsortCode ?predicate.}
    optional {?termiri skos-mla:hasZSsortCode ?predicate.}
}

1 Ответ

0 голосов
/ 17 января 2019

И раздел удаления, и вставка этого оператора обновления выполняются для каждой строки результата из раздела where.Поскольку вставка не зависит от каких-либо переменных из раздела where, это, вероятно, не то, что вам нужно.Вместо этого вы должны попытаться выполнить вставку как простой оператор вставки данных.

...