Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java listSubjectsWithProperty(属性p,字符串o)不列出具有相同字符串值的文本类型的资源_Java_Jena - Fatal编程技术网

Java listSubjectsWithProperty(属性p,字符串o)不列出具有相同字符串值的文本类型的资源

Java listSubjectsWithProperty(属性p,字符串o)不列出具有相同字符串值的文本类型的资源,java,jena,Java,Jena,我有一个这样的模型- 密码 拉维 古玛 辛格 visittoravi@gmail.com 1989-06-14T18:30:00Z 男性 2. 现在如果我说- model.listSubjectsWithProperty(VCARD.EMAIL,"visittoravi@gmail.com"); 它没有给我任何资源,我理解的问题可能是因为VCARD.EMAIL属性有一个类型化的文本,我这样添加- resource.addLiteral(VCARD.EMAIL, model.createTy

我有一个这样的模型-


密码
拉维
古玛
辛格
visittoravi@gmail.com
1989-06-14T18:30:00Z
男性
2.
现在如果我说-

model.listSubjectsWithProperty(VCARD.EMAIL,"visittoravi@gmail.com");
它没有给我任何资源,我理解的问题可能是因为VCARD.EMAIL属性有一个类型化的文本,我这样添加-

resource.addLiteral(VCARD.EMAIL, model.createTypedLiteral("visittoravi@gmail.com"));
这个问题真的是因为它是一个类型化的文本或其他东西。
如何列出具有类型化文字的属性的资源。

如果属性的值是类型化文字,例如,因为您添加了以下内容:

resource.addLiteral(
VCARD.EMAIL,
model.createTypedLiteral(“visittoravi@gmail.com"));
然后,您需要使用以下类型的文本检索它:

model.listSubjectsWithProperty(
VCARD.EMAIL,
model.createTypedLiteral(“visittoravi@gmail.com"));
下面是一个完整的工作示例,其中包含一些最少的数据:

import java.io.ByteArrayInputStream;
导入com.hp.hpl.jena.rdf.model.model;
导入com.hp.hpl.jena.rdf.model.ModelFactory;
导入com.hp.hpl.jena.rdf.model.ResIterator;
导入com.hp.hpl.jena.词汇表.VCARD;
公共类属性SubjectsExample{
静态字符串内容=“\n”+
“@前缀xsd:。\n”+
“@前缀vcard:。\n”+
“@前缀:\n”+
“\n”+
“:x vcard:EMAIL\”visittoravi@gmail.com\“^xsd:字符串。\n”+
"";
公共静态void main(字符串[]args){
模型模型=ModelFactory.createDefaultModel();
read(新的ByteArrayInputStream(CONTENT.getBytes()),null,“TTL”);
ResIterator subjects=model.listSubjectsWithProperty(
VCARD.EMAIL,
model.createTypedLiteral(“visittoravi@gmail.com" ));
while(subjects.hasNext()){
System.out.println(subjects.next());
}
}
}
输出:

http://stackoverflow.com/q/23161586/1281433/x

如果属性的值是类型化文字,例如,因为您添加了以下内容:

resource.addLiteral(
VCARD.EMAIL,
model.createTypedLiteral(“visittoravi@gmail.com"));
然后,您需要使用以下类型的文本检索它:

model.listSubjectsWithProperty(
VCARD.EMAIL,
model.createTypedLiteral(“visittoravi@gmail.com"));
下面是一个完整的工作示例,其中包含一些最少的数据:

import java.io.ByteArrayInputStream;
导入com.hp.hpl.jena.rdf.model.model;
导入com.hp.hpl.jena.rdf.model.ModelFactory;
导入com.hp.hpl.jena.rdf.model.ResIterator;
导入com.hp.hpl.jena.词汇表.VCARD;
公共类属性SubjectsExample{
静态字符串内容=“\n”+
“@前缀xsd:。\n”+
“@前缀vcard:。\n”+
“@前缀:\n”+
“\n”+
“:x vcard:EMAIL\”visittoravi@gmail.com\“^xsd:字符串。\n”+
"";
公共静态void main(字符串[]args){
模型模型=ModelFactory.createDefaultModel();
read(新的ByteArrayInputStream(CONTENT.getBytes()),null,“TTL”);
ResIterator subjects=model.listSubjectsWithProperty(
VCARD.EMAIL,
model.createTypedLiteral(“visittoravi@gmail.com" ));
while(subjects.hasNext()){
System.out.println(subjects.next());
}
}
}
输出:

http://stackoverflow.com/q/23161586/1281433/x

不太清楚您所说的“Model.listSubjectsWithProperty不适用于类型化文字”是什么意思。如果您在某处添加了类型化文字,则需要为listSubjectsWithProperty提供一个类型化文字,而不是普通文字。是的,很抱歉给您带来不便,我已经更新了标题,希望现在已经清楚了。谢谢,是的,编辑使它更清晰。在RDF中,文本可以是:(i)类型化的文本,由词汇形式和数据类型组成;(ii)带有语言标记的文字(字符串和语言标记);或者(iii)普通的文字,只是有一个词汇形式。RDF的下一个版本稍微简化了这一点。我们还不清楚“Model.listSubjectsWithProperty不适用于类型化文字”是什么意思。如果您在某处添加了类型化文字,则需要为listSubjectsWithProperty提供一个类型化文字,而不是普通文字。是的,很抱歉给您带来不便,我已经更新了标题,希望现在已经清楚了。谢谢,是的,编辑使它更清晰。在RDF中,文本可以是:(i)类型化的文本,由词汇形式和数据类型组成;(ii)带有语言标记的文字(字符串和语言标记);或者(iii)普通的文字,只是有一个词汇形式。RDF的下一个版本稍微简化了这一点。是的,它确实有效。非常感谢你@Joshua TaylorYes它确实有效。非常感谢你@Joshua Taylor