在python的sparql中使用阿拉伯语字符?

2024-09-29 23:21:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我用阿拉伯语开发了自己的本体,现在我想使用rdflibsparql来执行一些sparql请求。问题是,当我在本体上不使用阿拉伯语提出请求时,我得到的答案没有问题,但是当我想使用阿拉伯语对属性进行特定请求时,我得到了一些错误:(。你知道吗

任何人都知道我该怎么处理。我做错什么了!!!你知道吗

这是我的密码:

graph =rdflib.Graph()
filename = r'JO Ontology modified 09 june 2014 with properties.owl'
graph.load(filename, format='xml')



qres = graph.query(   
    "PREFIX OntoJO:<http://www.owl-ontologies.com/Ontology1400008538.owl#>" +
    "SELECT  ?path "  +
    "WHERE { ?lois_ordinaires  OntoJO:ministere_lord ?ministere_lord   ."+
    "?lois_ordinaires  OntoJO:a_un_chemin ?y ."+
    " ?y OntoJO:chemin ?path ."+
    "FILTER(regex(?ministere_lord,'وزارة المالية'))}", )

for row in qres:

    print row[0]

错误:

File "C:\Users\Mehdi\workspace\My_work\Test\Recherche.py", line 38, in main
"FILTER(regex(?ministere_lord,'وزارة المالية'))}", ) 
File "build\bdist.win-amd64\egg\rdflib\graph.py", line 920, in query

File "C:\Python27\lib\site-packages\rdfextras-0.4-py2.7.egg\rdfextras\sparql\components.py", line 168, in __new__
return unicode.__new__(cls, value)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd9 in position 0:     ordinal not in range(128)

Tags: inpy错误line本体filenameowlsparql
1条回答
网友
1楼 · 发布于 2024-09-29 23:21:49

我找到了正确的语法:)。你知道吗

我只是换了句话:

"FILTER(regex(?ministere_lord,'وزارة المالية'))}", )

通过这个:

"FILTER (regex(?ministere_lord,'""" +u"وزارة المالية"+ """'))  }""" , )

所以sparql请求是:

graph =rdflib.Graph()
filename = r'JO Ontology modified 09 june 2014 with properties.owl'
graph.load(filename, format='xml')

qres = graph.query(   

    """ PREFIX OntoJO:<http://www.owl-ontologies.com/Ontology1400008538.owl#>
    SELECT  ?path 
    WHERE { ?lois_ordinaires  OntoJO:ministere_lord ?ministere_lord   .
    ?lois_ordinaires  OntoJO:a_un_chemin ?y .
    ?y OntoJO:chemin ?path .      
    FILTER (regex(?ministere_lord,'""" +u"وزارة المالية"+ """'))  

    }""" , )

相关问题 更多 >

    热门问题