如何使用 PHP 解析 88 GB RDF 文件?
这个 RDF 充满了实体和关于每个实体的事实。
我正在尝试遍历每个实体并检查每个实体的某些事实。然后将这些事实写入我之前在脚本中创建的 XML 文档。
因此,当我浏览 rdf 时,我为每个实体创建一个<card></card>元素并给它一个名为<facts>. 我遍历了实体上的所有事实,并将我需要的事实写在里面,并<fact></fact>作为<facts></facts>.
如何解析 rdf、提取数据并将其写入 XML?
如何使用 PHP 解析 88 GB RDF 文件?
这个 RDF 充满了实体和关于每个实体的事实。
我正在尝试遍历每个实体并检查每个实体的某些事实。然后将这些事实写入我之前在脚本中创建的 XML 文档。
因此,当我浏览 rdf 时,我为每个实体创建一个<card></card>元素并给它一个名为<facts>. 我遍历了实体上的所有事实,并将我需要的事实写在里面,并<fact></fact>作为<facts></facts>.
如何解析 rdf、提取数据并将其写入 XML?
首先,使用 RDF 解析器。谷歌搜索 PHP RDF 解析器会得到很多结果;我个人不使用 PHP,但我确信其中一个会完成解析 RDF 的工作。但是请确保它是一个流解析器,您不会在工作站的内存中保存 88G 的 RDF。
其次,您说您需要“遍历每个实体”,如果它们没有按原始文件中的主题排序,或者解析器没有以相同的顺序报告它们,这可能会很棘手。
假设这不是问题,那么您可以将每个主题的三元组保留在本地数据结构中,并且当您获得与您在本地排队的主题不同的主题的三元组时,执行您需要的任何业务逻辑并写出 XML。可能想确保您不能在本地排队太多语句,以至于您将 OOM。
最后,我将假设您有充分的理由采用 RDF 并将其转换为不是 RDF/XML 的 XML 格式。但是我你可能会重新考虑你的设计以防万一。
或者,您可以将数据放入 RDF 数据库并针对它编写 SPARQL 查询,将查询结果转换为任何 XML 或您需要的任何其他内容。
我认为你最好的选择是: