java 查询优化_SPARQL查询优化

我正在处理针对公共DBPedia endpoints http://dbpedia.org/sparql运行的SPARQL查询,虽然返回了结果,但查询需要很长时间才能执行 . 我不是SPARQL的专家,并希望有人可以帮助我优化查询 .

该查询检索以下内容:

属性URI

对象URI

属性标签

对象标签

object数据类型

...如果对象标签(或对象本身,如果它是字符串数据类型)包含关键字 .

例如,在下面的查询中,我正在查找对象标签(如果存在标签)或对象本身(如果字符串数据类型)包含关键字“伦敦”的结果 .

running the query against the endpoint时需要一些时间才能完成 . 我知道查询使用较少的通用关键字会更快完成,但是将关键字发送到查询的应用程序通常会发送相对通用的关键字,所以我希望以某种方式优化查询 .

请注意,我必须使用BIND操作将对象URI与对象标签绑定,因为使用此结果数据的应用程序无法接受此字段中的空白值,这在对象是字符串数据类型时会发生 .

SELECT ?propertyLabel ?property ?objectLabel ?object datatype(?object) AS ?objectDataType

WHERE

{

?URI ?property ?object .

{

?object rdfs:label ?objectLabel .

?objectLabel bif:contains '"London"' .

FILTER langMatches(lang(?objectLabel), 'en')

}

UNION

{

?URI ?property ?object .

?object bif:contains '"London"' .

FILTER ( lang(?object) = ''

|| langMatches(lang(?object), 'en')

) .

BIND(?object AS ?objectLabel)

}

?property rdfs:label ?propertyLabel .

FILTER langMatches(lang(?propertyLabel), 'en') .

}

ORDER BY DESC(count(?property))

LIMIT 500

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值