Как игнорировать узлы из импортированных графиков при проверке RDF с SHACL?
Эта форма
selfref:NodeShape
rdf:type sh:NodeShape ;
sh:property [
rdf:type sh:PropertyShape ;
sh:path sh:property ;
sh:maxCount 0 ;
sh:minCount 0 ;
sh:nodeKind sh:BlankNode ;
] ;
sh:targetSubjectsOf sh:property .
обрабатывается двигателями, совместимыми со спецификацией SHACL, это действительно подтверждает себя. Проблема в том, что все узлы из импортированных графов, включая словарь SHACL, также обрабатываются. Как исключить все, что связано через owl:imports
?
1 ответ
Насколько я знаю, это зависит от реализации. Спецификация SHACL гласит:
Графики фигур могут быть повторно используемыми модулями проверки, на которые можно ссылаться с помощью предиката owl:import. В качестве шага предварительной проверки процессоры SHACL должны расширить первоначально предоставленный граф фигур, транзитивно следуя и импортируя все графы ссылочных фигур через предикат owl:import. Результирующий график формирует входной график форм для проверки и не должен быть далее изменен во время процесса проверки.
Таким образом, совместимые процессоры SHACL должны расширять исходный граф фигур, но им это не нужно.