java - 如何获取代表具有特定 [property,object] 对的对象的 RDF 资源?

标签 java xml rdf jena rdfs

好吧,澄清一下,我有一个 XML/RDF 文件,它用自然分类树结构(如文件夹和文件)描述数据。数据不是以树的形式构建的,而是有解释如何重建树的信息(即每个节点的嵌套设置值)。我一开始除了假设文件中的某些语句具有 RootTree 属性之外一无所知,该属性的对象是描述树的根节点的语句的 URI。

获取该对象很容易,我只需使用:

// Obtain the node describing the root of the Pearltree.
mRootProp = mModel.createProperty(Pearltree.RDF.PearlTreeNS, "rootTree");

NodeIterator roots = mModel.listObjectsOfProperty(mRootProp);

现在,我可以进一步列出具有属性 pt:parentTree 和对象 roots.nextNode() 的所有语句:

StmtIterator sit = mModel.listStatements(null, RDF.ParentTree, rootNode);

这给了我所有此类声明的列表。这些语句是元素的一部分,它们在 RDF/XML 文件中看起来像这样(注意它们具有不同的parentTree值,但出现在相同的上下文中):

<pt:RootPearl rdf:about="http://www.pearltrees.com/dcow/pearltrees-videos/id5296268#rootPearl">
   <dcterms:title><![CDATA[Pearltrees videos]]></dcterms:title>
   <pt:parentTree rdf:resource="http://www.pearltrees.com/dcow/pearltrees-videos/id5296268" />
   <pt:inTreeSinceDate>2012-06-11T20:25:55</pt:inTreeSinceDate>
   <pt:leftPos>1</pt:leftPos>
   <pt:rightPos>8</pt:rightPos>
</pt:RootPearl>

<pt:PagePearl rdf:about="http://www.pearltrees.com/dcow/pearltrees-videos/id5296268#pearl46838293">
   <dcterms:title><![CDATA[why Pearltrees?]]></dcterms:title>
   <dcterms:identifier>http://www.youtube.com/watch?v%3di4rDqMMFx8g</dcterms:identifier>
   <pt:parentTree rdf:resource="http://www.pearltrees.com/dcow/pearltrees-videos/id5296268" />
   <pt:inTreeSinceDate>2012-06-11T20:25:55</pt:inTreeSinceDate>
   <pt:leftPos>2</pt:leftPos>
   <pt:rightPos>3</pt:rightPos>
</pt:PagePearl>

...

现在,我想做的是获取对主题为 sat.nextStatement() 的主题的所有语句的引用。在此示例中:

“http://www.pearltrees.com/dcow/pearltrees-videos/id5296268#rootPearl”

“http://www.pearltrees.com/dcow/pearltrees-videos/id5296268#pearl46838293”

我的目标是获取每个元素的内容,包括其rightPos和leftPos,以便我可以重建树。

最佳答案

您可以按如下方式简化代码:

mRootProp = mModel.createProperty(Pearltree.RDF.PearlTreeNS, "rootTree");
Resource root = mModel.listResourcesWithProperty( mRootProp ).next();

这假设您知道每个模型只有一个根。如果情况并非如此,请相应地修改代码。

关于java - 如何获取代表具有特定 [property,object] 对的对象的 RDF 资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11196754/

相关文章:

validation - 如何使用 RDF 模式验证 RDF

java - 投影中的变量 'x' 不存在于 GROUP BY 中

java - 我如何衡量我的 Web 应用程序已完全取消部署在容器中?

java - 此方法包含对常量 null 的已知非空值的冗余检查

java - Liferay 中 Alfresco portlet 的 Portlet 暂时不可用消息

xml - CRM 2011 高级查找 - 获取 XML - 为修改后的查找导入

python - 带有 IRI 的 JSON-LD @id 导致空白节点

Java Streaming JDBC 结果集从表中读取行,保持结果集打开并且无需再次触发 SQL

xml - 如何确保 XML 模式中的元素值唯一?

java - JAXB 解码返回非根元素