【问题标题】:Case insensitivity in GraphDBGraphDB 中的大小写不敏感
【发布时间】:2021-12-09 13:40:21
【问题描述】:

有没有办法在 GraphDB 中不区分大小写进行匹配? 测试数据集非常小。大约 8m 三倍。

SELECT ?s ?name 

WHERE {
    
?s <http://www.sample.org.uk/data/schema/simplename/name> ?name. 
?s <http://www.sample.org.uk/data/schema/provider> "nhle".

OPTIONAL {?s <http://www.sample.org.uk/data/schema/county/> "Essex"} 
OPTIONAL {?s <http://www.sample.org.uk/data/schema/district/> "Epping Forest"} 
OPTIONAL {?s <http://www.sample.org.uk/data/schema/parish/> "Buckhurst Hill"} 

}

当然,我可以使用 FILTER - 但需要 7 秒才能返回,这太慢了。

SELECT ?s ?name ?county ?district ?parish

WHERE {

?s <http://www.sample.org.uk/data/schema/simplename/name> ?name. 

?s <http://www.sample.org.uk/data/schema/provider> "nhle".

OPTIONAL {?s <http://www.sample.org.uk/data/schema/county/> ?county} 

OPTIONAL {?s <http://www.sample.org.uk/data/schema/district/> ?district} 

OPTIONAL {?s <http://www.sample.org.uk/data/schema/parish/> ?parish} 



FILTER (lcase(?county)='essex'

&& lcase(?district)='epping forest'

&& lcase(?parish)='buckhurst hill'

  )

}

【问题讨论】:

标签: sparql graphdb


【解决方案1】:

这可能不是对您问题的直接回答,抱歉(我无法发表评论)。

由于您已经知道要匹配埃塞克斯郡,与任何带有“埃塞克斯”或“埃塞克斯”标签的事物相对,这可能会更好使用该县的 URI,而不是标签。例如,URI 可以是:

<http://www.wikidata.org/entity/Q23240>

至少这可以防止你不小心将完全不同的东西与标签“Essex”匹配,p.e.埃塞克斯鲸船 (Wikipedia link)

当然,我不知道您的数据是什么样的,所以这可能对您没有用处。希望仍然值得指出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-22
    • 2016-05-30
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 2013-11-03
    • 2023-03-27
    相关资源
    最近更新 更多