Protégé中的Sparql查询(过滤)(正则表达式)

时间:2017-09-19 14:20:22

标签: sparql protege

我正在学习如何在SPARQL中编写查询(通过protégé平台)。所以,这是一个非常基本的问题,但我无法解决。

我有一个名叫爱丽丝的人(它的猫头鹰:东西) 这个人有一个名为textualValue的数据属性,它被指定为xsd:normalizedString。

我正在编写下面的查询来提取以ali开头的个体,这反过来又会导致alice。我基本上使用正则表达式操作数进行过滤。每当我使用这个规范执行SPARQL查询时,我都没有得到任何结果,有人可以指出我错在哪里吗?

SELECT distinct ?x
WHERE { ?x rdf:type owl:NamedIndividual.
FILTER regex(?textualValue, "^ali", "i") }

1 个答案:

答案 0 :(得分:3)

您需要获取属性textualValue的值 - 它不会自动放入变量中。

以下是根据您的描述概述:您需要完成详细信息:

PREFIX owl: ....
PREFIX rdf: ....
PREFIX x: <InsertTheRightURIhere>
SELECT distinct ?x
WHERE { 
   ?x rdf:type owl:NamedIndividual ;
      x:textualValue ?v .
    FILTER regex(str(?v), "^ali", "i")
 }

str?v中获取RDF术语的词汇部分。