У меня есть онтология, для которой я пытаюсь описать запросы SPARQL.
Я использую IRI онтологии (http://www.semanticweb.org/chris/ontologies/2020/2/dis-coursework-ontology), отображаемый на вкладке Активная онтология, чтобы определить Значение PREFIX в запросе ниже:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> PREFIX chris: <http://www.semanticweb.org/chris/ontologies/2020/2/dis-coursework-ontology#> SELECT ?class ?activity WHERE { ?class chris:hasActivity ?activity }
Когда я запускаю это, ничего не возвращается, но когда я выводлю онтологию в формат RDF, я вижу случаи, если то, что я хочу получить:
<owl:Class rdf:about="http://www.semanticweb.org/chris/ontologies/2020/2/dis-coursework-ontology#SportsHallBooking"> <rdfs:subClassOf rdf:resource="http://www.semanticweb.org/chris/ontologies/2020/2/dis-coursework-ontology#BookableTimetable"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="http://www.semanticweb.org/chris/ontologies/2020/2/dis-coursework-ontology#hasActivity"/> <owl:someValuesFrom rdf:resource="http://www.semanticweb.org/chris/ontologies/2020/2/dis-coursework-ontology#Badminton"/> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="http://www.semanticweb.org/chris/ontologies/2020/2/dis-coursework-ontology#hasActivity"/> <owl:someValuesFrom rdf:resource="http://www.semanticweb.org/chris/ontologies/2020/2/dis-coursework-ontology#Football"/> </owl:Restriction> </rdfs:subClassOf> </owl:Class>
Так что я ожидаю, что результаты будут включать:
class | деятельность SportsHallBooking | Бадминтон SportsHallBooking | Футбол
Пока я ничего не получаю.
Благодарим Станислава за ответ.
select * { ?class rdfs:subClassOf [ owl:onProperty chris:hasActivity; owl:someValuesFrom ?activity ] }