好的,澄清一下,我有一个 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,以便我可以重建树。