2

我有一个应用程序,它接收许多表征 3 维空间和时间过程的数据。然后,它过滤这些数据并创建操作,然后将这些操作发送到执行操作的进程。冲洗并重复。

目前,我有一组自定义过滤器,可以执行很多复杂的空间/时间计算。

很多时候,当我与公司中的个人讨论我的系统时,他们会问我是否使用了规则引擎。

我还没有找到一个能够很好地在时间和空间上进行推理的规则引擎。(例如:两个 3D 实体何时接近?3D 实体 A 是否曾经包含在 3D 区域 B 中?如果实体 C 靠近实体 D,但相对于 C 向后,则执行操作 D。)

我过去看过 Drools、Cyc、Jess(比如 3-4 年前)。是时候重新审视最先进的技术了。有什么建议么?您知道的任何标准都支持这种推理吗?任何事实上的标准?有什么应用吗?

谢谢!

4

3 回答 3

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# 等的网络拓扑套件)也是如此……

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

于 2010-03-20T02:07:26.213 回答
1

前提 - 请记住,基于 SQL 的1 DBMS 是一个(功能强大的)推理引擎,从 SQL 和 Prolog 之间的这些比较可以看出:

为了专门解决您的时空应用程序,本书将有助于:

也就是说,结合区间和关系理论可以有效地推理时空问题(参见5.2 区间的应用)。

当然,如果您的基于 SQL 的 DBMS(尚未)配备间隔(和其他)运算符,您将需要适当地扩展它(通过存储过程和/或用户定义的函数 - UDF)。

更新:浏览timemirror 评论中指出的论文(Towards a 3D Spatial Query Language for Building Information Models),他们基本上做了我上面提到的事情:

(最后一页)

实施概念

抽象类型系统在查询语言中的实现将在查询语言 SQL 的基础上进行,SQL 是对象关系数据库领域广泛建立的标准。国际标准 SQL:1999 扩展了关系模型以包括面向对象的方面,例如使用集成方法定义复杂抽象数据类型的可能性。

我不同意“对象关系数据库”术语(因为这里离题),但我认为其余的都是相关的。


更新:上面引用的书中关于 3D 和区间理论的引用:

注意:到目前为止讨论的所有间隔都可以被认为是一维的。但是,我们可能希望将两个一维区间组合成一个二维区间。例如,地面的矩形图可能被认为是一个二维区间,因为根据定义,它是一个具有长度和宽度的对象,每个对象基本上都是沿某个轴测量的一维区间。当然,我们可以将这个想法扩展到任意数量的维度. 例如,一座(相当简单!)建筑物可能被视为一个三维区间:它是一个具有长度、宽度和高度的对象,或者换句话说是一个长方体。(更现实地,一座建筑物可能被视为一组以各种方式重叠的几个这样的长方体。)等等。然而,在接下来的内容中,我们将把注意力专门限制在一维区间上,除非有相反的明确陈述,并且为了简单起见,我们将省略“一维”限定词。

笔记

  1. 我写的是基于 SQL而不是关系的,因为有一些方法可以使用完全偏离关系理论的 DBMS。
于 2010-03-23T02:46:19.310 回答
1

在http://www.objectfx.com/查看 SpatialRules 。它是用于 2D 和 3D 的地理空间复杂事件处理器。

于 2011-04-01T21:55:38.313 回答