わかりやすくするために、自然なカテゴリツリー構造(フォルダやファイルなど)でデータを記述した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>
...
ここで、私がやりたいのは、サブジェクトsit.nextStatement()のサブジェクトを持つすべてのステートメントへの参照を取得することです。この例では:
「http://www.pearltrees.com/dcow/pearltrees-videos/id5296268#rootPearl」
と
「http://www.pearltrees.com/dcow/pearltrees-videos/id5296268#pearl46838293」
私の目標は、rightPosとleftPosを含む各要素のコンテンツを取得して、ツリーを再構築できるようにすることです。