在gStore内核版本v0.9.1中,新增了Filter语句中对算术及逻辑运算的支持,我们来详细介绍下如何运用在SPARQL查询中。
1. 示例数据
为了更好的演示Filter语句中对算术及逻辑运算的支持功能,使用以下的数据作为示例数据:
<Alice><姓名>"Alice" .
<Alice> <年龄>"24"^^<http://www.w3.org/2001/XMLSchema#integer> .
<Alice> <资产分>"30.2"^^<http://www.w3.org/2001/XMLSchema#float> .
<Alice> <行为分>"90.5"^^<http://www.w3.org/2001/XMLSchema#float> .
<Alice> <身份分>"98.0"^^<http://www.w3.org/2001/XMLSchema#float> .
<Alice> <申请次数>"0"^^<http://www.w3.org/2001/XMLSchema#integer> .
<Bob> <姓名> "Bob" .
<Bob> <年龄>"28"^^<http://www.w3.org/2001/XMLSchema#integer> .
<Bob> <资产分>"81.8"^^<http://www.w3.org/2001/XMLSchema#float> .
<Bob> <行为分> "60.5"^^<http://www.w3.org/2001/XMLSchema#float>.
<Bob> <身份分>"68.0"^^<http://www.w3.org/2001/XMLSchema#float> .
<Bob> <申请次数>"3"^^<http://www.w3.org/2001/XMLSchema#integer> .
<Eve> <姓名> "Eve" .
<Eve> <年龄>"20"^^<http://www.w3.org/2001/XMLSchema#integer> .
<Eve> <资产分> "10.0"^^<http://www.w3.org/2001/XMLSchema#float>.
<Eve> <行为分>"10.0"^^<http://www.w3.org/2001/XMLSchema#float> .
<Eve> <身份分>"60.0"^^<http://www.w3.org/2001/XMLSchema#float> .
<Eve> <申请次数>"5"^^<http://www.w3.org/2001/XMLSchema#integer> .
<Francis> <姓名> "Francis" .
<Francis> <年龄>"35"^^<http://www.w3.org/2001/XMLSchema#integer> .
<Francis> <资产分>"94.6"^^<http://www.w3.org/2001/XMLSchema#float> .
<Francis> <行为分>"10.0"^^<http://www.w3.org/2001/XMLSchema#float> .
<Francis> <身份分> "75.6"^^<http://www.w3.org/2001/XMLSchema#float>.
<Francis> <申请次数>"10"^^<http://www.w3.org/2001/XMLSchema#integer> .
复制
2. 算术运算
算术运算即Filter语句中支持加、减、乘、除运算
示例:查询评估总分(资产分+行为分+身份分)小于100的用户姓名和年龄
SELECT?name ?age
WHERE
{
?person <姓名>?name .
?person <年龄>?age .
?person <资产分>?x .
?person <行为分>?y .
?person <身份分>?z .
FILTER(?x+?y+?z <"100"^^<http://www.w3.org/2001/XMLSchema#float>)
}
复制
结果:根据示例数据,我们查询到的结果为Eve
{
"results": {
"bindings": [
{
"name": {
"type": "literal",
"value": "Eve"
},
"age": {
"type": "typed-literal",
"datatype": "http://www.w3.org/2001/XMLSchema#integer",
"value": "20"
}
}
]
}
}
复制
3. 逻辑运算
逻辑运算即Filter语句中支持与(&&)或(||)运算
示例:查询年龄小于30,且申请次数小于5次的用户姓名和年龄
SELECT ?name ?age
WHERE
{
?person <姓名>?name .
?person <年龄>?age .
?person <申请次数>?total .
FILTER(?age <"30"^^<http://www.w3.org/2001/XMLSchema#integer> &&?total < "5"^^<http://www.w3.org/2001/XMLSchema#integer>)
}
复制
结果:根据示例数据,我们查询到的结果为Alice和Bob
{
"results": {
"bindings": [
{
"name": {
"type":"literal",
"value": "Alice"
},
"age": {
"type":"typed-literal",
"datatype":"http://www.w3.org/2001/XMLSchema#integer",
"value":"24"
}
},
{
"name": {
"type":"literal",
"value": "Bob"
},
"age": {
"type":"typed-literal",
"datatype":"http://www.w3.org/2001/XMLSchema#integer",
"value":"28"
}
}
]
}
}
复制
以上仅为简单的查询示例,在实际业务场景中会有更多复杂的运算条件,我们通过Filter的算术及逻辑运算,进一步丰富了组图模式的范围过滤方式。
针对gStore有任何问题也可通过加运营同学微信,邀请加入gStore图谱社区咨询。


最后修改时间:2022-01-06 08:40:59
文章转载自图谱学苑,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
数据库国产化替代深化:DBA的机遇与挑战
代晓磊
1299次阅读
2025-04-27 16:53:22
2025年4月国产数据库中标情况一览:4个千万元级项目,GaussDB与OceanBase大放异彩!
通讯员
776次阅读
2025-04-30 15:24:06
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
531次阅读
2025-04-17 17:02:24
一页概览:Oracle GoldenGate
甲骨文云技术
496次阅读
2025-04-30 12:17:56
GoldenDB数据库v7.2焕新发布,助力全行业数据库平滑替代
GoldenDB分布式数据库
478次阅读
2025-04-30 12:17:50
优炫数据库成功入围新疆维吾尔自治区行政事业单位数据库2025年框架协议采购!
优炫软件
365次阅读
2025-04-18 10:01:22
给准备学习国产数据库的朋友几点建议
白鳝的洞穴
343次阅读
2025-05-07 10:06:14
XCOPS广州站:从开源自研之争到AI驱动的下一代数据库架构探索
韩锋频道
314次阅读
2025-04-29 10:35:54
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
数据库运维之道
289次阅读
2025-04-28 11:01:25
国产数据库图谱又上新|82篇精选内容全览达梦数据库
墨天轮编辑部
284次阅读
2025-04-23 12:04:21