Apache Jenaに、プロパティを持たない現在のモデルからすべてのリソースを削除する方法はありますか?
特定のトリプルを削除する方法だけを見つけましたが、リソースを反復したり、それらが持っているプロパティの量をチェックしたりするようなものは見つかりませんでした。
存在する必要がないので存在しません。RDFデータモデルは、主語とオブジェクトがイエナ用語のリソースにマップされ、述語がプロパティにマップされるトリプルに基づくグラフを記述します。
プロパティのないリソースを持つことはできないため、そのようなリソースを削除するメソッドが存在する必要はありません。
リソースを反復処理するには、listSubjects()
andlistObjects()
メソッドを試してください
特定のリソースに関連付けられているプロパティの数を取得するには、listStatements()
メソッドを使用してを取得し、そのメソッドStmtIterator
によって返されるステートメントをカウントします。
//Assuming you have a Model in variable model
//Assuming you already have some Resource in variable res
StmtIterator stmts = model.listStatements(res, null, null);
int count = 0;
while (stmts.hasNext())
{
count++;
stmts.next();
}
さまざまなもの(たとえば、各リソースのプロパティの数)を一度にカウントしたい場合は、代わりにSPARQLクエリを使用することをお勧めします。
SELECT ?s (COUNT(?p) AS ?NumProperties)
WHERE { ?s ?p ?o } GROUP BY ?s
SPARQLクエリを実行する方法については、ドキュメントを参照してください。