Как объединить несколько баз данных MySQL, используя D2RQ?

У меня есть четыре разные базы данных 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

Теперь, как мне изменить файл сопоставления так, чтобы дата и время были двумя разными отношениями?

1 ответ

Я думаю, что лучший способ создать один график из ваших 4 баз данных - это преобразовать их одну за другой в модель Jena с помощью D2RQ, а затем использовать метод Union для создания глобальной модели. Для вашего файла сопоставления D2RQ вы должны внимательно прочитать Язык сопоставления, это ненормально иметь классы, соответствующие столбцам. Если вы приведете пример структуры вашей таблицы, я могу дать вам иллюстрацию файла сопоставления. Удачи

Другие вопросы по тегам