【问题标题】:No results when running a SPARQL on an rdf document在 rdf 文档上运行 SPARQL 时没有结果
【发布时间】:2011-01-07 07:24:57
【问题描述】:

我是 SPARQL 查询的新手,我正在使用 twinkle SPARQL 对包含以下内容的 rdf 文档运行查询:

<defaultNamespac:courses rdf:ID="Cources">   
  <defaultNamespac:course rdf:resource="#Course1"/>
  <defaultNamespac:course rdf:resource="#Course10"/>
  <defaultNamespac:course rdf:resource="#Course2"/>
  <defaultNamespac:course rdf:resource="#Course3"/>
  <defaultNamespac:course rdf:resource="#Course4"/>
  <defaultNamespac:course rdf:resource="#Course5"/>
  <defaultNamespac:course rdf:resource="#Course6"/>
  <defaultNamespac:course rdf:resource="#Course7"/>
  <defaultNamespac:course rdf:resource="#Course8"/>
  <defaultNamespac:course rdf:resource="#Course9"/>
</defaultNamespac:courses>

查询如下:

选择 ?x ?课程

在哪里 {?x &lt;file:/F:/Stuff/Muaz/GUC/Met.rdf#courses&gt; ?course }

问题是没有返回任何结果(只显示 x 和 course)。怎么了?我越来越紧张,请尽快帮助我。非常感谢!

PS:查询可以返回哪些数据类型? (只有字符串或数字?!)

【问题讨论】:

    标签: rdf sparql


    【解决方案1】:

    只是快速猜测是 defaultNamespac 还是 defaultNamespace ?结尾有一个e

    如果这不是错误,请尝试运行查询:

    SELECT * WHERE { ?s ?p ?o }
    

    如果我有以下 RDF 文件,并带有一些 defaultNamepac 定义:

    <rdf:RDF
       xmlns:contact="http://www.w3.org/2000/10/swap/pim/contact#"
       xmlns:defaultNamespac="http://foo.bar"
       xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <defaultNamespac:courses rdf:about="file:///Users/msalvadores/kk.rdf#Cources">
        <defaultNamespac:course rdf:resource="file:///Users/msalvadores/kk.rdf#Course1"/>
        <defaultNamespac:course rdf:resource="file:///Users/msalvadores/kk.rdf#Course10"/>
        <defaultNamespac:course rdf:resource="file:///Users/msalvadores/kk.rdf#Course2"/>
        <defaultNamespac:course rdf:resource="file:///Users/msalvadores/kk.rdf#Course3"/>
        <defaultNamespac:course rdf:resource="file:///Users/msalvadores/kk.rdf#Course4"/>
        <defaultNamespac:course rdf:resource="file:///Users/msalvadores/kk.rdf#Course5"/>
        <defaultNamespac:course rdf:resource="file:///Users/msalvadores/kk.rdf#Course6"/>
        <defaultNamespac:course rdf:resource="file:///Users/msalvadores/kk.rdf#Course7"/>
        <defaultNamespac:course rdf:resource="file:///Users/msalvadores/kk.rdf#Course8"/>
        <defaultNamespac:course rdf:resource="file:///Users/msalvadores/kk.rdf#Course9"/>
      </defaultNamespac:courses>
    </rdf:RDF>
    

    那么上述查询的结果将是,如图所示:

    在我的情况下,使用命名空间 xmlns:defaultNamespac="http://foo.bar" 如果我想完全运行您的查询,那么我必须使用命名空间...

    SELECT ?x ?course
    
    WHERE {?x <http://foo.bar#courses> ?course }
    

    我的建议是,为避免这些错误,请尝试始终设置命名空间。

    【讨论】:

    • @Muaz 我不明白你的评论,你能扩展一下吗?谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多