函数 "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”来设置条件,
但它没有用。
可能有两种情况:
如果我直接复制粘贴“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)
但是,如果我在输入“.”后选择功能。喜欢图片
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" .
我最近在学习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”来设置条件,
但它没有用。
可能有两种情况:
如果我直接复制粘贴“
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)但是,如果我在输入“.”后选择功能。喜欢图片
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" .