Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 向Jena模型添加空白节点_Java_Jena_Blank Nodes - Fatal编程技术网

Java 向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.

我试图用一组现有的三元组填充Jena本体模型,其中一些包含空白节点。我希望在这个新模型中忠实地维护这些空白节点,但我无法找到将它们添加到Jena模型中的方法

我一直在使用:

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?