Как создать индивида определенного класса из запроса 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 .
}
Другие вопросы по тегам