Я планирую систему, которая объединяет различные источники данных и позволяет пользователям выполнять простые запросы по ним. Часть системы должна действовать как уровень абстракции, который знает все подключенные источники данных: пользователь не должен [должен знать] о базовых «поставщиках» данных. Поставщиком данных может быть что угодно: реляционная СУБД, система отслеживания ошибок, ..., метеостанция. Они подключены к системе запросов через общий API, который определяет, как «предлагать» данные. Тип запросов, которые понимает определенный поставщик данных, определяется его «предложением» (например, Я знаю эти объекты, я могу дать вам агрегаты типа X для отношения Y, ... ).
Сейчас меня беспокоит унификация данных: различные поставщики данных должны договориться об общем словаре (например, название объекта «клиент» может различаться в разных системах). Таким образом, требуется определение представления объектов на высоком уровне и их отношений.
Пока у меня есть следующие требования:
Мне нужно уметь определять объекты и их свойства / атрибуты. Кроме того, должны быть представлены произвольные отношения между этими объектами: глагол, который определяет природу отношения (например, «знает»), множественность (например, 1: n) и направление / навигацию отношения.
Мне приходит в голову, что RDF является жизнеспособным вариантом, но действительно ли это «правильный инструмент» для этой работы?
Какие существуют другие решения / структуры для моделирования семантических данных, которые имеют машиночитаемое представление и почему они лучше подходят для этой задачи?
Я благодарен за каждое мнение и указатель на полезные ресурсы.