【发布时间】:2014-09-16 13:39:35
【问题描述】:
我有一个压缩的 freebase 数据转储,其中包含所有实体。如何使用 grep 或其他方法将数据转储修剪为仅包含英文实体?
这是我试图让 rdf 转储看起来像的样子:http://play.golang.org/p/-WwSysL3y3
<card>
<title></title>
<image></image>
<text></text>
<facts>
<fact></fact>
<fact></fact>
<fact></fact>
</fact>
</card>
其中 card 是在所有子元素中包含内容的每个实体。标题是 /type/object/name。文字是"https://usercontent.googleapis.com/freebase/v1/image"%s"\n", id完成的主题中间的图像。 Text 是实体的 /common/document/text。和事实及其事实子代,例如年龄、出生日期、身高等事实,以及在搜索中显示在知识面板中的事实。
这是我尝试在 Go ( Golang ) 中将 rdf 解析为 xml 的尝试。如果有人可以帮助我获得这种形式的 rdf,我将不胜感激。
这是我正在尝试做的算法或逻辑:
For every entity written in english:
parse the `type/object/name`property's and write that to the xml file in the `<title></title>` element.
parse the mid and add that to `https://usercontent.googleapis.com/freebase/v1/image`and then write the result to the xml file in the <image></image> element.
parse the common/document/text property and writes its value to the <text></text> element.
And lastly, for each fact about the entity, write them to the <fact></fact> elements in the XML file, which are all children of the <facts></facts> element.
【问题讨论】:
-
“英文”实体是什么意思? RDF 基于三元组,RDF 图中的节点是 URI、空白节点和文字。其中,文字可以具有语言标签,因此可以将文字视为“英语实体”。但是,文字不能是 RDF 三元组中的主语或谓词,因此您不能拥有仅由文字组成的 RDF 图。
-
@JoshuaTaylor 我的意思是只有英文实体。就像内容是英语的实体一样。当我将rdf解析为xml时,似乎有外语。
-
完全不清楚您所说的“实体”是什么意思。 RDF 是一种基于图的数据格式,其中有 [主谓宾] 形式的三元组(标记的边)。每个主题都是一个 URI 或一个空白节点。每个谓词都是一个 URI。每个对象要么是一个 URI,要么是一个空白节点,要么是一个字面量。在所有这些中,唯一具有语言的是某种文字。您可以过滤掉包含带有非英语语言标签的文字对象的三元组。这是你想做的吗?
-
真的,在这里最好的做法是向我们展示您拥有的数据样本,并展示您希望将其转化为什么。就像提到的密切原因一样,问题应该“包括期望的行为,[和]一个特定的问题或错误。没有明确问题陈述的问题对其他读者没有用处。”
-
@JoshuaTaylor 感谢您提前提供的帮助以及迄今为止您给我的帮助。我已经用我正在尝试制作的内容以及我的代码尝试在 golang 中执行此操作更新了问题。
标签: go rdf semantic-web freebase linked-data