我正在使用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> |
---------------------------------------------------------------------
答案 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#string是XSD type "string",表示您的值只是一个“字符串”(可能是“int”等等)。如果您只想要该值,则可以在“^^”之后省略URI,或在SPARQL查询中使用STR函数。