Добавление пустых узлов в модель Jena
Я пытаюсь заполнить модель онтологии Jena существующим набором троек, некоторые из которых содержат пустые узлы. Я хочу сохранить эти пустые узлы внутри этой новой модели, но не могу придумать, как добавить их в модель Jena.
Я использовал:
Statement s = ResourceFactory.createStatement(subject, predicate, object);
Чтобы добавить новые утверждения в модель:
private OntModel model = ModelFactory.createOntologyModel();
model.add(s);
но это допускает только определенные типы как субъект, предикат и объект; Субъект ресурса, предикат свойства, объект RDFNode. Ни один из этих типов не позволяет добавлять пустой узел в качестве субъекта или объекта, например:
Node subject = NodeFactory.createBlankNode(subjectValue);
Какие-либо предложения? Я попытался просто использовать пустые узлы в качестве ресурсов и создать объект Resource, но это нарушает все, когда они становятся классами, а не пустыми узлами.
Любая помощь будет высоко ценится, вырвал мои волосы с этим.
1 ответ
Хорошо, если у вас уже есть набор троек, вы можете легко прочитать их из файла, используя:
OntModel model = ModelFactory.createOntologyModel();
model.read(new FileInputStream("data.ttl"), null, "TTL");
это позаботится о пустых узлах, см. документацию jena
вы можете создать пустой узел вручную следующим образом:
Resource subject = model.createResource("s");
Property predicate = model.createProperty("p");
Resource object = model.createResource();
model.add(subject, predicate, object);
что приведет к чему-то вроде:
[s, p, aad22737-ce84-4564-a9c5-9bdfd49b55de]