15

让我试着改写一下:

我正在寻找具有以下功能的强大 RDF 存储或库:

  • 命名图,或某种其他形式的具体化。
  • 版本跟踪(可能在命名图级别)。
  • 用户组之间的隐私,无论是命名图还是三重级别。
  • 人类可读的数据输入和输出,例如TriG解析器和序列化器。

前段时间我和JenaSesameBocaRDFLibRedland和其他一两个人一起玩过,但每个人都有自己的问题。最近在上述方面有什么改善吗?其他任何事情都可以做我想做的事,还是 RDF 还没有准备好迎接黄金时段?


更多地阅读这个主题,我发现:

4

6 回答 6

2

来自:http ://www.semanticoverflow.com/questions/453/how-to-implement-semantic-data-versioning/748#748


我个人非常喜欢 Freebase 采用的务实方法。

为人类浏览和编辑视图:

  • http://www.freebase.com/view/guid/9202a8c04000641f80000000041ecebd
  • http://www.freebase.com/edit/topic/guid/9202a8c04000641f80000000041ecebd

此处公开的数据模型:

  • http://www.freebase.com/tools/explore/guid/9202a8c04000641f80000000041ecebd

严格来说,它不是 RDF(它可能是它的超集),但它的一部分可以暴露为 RDF:

  • http://rdf.freebase.com/rdf/guid.9202a8c04000641f80000000041ecebd

由于它是一个社区驱动的网站,他们不仅需要跟踪谁说了什么,什么时候……而且他们可能还会保留历史记录(从不删除任何内容):

  • http://www.freebase.com/history/view/guid/9202a8c04000641f80000000041ecebd

总而言之,我解决您问题的方式非常相似且务实。AFAIK,您将找不到开箱即用的解决方案。但是,您可以使用“元组”存储(3 或 4 不足以将历史记录保持在最精细的粒度(即三元组|四元组))。

我会将 TDB 代码用作库(因为它为您提供了 B+Trees 和许多您需要的有用的东西)并且我将使用一个数据模型,它允许我:计算四边形、为四边形分配所有权、时间戳和上一个/下一个四边形(如果有):

[ id | g | s | p | o | user | timestamp | prev | next ]

在哪里:

   id - long (unique identifier, same (g,s,p,o) will have different id... 
        a lot of space, but you can count quads... and when you have a 
        community driven website (like this one) counting things it's 
        important.
    g - URI (or blank node?|absent (i.e. default graph))
    s - URI|blank node
    p - URI
    o - URI|blank node|literal
 user - URI

时间戳 - 创建四边形的时间 prev - 前一个四边形的 ID(如果存在) next - 下一个四边形的 ID(如果存在)

然后,您需要考虑需要哪些索引,这取决于您想要公开和访问数据的方式。

您不需要向外部用户/人员/应用程序公开所有内部结构/索引。并且,当(如果)出现用于表示版本控制等的 RDF 词汇表或本体时,您可以使用它们快速公开您的数据(如果您愿意的话)。

请注意,这不是常见的做法,如果你用你的“语义网络眼镜”看它,它可能是错误的、不好的等等。但是,我正在分享这个想法,因为我相信它没有害处,它可以提供一个解决方案对于您的问题(它会比四元存储更慢并且使用更多空间),其中一部分可以作为 RDF / LinkedData 暴露给语义网络。

我的 2(异端)美分。

于 2010-04-16T07:17:48.067 回答
2

达丽丝是显而易见的选择,但隐私可能是一个问题,或者无论如何都被认为是问题,因为它是一种 SaaS 产品。我说的很明显,因为您列表中的三个大胆的功能是他们平台 IIRC 的核心功能。

他们没有这样的功能列表 - 这使得很难支持这个答案,但他们确实数据存储可以单独保护。我想你可以——在紧要关头——代表你自己的每个用户注册一个单独的商店。

为每个用户任务编写自定义界面通常可以最好地支持人类可读的输入,因此您最好准备好根据需要执行此操作。

关于黄金时段的准备情况。对于某些应用程序,我会说是,但否则“不完全”。大多数情况下,社区需要与现有的开发人员工具集集成并编写针对“普通”开发人员的优秀文档——可能是使用 Java、.NET 和 Ruby/Groovy 的 OO 开发人员——然后我预测它会滚雪球。

另请参见RDF 三元组的时间范围

于 2009-01-08T18:24:16.730 回答
1

LMF 带有一个版本控制模块:http ://code.google.com/p/lmf/wiki/ModuleVersioning

Linked Media Framework 是一个使用 JavaEE 开发的易于设置的服务器应用程序,它捆绑了核心语义 Web 技术以提供许多高级服务。

于 2012-05-22T17:56:43.710 回答
0

看看 Virtuoso 的RDF 支持是否满足您的需求,听起来它可能会走得很远,而且它也可以很好地与 XML 和 Web 服务配合使用。有商业版和 GPL 版。

于 2009-01-02T12:24:49.567 回答
0

Mulgara/Fedora-Commons可能符合要求。我相信隐私目前是一个主要项目,我知道它支持版本控制,但它可能太多了,因为它也是一个对象存储。

于 2009-04-15T10:44:21.883 回答
0

(多年后)

我认为 Oracle 的 RDF 存储:

http://www.oracle.com/technetwork/database/options/semantic-tech/index.html

IBM 的 DB2 中最近宣布的图形存储支持其中的大部分内容:

http://www-01.ibm.com/software/data/db2/linux-unix-windows/graph-store.html

于 2012-07-30T10:15:45.550 回答