OWL2 XML 到 AnyLogic ALP

Mar*_* K. 2 xml xslt owl anylogic

我目前正在从事一个项目,该项目需要某些描述现实生活场景的 OWL2 XML 文件被“转换”为 AnyLogic 模型的 ALP(XML 类型)格式,以便它们可以在应用程序中打开。这种转换最终应该通过另一个应用程序自动发生。

这些情景描述了荷兰某些地区的旅游流量。这些场景以 RDF-OWL2 格式在本地 Semantic MediaWiki 中定义和导出。在 AnyLogic 中,我们已经设法创建了我们想要的仿真模型和场景。现在,我们希望将这些场景从 MediaWiki 直接“转换”到 AnyLogic,以便无需接触 AnyLogic 应用程序即可创建仿真模型。参数的类型、类、代理等我们都已经定义好了,所以这只是“语义维基页面A中的旅游区应该变成AnyLogic中的旅游区A”的一个例子。

例如,零件输入 RDF 文件可能如下所示:

<genericTrainStation>
   <name>Station Amsterdam</name>
   <size>20km</size>
   ....    
</genericTrainStation>
Run Code Online (Sandbox Code Playgroud)

在 AnyLogic 中,如果我要在应用程序中创建相同的站点,.alp 文件中的输出将类似于...

<EmbeddedObject>
 <stuffIrrelevant></stuffIrrelevant>
 <stuffIrrelevant2></stuffIrrelevant2>
 <name>Station Amsterdam></name>
 <size>20km</size>
Run Code Online (Sandbox Code Playgroud)

问题是是否可以通过某种方式使用 RDF 补充或替换 AnyLogic ALP 文件中的某些值,直接在输入和输出之间进行转换。

到目前为止,我有两个想法:

  • 使用 XSLT 尝试执行翻译

  • 使用 AnyLogic ALP 格式作为基础,并围绕执行翻译构建编译器

我一直在寻找任何与操作 ALP AnyLogic 格式有关的资源,但无济于事。我通常正在寻求关于这两个想法的总体合理性的帮助,以及我可以在我的任务中使用的最终资源。

小智 5

您可以使用 XML 文件来创建 AnyLogic 模型,但您不想通过直接编辑 alp 文件来创建。相反,找到一个 Java 库来读取 XML 文件,并在您的启动代码中使用源 XML 文件查找原因。然后,您可以在模型中动态实例化您想要的任何对象 - 墙壁、车站、延迟等。

如果你只是简单地修改了 alp 文件,那将迫使人们必须打开 AnyLogic,因为 alp 文件是源代码,而不是编译后的模型。如果您在初始化时实例化您的对象,那么编译后的 AnyLogic 模型可以被命令行或其他应用程序调用(阅读有关基于服务器的应用程序上的 AnyLogic 模型的最终用户协议,并在需要时与他们联系以进一步讨论)。

此外,alp 文件不是为直接编辑而设计的(尽管我在通过源代码管理合并版本时不时这样做了)。鉴于您正在查看预期用途之外的内容,新版本的 AnyLogic 可能无法向后兼容您正在尝试做的事情。

我发现动态构建空间标记项可能比基本对象更麻烦,所以准备在那里花一些时间。您还需要准备好投入时间来捕获错误的输入。由于您要切换到构建模型的文件中,因此您需要确保文件中没有会导致模型崩溃或违反基本假设的项目。