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