現在、私はオントロジーベースの情報検索に関するプロジェクトを行っています。オントロジーエディタProtegeを使用してベースオントロジーを作成し、family.owlなどのファイルを取得しました。基本的に検索機能を実行します。ユーザーが検索語を入力すると、オントロジー内の個人で検索されます。一致するものが見つかった場合は、その個人に関連付けられたコメントを印刷します。私はJena APIを使用してオントロジーを解析しました。これまでのところ、各リソースに関連付けられた主語、述語、オブジェクトを取得することに成功していますが、取得できません。コメントは各リソースに関連付けられています。family.owlの一部はこのように見えます
<!-- http://www.semanticweb.org/ontologies/2012/9/family.owl#Beth -->
<owl:Thing rdf:about="#Beth">
<rdfs:comment>Beth is the Daughter of Adam . She is the Sister of Chuck .
She is the Mother of Dotty & Edward . She is the Aunt of Fran & Greg.
</rdfs:comment>
<isChildOf rdf:resource="#Adam"/>
<isSiblingOf rdf:resource="#Chuck"/>
</owl:Thing>
したがって、Bethを検索すると、それに関連するコメントを取得する必要があります。つまり、BethはAdamの娘です。彼女はチャックの姉妹です。彼女はドッティ&エドワードの母です。彼女はFran&Gregの叔母です。主語、述語、目的語を取得するために使用したコードは次のとおりです。
StmtIterator iter=model.listStatements();
while(iter.hasNext())
{
Statement stmt=iter.nextStatement();
String subject=stmt.getSubject().toString;
String predicate=stmt.getPredicate().toString();
String object=stmt.getObject().toString();
...
}