【问题标题】:Extract electronic products subset from Freebase dump and query it从 Freebase 转储中提取电子产品子集并查询
【发布时间】:2016-03-02 10:12:48
【问题描述】:

我已经从https://developers.google.com/freebase/data?hl=en 下载了 Freebase 转储,

我知道转储的格式是<subject> <predicate> <object>,但我对文件的关系感到困惑。现在,我有两个问题:

  1. 如果我想提取Freebase的电子产品子集,其中包括/produced by/product type等一些主要属性。例如:在子集中一条iPhone的记录包含iPhone的设计公司,世代等我尝试用cygwin解压,zgrep脚本怎么写?

  2. 如果我获得了 *.gz 格式的这个子集,我如何在 windows 环境中使用 SPARQL 或其他高效的编码语言查询指定的主题?例如:查询iPhone关于设计公司的信息。我知道即使子集是一个很大的 RDF 文件,我可以实现它吗?

我真的需要有人告诉我是否可以做到,谢谢。

【问题讨论】:

    标签: sparql freebase


    【解决方案1】:

    由于 Freebase 网站仍然存在,尽管面临关闭它的威胁,我要做的第一件事是检查它是否可能包含您想要的信息:

    https://www.freebase.com/search?query=iphone&any=%2Fcommon%2Ftopic https://www.freebase.com/m/0c0bg9c

    如果您决定要提取一个子集,您可以编写一个小程序,利用转储按主题 ID 排序这一事实,并缓冲当前主题的谓词,直到您决定它是否符合您的条件或使用类似 zgrep 的东西有两次传递 - 一次提取匹配的主题 ID,第二次获取这些主题 ID 的所有谓词。

    作为/business/product_line/category 属性的Freebase 可能名义上识别电子产品,但我认为它的填充程度不足以派上用场。

    【讨论】:

      【解决方案2】:

      使用 RDF,您应该决定在存档中存储下载日期的位置。我假设你想要一些简单的东西。下载并安装Apache Jena。如果您需要 HTTP 接口(而不是命令行工具),请考虑 Jena Fuseki

      要查询数据,您需要了解 SPARQL。如果您熟悉 SQL,学习 SPARQL 的时间应该不会超过几个小时。如果您对要实现的目标有特别的疑问,请再次在 SO 上提问。

      有了这些工具,您就可以处理任何 RDF 文件。即使有数十亿个三元组。

      【讨论】:

        猜你喜欢
        • 2015-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-10
        • 2022-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多