我已解析了freebase数据转储,现在有RDF,如下所示:
<http://rdf.freebase.com/ns/m.0mspb64> <http://rdf.freebase.com/ns/type.object.type> <http://rdf.freebase.com/ns/music.release_track>
<http://rdf.freebase.com/ns/m.0mspb64> <http://rdf.freebase.com/ns/type.object.name> "Mit Rees und Hans im Bürgli"@de
<http://rdf.freebase.com/ns/m.0mspd6m> <http://rdf.freebase.com/ns/type.object.type> <http://rdf.freebase.com/ns/music.release_track>
<http://rdf.freebase.com/ns/m.0mspd6m> <http://rdf.freebase.com/ns/type.object.name> "Granny Scratch Scratch"@en
拥有此rdf数据集,如何提取特定资源的名称和类型?例如,根据上面的数据,我想提取:
Mit Rees und Hans im Bürgli ### music.release_track
Granny Scratch Scratch ### music.release_track
答案 0 :(得分:2)
你用什么来解析它?您显示的格式是原始数据格式。
如果您已将其加载到RDF存储中,您应该能够使用SPARQL或商店提供的任何其他查询接口轻松查询以获取所需信息。
如果您只是处理原始文本文件,您应该能够利用它按主题ID排序的事实(您应该验证这仍然是真的)将其作为流处理,而不需要大量的工作存储(即RAM)。
您需要的唯一临时存储是1)当前主题ID,2)当前主题的名称和3)当前主题的类型。如果类型不是您想要的类型(release_track),您可以跳到下一组主题三元组。如果它是正确的类型,只要您同时拥有名称和类型,就可以为三元组输出一行。