概念数据建模:RDF 是正确的工具吗?其他解决方案?
我正在规划一个系统,该系统结合了各种数据源,并允许用户对这些数据源进行简单的查询。系统的一部分需要充当抽象层,了解所有连接的数据源:用户不应该[需要]了解底层数据“提供者”。数据提供者可以是任何东西:关系 DBMS、错误跟踪系统……、气象站。它们通过定义如何“提供”数据的通用 API 连接到查询系统。某个数据提供者理解的查询类型由其“报价”给出(例如,我知道这些实体,我可以为您提供关系 Y 的类型 X 的聚合,...)。
我现在关心的是数据的统一:各个数据提供者需要就通用词汇达成一致(例如,实体“客户”的名称可能因不同系统而异)。因此,需要定义实体及其关系的高级表示。
到目前为止我有以下要求:
我需要能够定义对象及其属性。此外,需要表示这些对象之间的任意关系:定义关系性质的动词(例如“知道”)、多重性(例如1:n)以及关系的方向/可导航性。
我认为 RDF 是一个可行的选择,但它是这项工作的“正确工具”吗?
对于具有机器可读表示的语义数据建模,还存在哪些其他解决方案/框架为什么他们更适合这项任务?
我很感激每一个意见和有用资源的指示。
I'm planning a system that combines various data sources and lets users do simple queries on these. A part of the system needs to act as an abstraction layer that knows all connected data sources: the user shouldn't [need to] know about the underlying data "providers". A data provider could be anything: a relational DBMS, a bug tracking system, ..., a weather station. They are hooked up to the query system through a common API that defines how to "offer" data. The type of queries a certain data provider understands is given by its "offer" (e.g. I know these entities, I can give you aggregates of type X for relationship Y, ...).
My concern right now is the unification of the data: the various data providers need to agree on a common vocabulary (e.g. the name of the entity "customer" could vary across different systems). Thus, defining a high level representation of the entities and their relationships is required.
So far I have the following requirements:
I need to be able to define objects and their properties/attributes. Further, arbitrary relations between these objects need to be represented: a verb that defines the nature of the relation (e.g. "knows"), the multiplicity (e.g. 1:n) and the direction/navigability of the relation.
It occurs to me that RDF is a viable option, but is it "the right tool" for this job?
What other solutions/frameworks do exist for semantic data modeling that have a machine readable representation and why are they better suited for this task?
I'm grateful for every opinion and pointer to helpful resources.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(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)
If you need cardinality restrictions on relations (for example "a Person knows 1:n Languages"), then RDF is not enough (see http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#richerschemas). You will need ontology languages (at least OWL-DL for cardinalities greater than 1: http://www.w3.org/TR/owl-guide/#owl_cardinality)
我还会考虑 XML 数据库和 xquery,也许还有主题图(与 RDF 非常相似,但不太广为人知)。
还有一系列不太标准化的工具需要考虑,例如 couchdb(使用 json)。
很少有“正确的工具”,但考虑到您的需求,RDF 是一个非常有力的竞争者。
I'd also consider an XML database and xquery, and perhaps topic maps (which is quite similar to RDF, but less widely known).
There are also a broad range of less standardised tools to consider, things like couchdb (which uses json).
There's rarely a 'right tool', but RDF is a very strong contender given your requirement.