5.Constraints and Negation

Constraints 是一种筛选的策略。

5.Constraints and Negation_第1张图片
常用限制函数

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) ) 
}

返回空

你可能感兴趣的:(5.Constraints and Negation)