我是語義網和SPARQL的新手。我正在製作音樂會的RDFS。它有歌曲條目,如:如何使用SPARQL查詢同時獲取字段和字段數?
con:song04
rdfs:Class con:Repertoire;
rdfs:label "Deewani Mastani";
con:performedBy con:artist02.
con:performedBy con:artist05.
我想獲得的歌曲和他們的計數列表中,如果它們是由同一位藝術家進行。我一直在嘗試從一些教程從計算器,但不服務我的目的。
我正在使用的查詢可能是完全錯誤的,如果有人能夠幫助我解決這方面的問題,這對學習會非常有幫助。我正在使用Apache Jena Fuseki進行查詢。
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX co: <http://rhizomik.net/ontologies/copyrightonto.owl#>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
prefix con: <http://www.example.com/paras/concert#>
#Use SPARQL to count and list the songs that two artists share.
SELECT ?songs (COUNT(?artist) AS ?count)
WHERE
{
?s rdfs:label ?songs .
?s rdf:type con:Repertoire.
?s con:performedBy ?artist.
?artist rdf:type con:Artist .
filter(?count > 1)
}
這不是您的問題的答案,但重要的是:您正在使用資源'rdfs:Class'錯誤。這是一個類名,而不是一個屬性。三重'con:song04 rdfs:Class con:Repertoire'確實不會說第4首歌曲在「Repertoire」類中。如果這就是你想要表達的,你應該使用'rdf:type'來代替(這是表示實例級關係的屬性)。 –
@JeenBroekstra:你的意思是說,我應該說'con:song04 ref:type con:Repertoire'而不是?請澄清,謝謝 –
是的,減去錯字(它是'rdf',而不是'ref')。 –