Как объединить свойства данных в OWL?
Скажи, что у меня есть:
- Property1 не является обязательным
- Property2, который всегда определен
Я хочу определить TrueProperty, который равен:
- Property1, если Property1 присутствует
- 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 }
}
}