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

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

  • Property1 не является обязательным
  • Property2, который всегда определен

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

  1. Property1, если Property1 присутствует
  2. Property2 иначе

Property2 иначе

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

Спасибо

1 ответ

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

Тем не менее, есть несколько способов сделать то, что вы хотите сделать, без OWL. Запрос SPARQL CONSTRUCT с FILTER, qking аргумент, если вы можете вывести какое-то значение для Property1, и если нет, добавление Property2 программным способом. Например:

CONSTRUCT { ?s  <TruProperty>  ?o }
WHERE {
    { ?s  <Property1>  ?o }
   UNION
    { ?s  <Property2>  ?o
      FILTER NOT EXISTS { ?s  <Property1>  ?o }
    }
}
Другие вопросы по тегам