Я новичок в Semantic Web и SPARQL. Я делаю RDFS концерта. Он имеет песню запись, как:Как использовать запрос SPARQL для получения поля и количества полей одновременно?
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' делает _not_ сказать, что песня 4 находится в классе« Репертуар ». Если это то, что вы хотите выразить, вместо этого вы должны использовать 'rdf: type' (это свойство, которое выражает отношения класса экземпляра). –
@JeenBroekstra: Вы хотите сказать, я должен сказать «con: song04 ref: type con: Repertoire' вместо этого? Прошу пояснить, спасибо –
Да, минус опечатка (это 'rdf', а не' ref'). –