gpt4 book ai didi

Java - Jena API - 获取另一个类的属性

转载 作者:行者123 更新时间:2023-11-30 09:33:27 24 4
gpt4 key购买 nike

我正在使用 java 和 Jena API。我有一个 Marriage 类,它有 3 个对象属性,分别称为“hasHusband”、“Haswife”和“dateOfMarriage”。前两个与 Person 类相关联,该类具有名字、姓氏、出生日期等数据类型属性......

我想检索妻子的名字和丈夫的名字。你能解释一下我该怎么做吗?

这是我的 rdf 文件的相关部分:

(...)

<j.0:FAMmariage rdf:about=http://www.fam.com/FAM#BrunoCatherine>

<j.0:FAMaDateMariage>25/07/2011</j.0:FAMaDateMariage>

<j.0:FAMhasWife>
<rdf:Description rdf:about="http://www.fam.com/FAM#Catherine20/03/1982">
<j.0:FAMDateOfBirth>20/03/1980</j.0:FAMDateOfBirth>
<j.0:FAMHasName>Gomez</j.0:FAMHasName>
<j.0:FAMHasFirstName>Catherine</j.0:FAMHasFirstName>
</rdf:Description>
</j.0:FAMHasWife>

<j.0:FAMHusband>
<rdf:Description rdf:about="http://www.fam.com/FAM# Bruno15/06/1980 ">
<j.0:FAMaDateOfBirth>15/06/1980 </j.0:FAMDateOfBirth>
<j.0:FAMHasName>Jeandet </j.0:FAMHasName>
<j.0:FAMHasFirstName>Bruno</j.0:FAMHasFirstName>
</rdf:Description>
</j.0:FAMHusband>

</j.0:FAMmariage>
(...)

谢谢

已编辑通过下面的代码我可以获得 hasWife 对象属性。我应该添加什么来获取 firstName 数据类型属性?

//Object Property hasWife

StmtIterator iter = onto.model.listStatements(null,onto.hasWife,(RDFNode)null);

while (iter.hasNext())
{
Statement stmt = iter.nextStatement();
System.out.println(stmt.getObject().toString());
}

最佳答案

这就是SPARQL是为了。看看Jena's SPARQL Tutorial .

作为替代方案,您可以通过编程方式搜索模型,这在 Querying a Model 中有描述。 .例如,通过使用 listStatements(Subject, Predicate, Object),您可以在其中决定哪些参数应为 null

在您的情况下,您可以使用 listStatements(null, hasWifeProperty, null)listStatements(null, hasHusbandProperty, null) 并访问结果的相应对象。

关于Java - Jena API - 获取另一个类的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12182666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com