Выберите все экземпляры из онтологии, которые имеют отношение к данному экземпляру - PullRequest
1 голос
/ 05 мая 2019

Я разработал онтологию о машинном обучении с использованием Protege. У меня есть следующие классы с их экземплярами:

  • Алгоритм: А1, А2
  • Метод обучения: M1, M2

Алгоритм может иметь has-learning-method свойство объекта для метода обучения.

Я хочу построить запрос, чтобы выбрать все методы обучения, назначенные для экземпляра A1.

Мне удалось создать запрос, который дает мне все экземпляры Алгоритма с соответствующим им LearningMethod.

PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX ml: <http://www.semanticweb.org/machine-learning-ontology#>


SELECT DISTINCT ?x0 ?x1 WHERE {
  ?x0 rdf:type ml:Algorithm.
  ?x1 rdf:type ml:LearningMethod.
  ?x0 ml:has-learning-method ?x1.
}

Дан ответ:

+---------+---------+
|    x0   |    x1   |
+---------+---------+
|    A1   |    M1   |
+---------+---------+
|    A2   |    M2   |
+---------+---------+

Как выбрать только методы обучения, связанные с А1? Есть ли какой-нибудь префикс, который я мог бы использовать?

Ожидаемый результат должен быть:

+---------+---------+
|    x0   |    x1   |
+---------+---------+
|    A1   |    M1   |
+---------+---------+
...