Как получить значения свойств типа данных с помощью SPARQL - PullRequest
2 голосов
/ 08 июня 2010

Я создал несколько примеров онтологий в протеже. Согласно моей онтологии, есть класс с именем person, у которого есть подкласс под названием Student. Есть несколько учеников (john, paul, marry ...) Я определил некоторое свойство данных, называемое «электронная почта», и назначил им адреса электронной почты.

После запроса, который приводит всех людей в онтологию. Но я хочу получить каждого человека и его адрес электронной почты.

String queryStr =
    "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> "+
    "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>  "+
    "select   ?ind "+
    "where { "+
    "?ind  rdf:type <http://www.semanticweb.org/ontologies/2010/5/Ontology1275975684120.owl#Student> ;"+

"}\n ";

Вышеупомянутый запрос был протестирован на jena в IDE затмения.

любая идея ..?

Спасибо заранее!

Ответы [ 2 ]

8 голосов
/ 08 июня 2010

Чтобы получить адреса электронной почты, вам необходимо: 1) добавить для них переменную в строку SELECT и 2) связать эту переменную в шаблоне WHERE. И вы, вероятно, захотите добавить префикс для своей собственной онтологии, поскольку теперь вам нужно будет ссылаться на него дважды. Что-то вроде:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX my: <http://www.semanticweb.org/ontologies/2010/5/Ontology1275975684120.owl#>

SELECT ?ind ?email
WHERE {
  ?ind rdf:type my:Student .
  ?ind my:Email ?email
}
0 голосов
/ 05 марта 2018

Более компактный способ будет следующим:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX my: <http://www.semanticweb.org/ontologies/2010/5/Ontology1275975684120.owl#>

SELECT ?ind ?email 
WHERE { 
       ?ind rdf:type my:Student ;
            my:Email ?email .
     }
...