2015-04-08 19 views
1

我有四个不同的MySQL数据库,我需要将其转换为关联数据,然后对聚合数据运行查询。我已经分别生成了D2RQ映射,然后手动将它们一起复制到一个文件中。我已经阅读了关于定制地图的一些材料,但是在我的案例中发现很难这样做,因为:如何使用D2RQ合并多个MySQL数据库?

  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 

现在,我应该怎么修改映射文件,这样的日期和时间是两个不同的关系?

回答

0

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

+0

谢谢你的回应,Hatim。我在一段时间后成立了芝麻三重奏店。芝麻对这个应用程序的效率如同Jena一样高效吗?现在,我正在手动丰富映射文件。将它们合并成一个文件是否是一个好主意,还是应该让它们分开? – kurious