我正在计划一个结合了各种数据源的系统,并允许用户对这些进行简单的查询。系统的一部分需要充当知道所有连接数据源的抽象层:用户不应[需要]了解底层数据“提供者”。数据提供者可以是任何东西:关系DBMS,错误跟踪系统,......,气象站。它们通过定义如何“提供”数据的通用API连接到查询系统。某个数据提供者理解的查询类型由其“提供”给出(例如,我知道这些实体,我可以为关系Y提供类型X的聚合,... )。
我现在关心的是数据的统一:各种数据提供者需要就共同词汇表达成一致(例如,实体“客户”的名称可能因不同系统而异)。因此,需要定义实体及其关系的高级表示。
到目前为止,我有以下要求:
我需要能够定义对象及其属性/属性。此外,需要表示这些对象之间的任意关系:定义关系性质的动词(例如“知道”),多重性(例如1:n)和关系的方向/导航性。
我觉得RDF是一个可行的选择,但它是“适合这项工作的工具”吗?
对于具有机器可读表示的语义数据建模,还存在哪些其他解决方案/框架,以及为什么它们更适合此任务?
我很感激每一个意见和指向有用资源的指针。
答案 0 :(得分:2)
我还考虑了一个XML数据库和xquery,也许还有主题图(它与RDF非常相似,但不太广为人知)。
还有一系列不太标准化的工具需要考虑,例如couchdb(使用json)。
很少有'正确的工具',但根据您的要求,RDF是一个非常强大的竞争者。
答案 1 :(得分:2)
如果你需要关系的基数限制(例如“一个人知道1:n语言”),那么RDF是不够的(参见http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#richerschemas)。您将需要本体语言(至少为基数大于1的OWL-DL:http://www.w3.org/TR/owl-guide/#owl_cardinality)