函数 "org.apache.jena.rdf.model.hasProperty" 无效

The function "org.apache.jena.rdf.model.hasProperty" didn't work

我最近在学习jena。
我试着理解他们的教程。 (https://jena.apache.org/tutorials/rdf_api.html#ch-Navigating-a-Model)。
当我编译 Tutorial06 时,(https://github.com/apache/jena/blob/main/jena-core/src-examples/jena/examples/rdf/Tutorial06.java)
我不小心在第 32 行的 URI 末尾放了一个“/”:
static final String johnSmithURI = "http://somewhere/JohnSmith/";
(应该是:static final String johnSmithURI = "http://somewhere/JohnSmith";
所以我得到了例外。
我想用“org.apache.jena.rdf.model.hasProperty”来设置条件,
但它没有用。

可能有两种情况:

  1. 如果我直接复制粘贴“vcard.hasProperty​(VCARD.Family)
    控制台将显示“方法 has属性 (属性) 未定义资源类型”
    很奇怪
    这个方法在他们的文档中定义
    https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/rdf/model/Resource.html#hasProperty(org.apache.jena.rdf.model.Property)

  2. 但是,如果我在输入“.”后选择功能。喜欢图片
    enter image description here
    它不会显示错误
    但是 Boolean 的值似乎很奇怪
    我在 Tutorial06 的第 51 行添加了这些代码:
    System.out.println("vcard.hasProperty(VCARD.FN) : " + vcard.hasProperty(VCARD.FN)) ; System.out.println("vcard.hasProperty(VCARD.N) : " + vcard.hasProperty(VCARD.N)) ; System.out.println("vcard.hasProperty(VCARD.Family) : " + vcard.hasProperty(VCARD.Family)) ; System.out.println("vcard.hasProperty(VCARD.Given) : " + vcard.hasProperty(VCARD.Given)) ; System.out.println("vcard.hasProperty(VCARD.EMAIL) : " + vcard.hasProperty(VCARD.EMAIL)) ;

    结果:
    vcard.hasProperty(VCARD.FN) : true
    vcard.hasProperty(VCARD.N) : true
    vcard.hasProperty(VCARD.Family) : false
    vcard.hasProperty(VCARD.Given) : false
    vcard.hasProperty(VCARD.EMAIL) : false

rdf 文件如下所示:
<rdf:Description rdf:about="http://somewhere/JohnSmith">
<vCard:FN>John Smith</vCard:FN>
<vCard:N rdf:parseType="Resource">
<vCard:Family>Smith</vCard:Family>
<vCard:Given>John</vCard:Given>
</vCard:N>
</rdf:Description>

如果有人能给我一些关于这些情况的想法,我将不胜感激。
我使用带有 jdk-11 和 jena-core -3.2.0.jar 的 Eclipse 作为我的库

由于<vCard:N rdf:parseType="Resource">,“vCard:Family”的主题不同。

RDF 结构在 Turtle 或 N-Triples 中更清晰:

@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix vCard: <http://www.w3.org/2001/vcard-rdf/3.0#> .

<http://somewhere/JohnSmith>
        vCard:FN  "John Smith" ;
        vCard:N   [ vCard:Family  "Smith" ;
                    vCard:Given   "John"
                  ] .

或等同于:

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix vCard: <http://www.w3.org/2001/vcard-rdf/3.0#> .

<http://somewhere/JohnSmith>
        vCard:FN  "John Smith" ;
        vCard:N   _:b0 .

_:b0    vCard:Family  "Smith" ;
        vCard:Given   "John" .

或在 N 元组中:

<http://somewhere/JohnSmith> <http://www.w3.org/2001/vcard-rdf/3.0#FN> "John Smith" .
<http://somewhere/JohnSmith> <http://www.w3.org/2001/vcard-rdf/3.0#N> _:B99dd1c9aX2D9045X2D4719X2D8d7eX2D9f4043b9b757 .
_:B99dd1c9aX2D9045X2D4719X2D8d7eX2D9f4043b9b757 <http://www.w3.org/2001/vcard-rdf/3.0#Family> "Smith" .
_:B99dd1c9aX2D9045X2D4719X2D8d7eX2D9f4043b9b757 <http://www.w3.org/2001/vcard-rdf/3.0#Given> "John" .