如何使用D2RQ组合多个MySQL数据库



我有四个不同的MySQL数据库,需要将它们转换为链接数据,然后对聚合数据运行查询。我已经单独生成了D2RQ映射,然后手动将它们复制到一个文件中。我已经阅读了一些关于定制地图的材料,但我发现在我的情况下很难做到这一点,因为:

  1. 本体类与表名称不对应。事实上,大多数类都是列标题
  2. 当我在Protege中打开组合映射时,它只生成3个类(ClassMap、Database和PropertyBridge),并将所有列标题列为这些类的实例
  3. 如果我将这个文件导入到我的本体中,那么所有内容都将成为注释

请提出一种生成单个图的有效方法,该图是通过将这些数据库映射到我的本体而形成的。

下面是一个例子。我正在使用EEM本体来细化D2RQ生成的映射文件。这是映射文件的一部分:

map:scan_event_scanDate a d2rq:PropertyBridge;
    d2rq:belongsToClassMap map:scan_event;
    d2rq:property vocab:scan_event_scanDate;
    d2rq:propertyDefinitionLabel "scan_event scanDate";
    d2rq:column "scan_event.scanDate";
    # Manually added
    d2rq:datatype xsd:int;
    .
map:scan_event_scanTime a d2rq:PropertyBridge;
    d2rq:belongsToClassMap map:scan_event;
    d2rq:property vocab:scan_event_scanTime;
    d2rq:propertyDefinitionLabel "scan_event scanTime";
    d2rq:column "scan_event.scanTime";
    # Manually added
    d2rq:datatype xsd:time;

我感兴趣的本体有以下内容:

Data property: eventOccurredAt
Domain: EPCISevent
Range: datetime

现在,我应该如何修改映射文件,使日期和时间是两种不同的关系?

我认为生成4个数据库的单个图的最佳方法是使用D2RQ将它们逐个转换为Jena模型,然后使用Union方法创建全局模型。对于您的D2RQ映射文件,您应该仔细阅读映射语言,拥有与列相对应的类是不正常的。如果你举一个表结构的例子,我可以给你一个映射文件的例子。祝好运

相关内容

  • 没有找到相关文章

最新更新