gpt4 book ai didi

java - 来自 RCC(8) 规范或类似规范的维恩图生成软件

转载 作者:IT老高 更新时间:2023-10-28 20:29:24 26 4
gpt4 key购买 nike

请注意:虽然赏金不再可用,但我仍然希望任何对此问题有答案的人提供贡献;我还在看,等着看有没有更好的答案。谢谢,请继续阅读...


我正在寻找一种方法来转换任意一组 RCC类似空间关系(或类似的),将约束网络描述为类似维恩图的图像。比如RCC8中表示的约束网络:

W {EC} Y, X {TPP} Y, Z {NTPP} Y, Z {PO} X .

..可以用下图表示,带有圆形或方形区域:

Example 1: Venn diagram representing constraint network using circular regions. ..或者:Venn diagram representing constraint network using square regions.

是否有人知道至少可以通过类似 RCC 的约束规范以编程方式(通过 API)生成此类图表的软件?

我知道这样的约束网络可能未指定,从而排除了与任何单个此类图表的匹配(可能存在许多解决方案)。理想情况下,我想通过能够生成可能的替代方案来解决这个问题,但现在可以不采取任何措施(并引发错误)。

为了清楚起见,在这个问题中,我特别要求能够根据 图表布局 的软件>声明方式。我不关心将 RCC 的 DSL 转换为其他语法的工具,也不对特定的图像序列化格式或方法感兴趣。我希望找到一种算法来处理最多六个唯一集合的任意数量的约束。

注意事项: Graphviz (正如下面提到的@vickirk)是一个图表布局软件包的例子,它类似于我所追求的。不幸的是,Graphviz 本身似乎无法解决这个问题(但我很高兴被证明是错误的!)。看来这是一个非常难的问题。

最佳答案

谁需要后端?这是一个使用 HTML/CSS/JS 的工作原型(prototype):

http://jsfiddle.net/RuvE6/6/

只需在字段中输入 RCC8 代码语法并点击按钮!

HTML/CSS/JS RCC8 Diagram Builder

目前的一些限制:

  • 不处理歧义
  • 如果语法关闭,则没有错误处理
  • 在某些有效情况下可能会中断(我没有进行太多测试)
  • 没有实现任何反例(还没有?)

编辑:工作原理

基本上,这些图表显示了两个家庭关系:

  • A 包含 B
  • A B相邻。

还有子类型或变体,例如:

  • A 包含 BB A相切
  • A B相邻且A 重叠到B

这两个基本概念都中融入了 HTML 渲染世界:

  • 包含 --> 嵌套的 HTML 元素:<div class="region"><div class="region"></div></div>
  • 邻接 --> 同级 HTML 元素:<div class="region"></div><div class="region"></div>

我使用特殊类来处理变化,这些类(相当粗略地) Swing 边距以完成所需的布局:

  • 遏制,带切线: <div class="region"><div class="region touches-parent"></div></div> ( child 有负的上边距触摸 parent )
  • 相邻,有重叠: <div class="ven"><div class="region"></div><div class="region touches-parent"></div></div> (添加了一个包装器来触发子元素上的 CSS - 第二个元素的左边距与第一个元素重叠。)

在 jsfiddle 中注释掉了一些静态标记,显示了我开始使用的结构。

为了完成功能循环,有一段代码将 RCC8 语句解析为 A {XX} B 部分,并尝试为每个部分呈现必要的标记。它会检查是否不重复区域。之后我还会将所有 sibling 的高度设置为相同,以确保它们正确重叠和/或邻接。

这段代码实际上只是一个开始,它有它的自负。它基本上是一个 线性 图,这意味着它不处理例如有复杂邻接关系的情况,例如:

A {EC} B, C {EC} B, D {EC} B

这些可能会被智能 JS 解析和更复杂的 CSS 处理,但可能会很快进入更多强制导向布局的领域(例如,smarter bubble chart)。

关于java - 来自 RCC(8) 规范或类似规范的维恩图生成软件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5371869/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com