我正在尝试使用一组现有的三元组填充耶拿本体模型,其中一些包含空白节点。我想忠实地维护这个新模型中的这些空白节点,但我无法找到将它们添加到耶拿模型中的方法。
我一直在使用:
Statement s = ResourceFactory.createStatement(subject, predicate, object);
要将新语句添加到模型中:
private OntModel model = ModelFactory.createOntologyModel();
model.add(s);
但这只允许某些类型,如主语、谓语和宾语;资源主题、属性谓词、RDFNode 对象。这些类型都不允许添加空白节点作为主题或宾语,例如通过:
Node subject = NodeFactory.createBlankNode(subjectValue);
有什么建议么?我尝试过仅使用空白节点作为资源并创建一个资源对象,但这会破坏所有内容,因为它们会成为类而不是空白节点。
任何帮助将不胜感激,一直在拉我的头发。
好吧,如果您已经有一组现有的三元组,您可以使用以下命令轻松地从文件中读取它们:
OntModel model = ModelFactory.createOntologyModel();
model.read(new FileInputStream("data.ttl"), null, "TTL");
这将处理空白节点,请参阅耶拿文档
您可以像这样手动创建一个空白节点:
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]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)