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

这些场景描述了荷兰某些地区的旅游流量。这些场景以RDF-OWL2格式在本地语义MediaWiki中定义并从中导出。在AnyLogic中,我们已经设法创建所需的仿真模型和方案。现在,我们想将这些场景直接从MediaWiki“翻译”到AnyLogic,以便创建仿真模型而无需接触AnyLogic应用程序。参数的类型,类,代理等都已经由我们定义,因此仅是“语义Wiki页面A中的旅游区域应转变为AnyLogic中的旅游区域A”的情况。

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

<genericTrainStation>
   <name>Station Amsterdam</name>
   <size>20km</size>
   ....
</genericTrainStation>

在AnyLogic中,如果要在应用程序中创建同一工作站,则.alp文件中的输出将类似于...
<EmbeddedObject>
 <stuffIrrelevant></stuffIrrelevant>
 <stuffIrrelevant2></stuffIrrelevant2>
 <name>Station Amsterdam></name>
 <size>20km</size>

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

到目前为止,我已经提出了两个想法:
  • 使用XSLT尝试执行翻译
  • 使用AnyLogic ALP格式作为基础,并构造一个执行
  • 转换的编译器

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

    最佳答案

    您可以使用XML文件来创建AnyLogic模型,但是您不想通过直接对alp文件进行编辑来做到这一点。相反,找到一个可以读取XML文件的Java库,并在您的启动代码中找到源XML文件。然后,您可以动态实例化模型中所需的任何对象-墙壁,桩号,延迟等。

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

    另外,alp文件也不适合直接编辑(尽管通过源代码控制合并版本时,我有时会这样做)。如果您正在寻找超出预期用途的东西,则AnyLogic的新版本可能与您尝试做的事情向后兼容。

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

    10-04 21:00