OWL2 XML 到 AnyLogic ALP
OWL2 XML to AnyLogic ALP
我目前正在开展一个项目,该项目需要某些描述现实生活场景的 OWL2 XML 文件 'translated' 到 ALP(XML 类型)格式AnyLogic 模型,因此它们可以在应用程序中打开。这种翻译最终应该通过另一个应用程序自动发生。
这些情景描述了荷兰某些地区的旅游流量。这些场景以 RDF-OWL2 格式在本地 Semantic MediaWiki 中定义并从中导出。在 AnyLogic 中,我们已经设法创建了我们想要的仿真模型和场景。现在,我们想直接 'translate' 这些场景从 MediaWiki 到 AnyLogic,这样就可以在不接触 AnyLogic 应用程序的情况下创建仿真模型。参数的类型,类,agents等我们都已经定义好了,所以都是"the tourism area in Semantic Wiki Page A should turn into the tourism area A in AnyLogic."
的情况
例如,部分输入 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 可能不会向后兼容您正在尝试做的事情。
我发现动态构建 space 标记项可能比基本对象更麻烦,所以准备好花一些时间在那里。您还需要准备好投入时间来捕获错误输入的错误。由于您要进入构建模型的文件,因此您需要确保该文件不包含会导致模型崩溃或违反基本假设的项目。
我目前正在开展一个项目,该项目需要某些描述现实生活场景的 OWL2 XML 文件 'translated' 到 ALP(XML 类型)格式AnyLogic 模型,因此它们可以在应用程序中打开。这种翻译最终应该通过另一个应用程序自动发生。
这些情景描述了荷兰某些地区的旅游流量。这些场景以 RDF-OWL2 格式在本地 Semantic MediaWiki 中定义并从中导出。在 AnyLogic 中,我们已经设法创建了我们想要的仿真模型和场景。现在,我们想直接 'translate' 这些场景从 MediaWiki 到 AnyLogic,这样就可以在不接触 AnyLogic 应用程序的情况下创建仿真模型。参数的类型,类,agents等我们都已经定义好了,所以都是"the tourism area in Semantic Wiki Page A should turn into the tourism area A in AnyLogic."
的情况例如,部分输入 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 可能不会向后兼容您正在尝试做的事情。
我发现动态构建 space 标记项可能比基本对象更麻烦,所以准备好花一些时间在那里。您还需要准备好投入时间来捕获错误输入的错误。由于您要进入构建模型的文件,因此您需要确保该文件不包含会导致模型崩溃或违反基本假设的项目。