我有一个应用程序,它接收许多表征三维空间和时间过程的基准。然后,它会过滤这些基准并创建操作,然后将这些操作发送到执行操作的进程。冲洗并重复。
目前,我有一系列自定义过滤器,可执行大量复杂的空间/时间计算。
当我向公司中的个人讨论我的系统时,他们多次询问我是否使用规则引擎。
我还没有找到一个能够在时间和空间上很好地推理的规则引擎。 (例如:两个3D实体何时关闭?3D实体A是否包含在3D区域B中?如果实体C靠近实体D但是相对于C向后定向,则执行动作D.)
我过去曾看过Drools,Cyc,Jess(比如3 - 4年前)。是时候重新审视现有技术了。有什么建议?您知道哪种标准支持这种推理?任何事实上的标准?任何申请?
谢谢!
答案 0 :(得分:1)
这是空间推理......一些模型,但9DE-IM现在已被OGC接受,并在PostGIS和其他编程工具中实现。
PostGIS实现了一个基于维度扩展的9交叉模型的空间推理引擎... 9DE-IM ..
http://postgis.refractions.net/documentation/manual-svn/ch04.html#DE-9IM 检查第4.3.6.1节。理论...
Java拓扑套件(以及C#的Net拓扑套件等)也是如此......
http://docs.codehaus.org/display/GEOTDOC/Point+Set+Theory+and+the+DE-9IM+Matrix
特别是检查geometry.relate的东西......比如
boolean isRelated = geometry.relate(geometry2,“T * T *** T **”)
您可以测试关系,或根据它们过滤数据。 与点,线,多边形等一起使用......
这可能有助于暂时的事情......
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.87.4643&rep=rep1&type=pdf
答案 1 :(得分:1)
前提 - 请记住,基于SQL的 1 DBMS是一个(非常强大的)推理引擎,从SQL和Prolog之间的这些比较中可以看出:
为了专门针对您的时空应用,本书将有所帮助:
也就是说,结合区间和关系理论可以有效地推理出时空问题(见5.2 Applications of Intervals)。
当然,如果基于SQL的DBMS(尚未)配备间隔(和其他)运算符,则需要对其进行适当扩展(通过存储过程和/或用户定义)函数 - UDF)。
更新:浏览论文指出in comments by timemirror(Towards a 3D Spatial Query Language for Building Information Models)他们基本上完成了我上面提到的内容:
(最后一页)
实施概念
摘要的实施 将系统类型转换为查询语言即可 在查询的基础上执行 语言SQL,这是一个广泛的 建立了该领域的标准 对象关系数据库。该 国际标准SQL:1999 将关系模型扩展为 包括面向对象的方面 作为定义复杂的可能性 具有集成的抽象数据类型 方法
我不同意“对象 - 关系数据库”这个术语(原因在于偏离主题),但我认为其余部分是相关的。
更新:从以上引用的书中引用3D和区间理论:
注意:所有讨论的时间间隔 到目前为止可以被认为是 一维的。但是,我们可能会 想要结合两个一维 间隔形成一个二维的 间隔。例如,一个矩形 地面情节可能会被认为是 一个二维的间隔,因为它 根据定义,是一个对象 长度和宽度,每个都是 基本上是一维间隔 沿某个轴测量。并且, 当然,我们可以将这个想法扩展到任何一个 维度数。例如,a (相当简单!)建筑可能是 被视为三维的 interval:这是一个有长度的对象, 宽度和高度,换句话说,a 长方体。 (更现实的是,a 建筑可能被视为一组 几个重叠的长方体 各种方式。)等等。在什么 然而,我们将限制我们的 注意一维间隔 特别是,禁止明确 相反的陈述,我们 将省略“一维” 简化限定符。
注意强>
答案 2 :(得分:1)
在http://www.objectfx.com/查看SpatialRules。它是2D和3D的地理空间复杂事件处理器。