我如何优化查询以使用相似性度量来比较值

时间:2014-09-29 13:18:03

标签: java query-optimization sparql similarity dbpedia

我有一个问题:

我正在关注此帖子(To use iSPARQL to compare values using similarity measures)以使用SPARQL来比较使用相似性度量的值。

特别是,我使用了这段代码:

select ?city ?percent where {
  ?city a dbpedia-owl:City ;
        rdfs:label ?label .
  filter langMatches( lang(?label), 'en' )

  bind( replace( concat( 'x', str(?label) ), "^x[^Londn]*([L]?)[^ondn]*([o]?)[^ndn]*([n]?)[^dn]*([d]?)[^n]*([n]?).*$", '$1$2$3$4$5' ) as ?match )
  bind( xsd:float(strlen(?match))/strlen(str(?label)) as ?percent )
}
order by desc(?percent)
limit 100

我动态计算所有资源的字符串。

  

'x',str(?label)),   “^ X [^ Londn] ([L])[^ ondn] ([O]?)[^ NDN] ([N])[^ DN] ([d])[^ N] ([N])。 $”,   '$ 1 $ 2 $ 3 $ 4 $ 5'

使用优秀的PC,此查询的执行时间约为40秒。当我有一个大数据集时,这个程序是不可能使用的! 我的问题是:有没有办法优化此查询以大大减少执行时间?或者,如何在合理的时间(约1秒)内实现在DBpedia上识别这样的资源的目标?

0 个答案:

没有答案