Предполагая, что вы включили зависимости в свой pom.xml для SHACL
<dependency>
<groupId>org.topbraid</groupId>
<artifactId>shacl</artifactId>
<version>1.0.1</version>
</dependency>
, вы можете использовать следующий код:
Model shapeModel = JenaUtil.createDefaultModel();
shapeModel.read(strShapeFile);
Model inferenceModel = JenaUtil.createDefaultModel();
inferenceModel = RuleUtil.executeRules(infModel, shapeModel, inferenceModel, null);
inferenceModel
будет содержать новые тройки.
Я тоже писал об этом в своем блоге.См., Например, Выполнение правила SHACL , где вы можете найти полные примеры кода.