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) )
}
返回空