Как объединить свойства данных в OWL?

Скажем, у меня есть:

  • Свойство1 является необязательным.
  • Свойство2, которое всегда определено

Я хочу определить TrueProperty, который равен:

  1. Свойство1, если присутствует Свойство1
  2. Свойство2 в противном случае

Свойство2 в противном случае

Могу ли я сделать это? Могу ли я сделать это в OWL?

Спасибо


person Alex J.    schedule 21.12.2012    source источник


Ответы (1)


Вы не можете сделать это в OWL. OWL не предназначен для того, чтобы говорить о том, что написано, он говорит об истинных вещах мира. Факты, которые явно не присутствуют в вашем наборе данных, МОГУТ быть правдой. Если вы пришлете мне резюме, в котором не укажете свой почтовый адрес, могу ли я сделать вывод, что вы бездомный?

Однако есть несколько способов делать то, что вы хотите, без OWL. Запрос SPARQL CONSTRUCT с ФИЛЬТРОМ, который проверяет, можете ли вы вывести какое-либо значение для Свойства1, а если нет, добавляете Свойство2 программным путем. Например:

CONSTRUCT { ?s  <TruProperty>  ?o }
WHERE {
    { ?s  <Property1>  ?o }
   UNION
    { ?s  <Property2>  ?o
      FILTER NOT EXISTS { ?s  <Property1>  ?o }
    }
}
person Antoine Zimmermann    schedule 21.12.2012