Как создать индивида определенного класса из запроса SPARQL с помощью Fuseki?
Я использую запрос данных вставки, чтобы создать человека таким образом
PREFIX d: <http://www.owl-ontologies.com/hecproject.owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
INSERT Data
{
d:new2 d:hasUniversityName "Namal" .
d:University a rdfs:Class .
}
Я предполагаю что d:University
говорит запрос, который создал человека new2
имеет тип университетского класса. Когда я выполняю запрос, он работает нормально и вставляет запись в набор данных, а когда я выполняю общий запрос, подобный этому
SELECT ?subject ?predicate ?object
WHERE {
?subject ?predicate ?object
}
тогда создается индивидуум, но когда я пытаюсь найти всех индивидуумов из класса Университет, я не нахожу его таким, каким он не был создан в классе Университет?
1 ответ
Вы не назначаете человека d:new2
к классу d:University
в вашем запросе INSERT. Весь ваш запрос делает это, чтобы добавить ровно две тройки
d:new2 d:hasUniversityName "Namal" .
d:University a rdfs:Class .
ни больше ни меньше.
На самом деле это зависит от вас до тройного
d:new2 rdf:type d:University .
что назначает d:new2
к классу d:University
:
PREFIX d: <http://www.owl-ontologies.com/hecproject.owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
INSERT Data {
d:new2 d:hasUniversityName "Namal" .
d:new2 rdf:type d:University .
d:University a rdfs:Class .
}