Какую базу знаний / механизм вывода на основе правил выбрать для системы предотвращения вторжения на взлетно-посадочную полосу в режиме реального времени
-
18-09-2019 - |
Вопрос
мы разрабатываем проект, который будет прослушивать диалог между диспетчерами аэропорта и пилотами для предотвращения вторжений на взлетно-посадочную полосу (например.один самолет взлетает, в то время как другой пересекает взлетно-посадочную полосу).Наш профессор хочет, чтобы мы использовали Jena для базы знаний (или чего-либо еще, но это должен быть какой-то механизм, основанный на правилах).Вывод - это не главное в Jena, и документации и примеров по этому поводу не так много.Итак, нам нужен движок, который получал бы сообщения от пилотов в качестве входных данных и выводил возможные риски вторжения или любую другую ошибку в протоколе обмена сообщениями.Должно быть легко писать правила, и должно быть легко предоставлять движку данные в режиме реального времени.
Я представляю это примерно так:
- Пилот отправляет сообщение о том, что он приземляется на какую-то взлетно-посадочную полосу, система запоминает, что взлетно-посадочная полоса занята и никто не должен ее пересекать
- Если кому-то дается указание пересечь эту взлетно-посадочную полосу, двигатель должен выдать сигнал о том, что что-то не так
- Когда пилот отправляет сообщение о том, что он покинул взлетно-посадочную полосу и направляется к выходу на посадку, система очищает взлетно-посадочную полосу и позволяет другим самолетам использовать ее.
Итак, подходит ли для этого Jena, или prolog, или любой другой движок правил?Я имею в виду, что это подходит, но действительно ли нам нужно это использовать?Я спросил профессора.если бы мы могли просто сохранить состояние взлетно-посадочной полосы и использовать несколько простых проверок, основанных на сообщениях, которые мы получаем, и он сказал, что это не масштабируемо и нам нужна база знаний.Может кто-нибудь дать мне какой-нибудь совет о том, какой подход использовать для этой системы?Если вы рекомендуете k.b., то какой из них нам следует использовать?Проект написан на java.
Спасибо.
Решение
Вы могли бы использовать jena для этого, но это в первую очередь инструментарий rdf.Если вы еще не используете RDF или не знакомы с ним, то я бы поискал в другом месте.
Ваш случай интересен тем, что он звучит довольно динамично.Средства рассуждения с прямой цепочкой (например, Drools) могут быть не лучшим выбором, поскольку события обновления аннулируют выводы.Попробуйте что-нибудь прологистское.
Другие советы
Я бы, конечно, рекомендовал ИЛОГ МЛАДШИЙ для ваших нужд.Я использую ILOG JRULES и действительно впечатлен его производительностью и точностью.
Обновить: Тогда я бы предложил пойти на Пускает слюни также вы, возможно, захотите проверить Движки правил с открытым исходным кодом на Java
Пара коллег по работе действительно обожают открытый исходный код Пускает слюни.