Я новичок в SPARQL и пытаюсь выбрать два или более свойства данных из объекта.
У меня есть Artist сущность, которая имеет два свойства данных ( id и name ). Я пытаюсь получить такой результат:
id Name
0 Artist 1
1 Artist 2
Но то, что я получаю, это:
id Name
0 Artist 1
0 Artist 2
1 Artist 1
1 Artist 2
Вот мой SPARQL-запрос:
PREFIX wits: <http://wits.org/song/>
SELECT ?name, ?id
FROM <http://wits.org/song>
WHERE
{
<http://wits.org/song/Artist> wits:Name ?name .
<http://wits.org/song/Artist> wits:ID ?id
}
Вот реализация RDF класса Artist:
<!ENTITY www "http://www.wits.org/" >
<owl:Class rdf:about="&www;Artist">
<rdfs:subClassOf rdf:resource="&owl;Thing"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&www;song#ID"/>
<owl:allValuesFrom rdf:resource="&xsd;unsignedInt"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&www;song#Name"/>
<owl:qualifiedCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:qualifiedCardinality>
<owl:onDataRange rdf:resource="&xsd;string"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
Это команда INSERT, которая была выполнена ранее:
PREFIX wits: <http://wits.org/song/>
INSERT DATA INTO <http://wits.org/song> {
wits:Artist wits:Name "Artist 2"
wits:ID 1 .
}
Что я делаю не так?
Любая помощь приветствуется.
125125