0
我试图使用函数apf:strsplit来拆分数据类型属性的值。我寻找了一些例子,但是,在我的情况下fuseki返回一个错误。如何在Jena中使用apf:strsplit:fuseki
我的查询:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX dbo: <http://dbpedia.org/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX apf: <http://jena.hpl.hp.com/ARQ/property#>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
select ?s ?member
where{
?s a dbo:MusicalArtist .
?s dbp:hometown ?p .
{select ?member
where{
?member apf:strSplit(?p " ") .
}
}
}
结果:
Error 500: ?/p is not a literal node
Fuseki - version 2.3.1 (Build date: 2015-12-08T09:24:07+0000)
我的情况的呢?例如:
<http://example.com/resource/6>
rdf:type dbo:Actor ;
rdf:type dbo:MusicalArtist ;
rdf:type dbo:Person ;
rdf:type owl:NamedIndividual ;
dbo:bloodGroup "n"@en ;
dbo:spouse <http://example.com/resource/11> ;
dbo:spouseName "Angelina Jolie" ;
dbp:hometown "Dallas"^^xsd:string ;
foaf:name "Brad Pettitt" ;
.
<http://example.com/resource/17>
rdf:type dbo:MusicalArtist ;
rdf:type owl:NamedIndividual ;
dbp:hometown "El Paço"^^xsd:string ;
foaf:name "Harrison Ford" ;
.
当我变化p由 “其他文本”,它的工作原理和结果在:
1 <http://example.com/resource/6> "other"
2 <http://example.com/resource/6> "text"
3 <http://example.com/resource/3> "other"
4 <http://example.com/resource/3> "text"
我试过把str(?p),?p ^^ xsd:string?p ^^ xsd:literal但是没什么用。 我在网上看了一下,但我没有找到任何可以使用的东西。
有人有一些建议如何解决这个问题?我不知道:-(任何帮助将非常感激。在进步
感谢,
问候,
瓦莱里娅
我猜'dbp:hometown'的值并不总是一个文字。如果你从DBpedia获取数据,你应该知道'http:// dbpedia.org/property /'命名空间的属性没有输入,即对象和数据属性没有区别,因此,该值可以是一个URI和一个文字。 – AKSW
您是否需要使用子选择或者是什么原因?如果你使用'apf:strSplit(str(?p)“),会发生什么情况。 ' – AKSW
我认为在使用strSplit时有必要使用嵌套查询。我错了。 – ValQc