如何解析SPARQL结果?

时间:2012-09-21 20:01:43

标签: parsing language-agnostic rdf sparql text-parsing

我正在使用Twinkle(SPARQL查询工具)。我在RDF文件上做了一个SPARQL,得到了如下的结果文件。由于它似乎不像CSV这样的典型文件格式,您是否知道要解析此格式的库?任何编程语言都可以。

---------------------------------------------------------------------
| name                                                              |
=====================================================================
| "Egypt"^^<http://www.w3.org/2001/XMLSchema#string>                |
| "Iraq"^^<http://www.w3.org/2001/XMLSchema#string>                 |
| "Jordan"^^<http://www.w3.org/2001/XMLSchema#string>               |
| "Kuwait"^^<http://www.w3.org/2001/XMLSchema#string>               |
| "Libya"^^<http://www.w3.org/2001/XMLSchema#string>                |
| "Mauritania"^^<http://www.w3.org/2001/XMLSchema#string>           |
| "Somalia"^^<http://www.w3.org/2001/XMLSchema#string>              |
| "Sudan"^^<http://www.w3.org/2001/XMLSchema#string>                |
| "Syrian Arab Republic"^^<http://www.w3.org/2001/XMLSchema#string> |
| "Tunisia"^^<http://www.w3.org/2001/XMLSchema#string>              |
| "United Arab Emirates"^^<http://www.w3.org/2001/XMLSchema#string> |
| "Yemen"^^<http://www.w3.org/2001/XMLSchema#string>                |
---------------------------------------------------------------------

3 个答案:

答案 0 :(得分:3)

这不是任何标准格式,因此您必须手动编写解析器;它看起来像数据库的查询命令的默认CLI输出(我想知道哪一个?)。

来自CLI的查询命令可能提供标准SPARQL结果格式的选项,例如SPARQL / XML或SPARQL / JSON,您可以使用任何标准RDF库,例如Jena或{{3如果您使用的是Java,则以该格式解析结果。这是完成你所尝试的最佳方式。

通常,您不应以编程方式与CLI输出接口,而应使用随数据库提供的API。

答案 1 :(得分:2)

看起来它可能是Jena输出。

ResultSetFormatter类包含格式化所有标准格式(XML,JSON,TSV,CSV)的结果以及文本中的显示格式的方法。

  

ResultsetFormatter.outputAsXML

     

ResultsetFormatter.outputAsJSON

     

ResultsetFormatter.outputAsTSV

     

ResultsetFormatter.outputAsCSV

文本格式不用于解析 - 更多用于简单的显示和调试。

命令行有args来设置结果格式,例如--results json

Fuseki中的查询表单允许您选择输出格式。

答案 2 :(得分:0)

您看到的格式为Typed RDF literal。 URI http://www.w3.org/2001/XMLSchema#stringXSD type "string",表示您的值只是一个“字符串”(可能是“int”等等)。如果您只想要该值,则可以在“^^”之后省略URI,或在SPARQL查询中使用STR函数。