我们正在设计一个项目,该项目将听取机场管制员和飞行员之间的对话以防止跑道入侵(例如,一架飞机正在起飞,而其他飞机正在越过跑道).我们的教授希望我们将
Jena用于知识库(或其他任何东西,但它应该是某种基于规则的引擎).推理不是耶拿的主要内容,并没有太多的文档和例子.所以我们需要一个引擎来获取来自飞行员的消息作为输入和输出可能的入侵风险或消息协议中的任何其他错误.编写规则应该很容易,并且应该很容易为引擎提供实时数据.
我把它想像这样:
>一名飞行员发出一条消息说他落在某条跑道上,系统记得跑道很忙,没有人应该越过它
>如果有人给出了穿越这条跑道的指令,那么引擎应该发出错误的规则
>当飞行员发出一条消息说他离开跑道并进入大门时,系统会清除跑道并让其他飞机使用它.
那么Jena,或prolog或任何其他适合此规则的引擎?我的意思是它很合适,但我们真的需要使用它吗?我问教授.如果我们可以保持跑道的状态并根据我们收到的消息使用一些简单的检查,他说它不可扩展,我们需要知识库.有人可以给我任何关于这个系统使用方法的建议吗?如果你推荐k.b.,那么我们应该使用哪一个?该项目是用java编写的.
谢谢.
解决方法
你可以使用jena,但它主要是一个rdf工具包.如果你还没有使用过RDF,或者熟悉它,那么我会去别处看看.
你的情况很有趣,因为它听起来很有活力.正向链接reasoners(如Drools)可能不是最佳选择,因为更新事件将使推断无效.尝试一些prolog-ish.