Java 向Jena模型添加空白节点
我试图用一组现有的三元组填充Jena本体模型,其中一些包含空白节点。我希望在这个新模型中忠实地维护这些空白节点,但我无法找到将它们添加到Jena模型中的方法 我一直在使用:Java 向Jena模型添加空白节点,java,jena,blank-nodes,Java,Jena,Blank Nodes,我试图用一组现有的三元组填充Jena本体模型,其中一些包含空白节点。我希望在这个新模型中忠实地维护这些空白节点,但我无法找到将它们添加到Jena模型中的方法 我一直在使用: Statement s = ResourceFactory.createStatement(subject, predicate, object); 要向模型中添加新语句,请执行以下操作: private OntModel model = ModelFactory.createOntologyModel(); model.
Statement s = ResourceFactory.createStatement(subject, predicate, object);
要向模型中添加新语句,请执行以下操作:
private OntModel model = ModelFactory.createOntologyModel();
model.add(s);
但这只允许某些类型,如主语、谓语和宾语;资源主语、属性谓词、RDFNode对象。这些类型都不允许添加空白节点作为主题或对象,例如:
Node subject = NodeFactory.createBlankNode(subjectValue);
有什么建议吗?我尝试过将blanknodes用作资源,并创建一个资源对象,但当它们变成类而不是空节点时,这会破坏一切
任何帮助都将不胜感激,因为我一直在用这个来解决问题。好吧,如果您已经有了一组三元组,您可以使用以下方法轻松地从文件中读取它们:
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]
这是正确的方法。使用操作RDF数据。这确实是我最后做的,谢谢你的回答。如何创建一个空白节点,你自己为其分配id?