在 SPARQL 中使用正则表达式绑定变量?
Using regex in SPARQL to bind variables?
我正在研究一个 OWL 知识图,以获取有关 Covid 大流行病患者的信息。我一直在使用 SPARQL 将字符串从电子表格转换为适当的对象和属性值。
我有像 Infected by P231 and P456 and P39393
这样的字符串 我想要的是可以将变量绑定到患者 ID 的东西。我认为这应该不会太难,因为字符串只遵循几种模式。例如,字符串将有一个、两个或三个患者 ID,仅此而已,因此我可以编写一个匹配每个单独案例的查询。
我以为我可以使用正则表达式来做到这一点,但现在我更仔细地研究了正则表达式,我认为它所能做的就是告诉我存在这样的患者 ID,但不像 SUBSTR
这样的函数实际上会return 我想要的字符串的一部分,所以我可以将它绑定到一个变量,正则表达式只是 returns true 或 false 某些字符串匹配模式或不匹配。对吗?
如果这是正确的,是否还有其他方法可以在 SPARQL 中进行模式匹配,我实际上可以将变量绑定到匹配部分模式的子字符串?还是我需要求助于像 Python 这样的完整编程语言才能做到这一点?
REPLACE
is the function to apply a regular expression, with ()
match groups, and calculate a return string based on the match using </code> to get the group actually matched. It is based on <a href="https://www.w3.org/TR/xpath-functions/#func-replace" rel="nofollow noreferrer"><code>fn:replace
来自“XPath 和 XQuery 函数和运算符”以及许多 SPARQL 函数。
BIND (REPLACE("123", "(.)..", "") AS ?str)
会将 ?str
设置为“1”。
我正在研究一个 OWL 知识图,以获取有关 Covid 大流行病患者的信息。我一直在使用 SPARQL 将字符串从电子表格转换为适当的对象和属性值。
我有像 Infected by P231 and P456 and P39393
这样的字符串 我想要的是可以将变量绑定到患者 ID 的东西。我认为这应该不会太难,因为字符串只遵循几种模式。例如,字符串将有一个、两个或三个患者 ID,仅此而已,因此我可以编写一个匹配每个单独案例的查询。
我以为我可以使用正则表达式来做到这一点,但现在我更仔细地研究了正则表达式,我认为它所能做的就是告诉我存在这样的患者 ID,但不像 SUBSTR
这样的函数实际上会return 我想要的字符串的一部分,所以我可以将它绑定到一个变量,正则表达式只是 returns true 或 false 某些字符串匹配模式或不匹配。对吗?
如果这是正确的,是否还有其他方法可以在 SPARQL 中进行模式匹配,我实际上可以将变量绑定到匹配部分模式的子字符串?还是我需要求助于像 Python 这样的完整编程语言才能做到这一点?
REPLACE
is the function to apply a regular expression, with ()
match groups, and calculate a return string based on the match using </code> to get the group actually matched. It is based on <a href="https://www.w3.org/TR/xpath-functions/#func-replace" rel="nofollow noreferrer"><code>fn:replace
来自“XPath 和 XQuery 函数和运算符”以及许多 SPARQL 函数。
BIND (REPLACE("123", "(.)..", "") AS ?str)
会将 ?str
设置为“1”。