2016-10-16 5 views
1

Я реализую свою модель онтологии на Protege. У меня есть класс Sensor, который имеет некоторые подклассы, например. подкласс Refrigerator. Если активирован Refrigerator-144, я хочу сохранить время активации. У меня есть свойство данных hasTime. Потому что, я не знаю время активации, я хочу быть NULL. Но, кажется, это не приемлемо для Protege, потому что после этого я не могу запустить Reasoner.NULL literal in Protege

:Refrigerator-144 a owl:NamedIndividual , :Refrigerator ; 
:hasTime ""^^xsd:dateTime . 
+0

Что означает «не может управлять рассудителем»? Как вы пытаетесь запустить рассудка? И какой разумник? – AKSW

+0

Я использовал FaCT ++ и HermiT, когда у меня есть буква NULL, если я нажимаю на аргумент, он не будет работать. У меня есть Protege 5 на mac – Ali

ответ

2

OWL не имеет значений NULL. Отсутствующее значение для свойства означает, что для этого человека нет утверждения с этим свойством. Создание литерала типа xsd:dateTime со значением "" приведет к неопровержимому утверждению, которое Protege должно помешать вам войти.

Не следует влиять на развратников, поскольку недопустимое утверждение не должно быть создано.

Однако, если тройка, как вы показываете, добавляется в онтологию, разумный был бы прав, отклонив ее как недействительную онтологию. Пустая строка не относится к пространству значений для xsd:dateTime.

+0

Мне интересно, почему Protege не отклоняет литерал, если используется OWL API. API OWL анализирует каждый OWLLiteral w.r.t. к лексическому пространству типа данных? – AKSW

+0

Нет, он только пытается проанализировать литералы для целых чисел, удвоений и т. П. - для использования конкретных типов данных и сохранения памяти. Неправильные литералы могут быть созданы (без этой способности некоторые из тестов соответствия рассуждений не будут выполняться - хотя это больше похоже на решение, ищущее проблему, чем на функцию) – Ignazio

+0

Да, с моей точки зрения, это скорее источник ошибка, чем функция. Вы знаете, одна из целей исследования - улучшить качество данных. Таким образом, можно было бы ожидать, что API-интерфейсы более низкого уровня, такие как OWL API, избегают как можно большего числа ошибок. Разве не лучше было бы использовать какую-то отдельную реализацию для этих тестов соответствия рассуждений? – AKSW