首页 文章

OWL2 XML到AnyLogic ALP

提问于
浏览
0

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

这些情景描述了荷兰某些地区的旅游流量 . 这些场景在RDF-OWL2格式的本地Semantic 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格式的资源,我都看得很远,但无济于事 . 我一般都在寻求关于这两个想法的总体合理性的帮助,以及我可以在我的任务中使用的最终资源 .

1 回答

  • 3

    您可以使用XML文件创建AnyLogic模型,但您不希望通过直接编辑alp文件来执行此操作 . 相反,找到一个java库,它使用源XML文件读取XML文件和启动代码原因 . 然后,您可以动态地实例化模型中所需的任何对象 - 墙,站,延迟等 .

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

    此外,alp文件不是为直接编辑而设计的(尽管我通过源代码控制合并版本时不时这样做) . 鉴于您正在寻找超出预期用途的东西,AnyLogic的新版本可能不会向后兼容您要执行的操作 .

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

相关问题