SPARQL-从特定名称空间中查找所有属性

问题描述 投票:1回答:1

我正在尝试从特定名称空间确定数据库中使用的唯一属性集。例如,如果我想查看我们从都柏林核心集中使用的所有属性,我正在尝试:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
SELECT DISTINCT
    ?pred   
WHERE 
    { 
    ?sub ?pred ?obj  . 
    FILTER regex(?pred, "purl.org/dc/elements") 
    } 
limit 1000

我正在查看所有三元组,通过正则表达式使用DC名称空间过滤仅三元组,然后返回不同谓词的列表。当我运行该查询时,它会超时,因此我不确定这是由于检查了卷还是查询本身有问题。我真正想要的是以DC名称空间开头的谓词列表。

regex sparql
1个回答
1
投票
FILTER( STRSTART(str(?pred), str(dc:)) )

这有两件事:

  1. 因为str(和STRSTARTS)在字符串上起作用,所以用REGEX将URI转换为字符串。
  2. 使用dc:作为谓词URL的简写。解析器会将其扩展为完整的http://purl.org/dc/elements/1.1/
© www.soinside.com 2019 - 2024. All rights reserved.