Я использую Protege 3.4, и я построил свою онтологию и расширил ее с помощью правил SWRL, используя встроенные модули SWRL и sqwrl. Правила классифицируют экземпляры класса онтологии; RHS - это утверждение класса экземпляра. Он успешно работает, но когда я меняю значения причин в LHS, реклассификация не выполняется, экземпляр утверждается в том же классе
Почему это происходит? Как переклассифицировать экземпляры?
пример: правила SWRL: 1. Сообщение (?m) hasInterest(?m,?i) hasCategory(?m,?c) sqwrl:makeset(?s1,?i) sqwrl:makeset(?s2,?c) sqwrl: пересечение (?s3,?s1,?s2) sqwrl:размер(?n,?s3) swrlb:больше чем(?n,0) -> ветчина(?m)
- Сообщение(?m) hasInterest(?m,?i) hasCategory(?m,?c) sqwrl:makeset(?s1,?i) sqwrl:makeset(?s2,?c) sqwrl:difference(?s3,?s1 ,?s2) sqwrl:size(?n,?s3) swrlb:greaterThan(?n,0) -> Спам(?m)
Итак, как только экземпляр сообщения классифицируется, например, как ветчина, всякий раз, когда я изменяю значения i или c, он всегда будет ветчиной.