我的项目是关于让用户输入查询,并向用户显示最佳结果 . 这是我的RDF文件
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:foaf="http://www.xmlns.com/foaf/0.1">
<rdf:Description>
<foaf:name>interview</foaf:name>
<foaf:url>urlname1</foaf:url>
</rdf:Description>
<rdf:Description>
<foaf:name>technical</foaf:name>
<foaf:url>urlname2</foaf:url>
</rdf:Description> </rdf:RDF>
现在,如果用户输入“技术问题”,我编码的方式是在数组中采用“技术”和“问题”并动态生成SPARQL查询,以便我的查询看起来像
String queryString =“PREFIX rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#”“PREFIX foaf:http://www.xmlns.com/foaf/0.1”“ SELECT?url WHERE {?foaf:name?name FILTER regex(?name,'“values [i]”')?a foaf:url?url . }“;
这里的值[i]是为“技术”和“问题”定义的数组 . 所以这给了我一个输出
|网址|
| “urlname2” |
当用户输入“面试问题”时,结果将是-------------
|网址|
| “urlname1” |
但是如果用户输入“技术面试问题”,那么它就像o / p一样
|网址|
| “urlname2” |
|网址|
| “urlname1” |
但我应该得到的o / p只是第一个给我网址准备技术问题的表(urlname2) . 你能告诉我如何改变我的查询/ RDF格式以获得所需的o / p吗?谢谢
1 回答
数据并不意味着您的想法 .
你有一个对象,有两个不同的foaf:名字 .
尝试将RDF / XML转换为Turtle或NTriples以更清晰地查看数据RDF / XML非常混乱 .