【发布时间】:2012-01-14 23:47:40
【问题描述】:
我的项目是关于让用户输入查询并将最好的结果显示给用户。这是我的 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 查询的方式进行编码,因此我的查询看起来像
字符串查询字符串 = "前缀 rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# " + "前缀泡沫:http://www.xmlns.com/foaf/0.1" + "SELECT ?url WHERE { ?a foaf:name ?name FILTER regex(?name,'"+ values[i]+"') ?a foaf:url ?url.}";
这里的 values[i] 是为“技术”和“问题”定义的数组。所以这给了我一个输出
------------- | url | ============= | "urlname2"| -------------当用户输入“面试问题”时,结果将是
------------- | url | ============= | "urlname1"| -------------
但是如果用户输入“技术面试问题”,它会给我两个像 o/p 一样的结果
------------- | url | ============= | "urlname2"| ------------- ------------- | url | ============= | "urlname1"| -------------
但是我应该得到的 o/p 只是第一个给我 url 以准备技术问题的表(urlname2)。你能告诉我如何改变我的查询/RDF 格式以获得所需的 o/p ?谢谢
【问题讨论】: