【问题标题】:how to query RDF with SPARQL enhancing efficient search?如何使用 SPARQL 查询 RDF 以增强高效搜索?
【发布时间】: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 ?谢谢

【问题讨论】:

    标签: rdf sparql


    【解决方案1】:

    数据并不代表你认为的那样。

    你有一个对象,有两个不同的 foaf:names。

    尝试将 RDF/XML 转换为 Turtle 或 NTriples 以获得更清晰的数据视图 RDF/XML 非常令人困惑。

    【讨论】:

    • 先生,我已经编辑了我的问题。感谢您的友好回复。请先生帮我解决这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多