目前我正在做一个基于本体的信息检索项目。我已经使用本体编辑器 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>
所以当我搜索贝丝时,我应该得到与之相关的评论,即。贝丝是亚当的女儿。她是查克的妹妹。她是多蒂和爱德华的母亲。她是 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();
...
}