Я новичок в Semantic Web и SPARQL. Я делаю RDFS концерта. В нем есть такие записи песен, как:
con:song04
rdfs:Class con:Repertoire;
rdfs:label "Deewani Mastani";
con:performedBy con:artist02.
con:performedBy con:artist05.
Я пытаюсь получить список песен и их количество, если они исполняются одним и тем же исполнителем. Я пробовал некоторые учебники из stackoverflow, но не выполняю свою задачу.
Запрос, который я использую, может быть совершенно неправильным, он был бы очень полезен в обучении, если бы кто-нибудь мог помочь мне в этом аспекте. Я использую 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
(это свойство, которое выражает отношения экземпляр-класс). - person Jeen Broekstra   schedule 23.11.2015con:song04 ref:type con:Repertoire
? Пожалуйста, уточните, спасибо - person Parash Nath Mishra   schedule 24.11.2015rdf
, а неref
). - person Jeen Broekstra   schedule 24.11.2015