选择哪种知识库/基于规则的推理引擎用于实时跑道入侵预防系统
我们正在设计一个项目,可以监听机场管制员和飞行员之间的对话,以防止跑道侵入(例如,一架飞机正在起飞,而另一架飞机正在穿越跑道)。我们的教授希望我们使用 Jena 作为知识库(或其他任何东西,但它应该是某种规则 -基于引擎)。推理并不是耶拿的主要内容,并且没有太多这方面的文档和示例。因此,我们需要一个引擎,可以从飞行员那里获取消息作为输入,并输出可能存在的入侵风险或消息协议中的任何其他错误。规则应该很容易编写,并且应该很容易为引擎提供实时数据。
我想象它是这样的:
- 飞行员发送一条消息,他降落在某个跑道上,系统会记住跑道很繁忙,任何人都不应穿越它
- 如果有人收到穿越这条跑道的指令,引擎应该触发一条规则 当飞行员发出一条消息说
- 他离开跑道并前往登机口时,系统会清理跑道并让其他飞机使用它。
那么 Jena、prolog 或任何其他规则引擎是否适合于此?我的意思是它适合,但是我们真的需要使用它吗?我问教授。如果我们能够保持跑道状态并根据我们收到的消息进行一些简单的检查,他说它不可扩展,我们需要知识库。有人可以给我关于该系统使用哪种方法的建议吗?如果你推荐kb,那么我们应该使用哪一个呢?该项目是用java编写的。
谢谢。
we are designing a project that would listen to dialog between airport controllers and pilots to prevent runway incursions (eg. one airplane is taking off while other is crossing the runway). Our professor wants us to use Jena for knowledge base (or anything else but it should be some sort of rule-based engine). Inference is not the main thing in Jena and there's not much documentation and examples of this. So we need an engine that would get messages from pilots as input and output possible risks of incursion or any other error in message protocol. It should be easy to write rules, and should be easy to provide engine with real time data.
I image it something like this:
- A pilot sends a message that he lands on some runway, the system remembers that the runway is busy and no one should cross it
- If someone is given an instruction to cross this runway, the engine should fire a rule that something is wrong
- When the pilot sends a message that he left the runway and goes to the gate, the system clears the runway and lets other planes to use it.
So is Jena, or prolog or any other rules engine suitable for this? I mean it is suitable, but do we really need to use it? I asked the prof. if we could just keep state of the runway and use some simple checks based on messages we receive and he said that it is not scalable and we need the knowledge base. Can someone give me any advise on which approach to use for this system? If you recommend k.b., then which one should we use? The project is written in java.
Thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我肯定会推荐 ILOG JRULES 以满足您的需求。我一直在使用 ILOG JRULES,它的性能和准确性给我留下了深刻的印象。
更新:那么我建议您也可以选择Drools检查Java 中的开源规则引擎
I would surely recommend ILOG JRULES for your needs. I have been using ILOG JRULES and am really impressed with its performance and accuracy.
Update: Then I would suggest to go for Drools also you might want to check Open Source Rule Engines in Java
几个同事非常喜欢开源 Drools。
A couple of colleagues at work really love the open source Drools.
您可以使用 jena 来实现此目的,但它主要是一个 rdf 工具包。如果您还没有使用 RDF,或者不熟悉它,那么我会看看其他地方。
你的案例很有趣,因为它听起来相当动态。前向链接推理器(如 Drools)可能不是最佳选择,因为更新事件将使推论无效。尝试一些类似序言的东西。
You could use jena for this, but it's primarily an rdf toolkit. If you're not already using RDF, or familiar with it, then I'd look elsewhere.
Your case is interesting in that it sounds fairly dynamic. Forward chaining reasoners (like Drools) might not be the best choice, since update events will invalidate the deductions. Try something prolog-ish.