1

我已经建立了一个合金程序来检查系统的一些规则。现在我想检查真实系统中的规则。为此,我拥有来自真实系统的所有数据。例如,

我的合金工具检查了两个用户之间寻找共同朋友的规则。我可以通过在合金中给出一些简单的规则来做到这一点。现在,我想在一个大数据集中对其进行测试。假设,我有 facebook 朋友数据集。现在,我如何将我的 facebook 数据集提供给使用 Alloy 查找 Facebook 用户的共同朋友的合金。

是否可以编写一个 javascript/python/java 的包装器来在我的合金分析器和 json 数据之间建立链接?

4

2 回答 2

1

恕我直言,Alloy 不适合对大型数据集进行分析。

话虽如此,我相信您可以使用aRby,这是 Alloy 在 Ruby 中的嵌入,它不仅允许您编写数据集的导入脚本,还可以指定所谓的“部分实例”,即部分填充的实例您的数据,可以通过分析完成。

如果您更喜欢使用 Java,您可以直接使用Alloy API(将 Alloy jar 添加到您的项目构建路径中)。

在开始之前,请确保可伸缩性不是关键要求,因为这两种方法都肯定需要您在其实施中投入一定的工作量和奉献精神。

于 2019-05-06T09:46:42.193 回答
0

我一直在研究 Alloy 上的适当 API,它目前在Github 上的 PR 中。有了这个 API,使用 Alloy 作为验证者就很容易了。

与 Loïc 的答案相反,我认为您在相对较大的数据集上运行它很容易,因为慢速部分是试图找到实例的求解器。如果您创建一个实例,很容易验证它是否符合所有规则。

显然,您也可以使用现有的 API,但新设计的 API 是为您和其他目的而设计的。显然,这是正在进行的工作,但有问题时您可以随时与我联系。

于 2019-05-06T12:35:44.390 回答