我需要测试某个SPARQL
查询是否确实是INSERT
或{fyzz
和{
try:
sparql = parse(Query_String)
except Exception as e:
raise ContentsUnacceptable(
" The query attribute does not conform to the SPARQL query syntax !!")
以及:
^{pr2}$我的两个代码都能很好地处理SELECT
语句,但是只要我尝试一个INSERT
或{"The query does not conform to the SPARQL query syntax !!"
上就出现了异常,这可能意味着INSERT和DELETE语句不能被解析器识别。根据我的研究,SPARQL查询的解析器主要有这两种。有没有一种方法可以让fyz和SPARQLWrapper解析器识别这些语句?在
SPARQLWrapper实际上并不打算用作SPARQL解析器。它所做的只是充当SPARQL端点服务的客户端——实际上查询字符串的解析是由端点本身完成的。在
在您的特定示例中,您将SPARQLWrapper指向一个本地文件,这根本无法工作,因为本地文件不是SPARQL端点。在试图将指向SPARQL端点时,该端点不接受SPARQL更新(因为,可以理解,它们不允许远程客户端更新其数据)。在
如果您希望坚持使用SPARQLWrapper,一个(非常笨拙的)解决方案是设置您自己的SPARQL端点服务,将其配置为允许远程更新,然后使用该端点来验证您的查询/更新(有大量免费的SPARQL端点实现,包括RDF4J服务器和Jena Fuseki)两个流行的)。在
但正如前面所说,这是一个笨拙的解决方案:如果您的目标只是解析字符串以验证其语法,那么您应该在Python中使用实际的SPARQL解析器。RDFLib's SPARQL Parser在这里可能是个不错的选择。我不是Python专家,但我可以从以下几方面进行设想:
以及
^{pr2}$可以帮你。在
相关问题 更多 >
编程相关推荐