【问题标题】:querying RDFs using SPARQL query使用 SPARQL 查询来查询 RDF
【发布时间】:2015-05-26 17:31:03
【问题描述】:

假设我们有一个包含以下 3 个 RDF 三元组的数据集。我想使用 sparql 查询检索所有这三个三元组。

http://test.com/11/META_C1-INST  predicate1     http://test.com/NO_CONTEXT/META_C0059714-INST
http://test.com/23/META_C1-INST  predicate1     http://test.com/NO_CONTEXT/META_C0059714-INST
http://test.com/43/META_C1-INST  predicate1     http://test.com/NO_CONTEXT/META_C0142817-INST

这是我写的查询,但我知道它不正确:

prefix pred:<http://test.com/>
            select distinct *
            where {pred:META_C1-INST ?p ?o};

我应该怎么说:“从http://test.com/??/ 中查找主题的任何三元组,其中 ?? 可以是 11、23、S23 之类的任何东西?

【问题讨论】:

    标签: sql rdf sparql virtuoso


    【解决方案1】:

    您可以将 URI 转换为字符串,然后根据它的开头进行过滤。您需要使用的关键字是STRSTARTS

    select distinct *
    where{
    ?s ?p ?o
    filter(STRSTARTS(str(?s), "http://test.com/"))
    }
    

    或者您可以使用带有^ 符号的正则表达式:

    select distinct *
    where{
    ?s ?p ?o
    FILTER regex(str(?s), "^http://test.com/") .
    }
    

    【讨论】:

      猜你喜欢
      • 2013-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多