5.Constraints and Negation

Constraints 是一种筛选的策略。

常用限制函数

REGEX(字符串,pattern,flag): 用于寻找在字符串中含有这个pattern的相应结果。
sameTERM(A,B): 判断这两个东西是否一样。
langMATCH(A,B): 判断两个语言是否匹配。

Data structure

dbpedia:Mount_Etna rdf:type umbel-sc:Volcano ; 
                   rdfs:label "Etna". 
dbpedia:Beerenberg rdf:type umbel-sc:Volcano, umbel-sc:NaturalElevation ; 
                   rdfs:label "Beerenberg"@en ; 
                   rdfs:label "Бееренберг"@ru .

限制

问题:哪一个火山的名字含有 e?

Query

SELECT ?v WHERE { 
?v rdf:type umbel-sc:Volcano ;  
   rdfs:label ?name . 
 FILTER( REGEX(STR(?name),"e") )  ---如果这里是FILTER( REGEX(STR(?name),"e",”i“) ) 那么结果将多一个dbpedia:Mount_Etna
 }

返回

dbpedia:Beerenberg
dbpedia:Beerenberg

否定

问题:有哪些火山不叫做Beerenberg

Query

SELECT ?v WHERE { 
 ?v rdf:type umbel-sc:Volcano . 
 OPTIONAL { ?v rdfs:label ?name . 
            FILTER (STR(?name) = "Beerenberg") } 
 FILTER ( ! BOUND(?name) )  
}   --- 先选出包含着个名字的火山,然后从总的火山里把他们取掉

返回

dbpedia:Mount_Etna

问题:有哪些火山没有名字?

Query

SELECT ?v WHERE { 
    ?v rdf:type umbel-sc:Volcano . 
    OPTIONAL { ?v rdfs:label ?name } 
    FILTER( ! BOUND(?name) ) 
}

返回空

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容