簡體   English   中英

REGEX過濾器名稱上的SPARQL

[英]SPARQL on REGEX filter name

當我使用直接搜索查詢時,REGEX過濾器名稱上的SPARQL起作用。 它不適用於使用查詢的正則表達式。

PREFIX dbpedia: <http://dbpedia.org/>
PREFIX dbpedia2: <http://dbpedia.org/property/>
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX dcterms: <http://dublincore.org/2010/10/11/dcterms.rdf#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX grs: <http://www.georss.org/georss/point>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

select distinct ?iri ?logo ?description 
  {
    values ?hasLogo { foaf:depiction dbpedia-owl:thumbnail }
    values ?hasName { foaf:name rdfs:label }
    ?iri a                    dbpedia-owl:Company ;
         dbpedia-owl:abstract ?description ;
         filter(regex(?Name, "Lufthansa", "i" )) ;
        ?hasLogo              ?logo .
        filter( langMatches(lang(?description),"en") )
    }

上面的代碼由於filter(regex(?Name, "Lufthansa", "i" )) ;不起作用filter(regex(?Name, "Lufthansa", "i" )) ;

如果我使用直接搜索,請輸入?Name "Lufthansa"@en ; 它工作正常。

為什么是這樣?

嘗試通過sparql.org的查詢驗證器運行查詢 不合法 看起來您想要以下內容。 您仍然必須以通常的方式獲取變量綁定。 只有這樣,您才能添加其他過濾器。 您不能僅將過濾器表達式代替三元模式(的一部分)。

select distinct ?iri ?logo ?description  {
  values ?hasLogo { foaf:depiction dbpedia-owl:thumbnail }
  values ?hasName { foaf:name rdfs:label }
  ?iri a dbpedia-owl:Company ;
       dbpedia-owl:abstract ?description ;
       ?hasName ?Name ;
       ?hasLogo ?logo .

  filter langMatches(lang(?description),"en")
  filter(regex(?Name, "Lufthansa", "i" )) ;
}
select distinct ?iri ?name ?description {
?iri a dbpedia-owl:Company ;
rdfs:label ?label ;
foaf:name ?name ;
dbpedia-owl:abstract ?description .
#foaf:depiction|dbpedia-owl:thumbnail ?logo .
filter(regex(?name, "\\blufthansa\\b","i" )) .
filter(regex(?label, "\\blufthansa\\b","i" ))
# filter( langMatches(lang(?description),"en") )
}
limit 100

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM