Freebase查询“JOINS”

时间:2011-01-01 19:43:05

标签: sql join freebase mql

...是的,是的,我知道传统的连接不存在。我实际上在理论上喜欢freebase查询方法,只是在让它真正为我工作时遇到一些麻烦:)

任何人都有一个简单的例子,通过MQL从两个不同的“表”中获取Freebase数据?特别是,我正在尝试获取汽车数据......例如,从/ automotive / model_year和/ automotive / trim_level中提取字段。

我已经阅读了文档(实际上是几个小时)。有一个明显的可能性,我正在寻找某个地方的这样一个例子,只是没有看到它,因为我的OLTP大脑只是不理解它所看到的。

*注意* ...我正在使用的两个“类型”是兄弟姐妹,而不是父母/孩子。 freebase甚至允许在兄弟节点之间加入数据......我看到从父/子中提取的查询示例,但不是我不认为的兄弟姐妹(或者我忽略了它们)。

1 个答案:

答案 0 :(得分:1)

基本上,您是否可以根据用户的输入限制查询?

当用户选择年份时,您将获得具有匹配型号年份的所有品牌:

[{
  "model_s": [{
    "model_years": [{
      "year": [{
        "type":    "/type/datetime",
        "value<":  "2010", // User input
        "value>=": "2009" // User input
      }],
      "type": "/automotive/model_year"
    }],
    "type": "/automotive/model"
  }],
  "id":   null,
  "name": null,
  "type": "/automotive/make"
}]​

如果选择了make并且您需要该品牌和年份的模型:

[{
  "model_years": [{
    "year": [{
      "type":    "/type/datetime",
      "value<":  "2010", // User input from above
      "value>=": "2009" // User input from above
    }],
    "type": "/automotive/model_year"
  }],
  "id":   null,
  "name": null,
  "type": "/automotive/model",
  "make": [{
    "id":   "/en/volkswagen", // User input
    "type": "/automotive/make"
  }]
}]​

或者我没有正确理解你的问题?