我刚刚学习如何在 SPARQL 中编写查询(通过 prot\xc3\xa9g\xc3\xa9 平台)。所以,这是一个非常基本的问题,但我无法解决。
\n\n我有一个名叫爱丽丝的人(它位于猫头鹰:东西之下)。
\n此人有一个名为 textualValue 的数据属性,指定为 xsd:normalizedString。
我正在编写下面的查询来提取以 ali 开头的个人,这应该反过来产生 alice。我基本上使用正则表达式操作数进行过滤。每当我使用此规范执行 SPARQL 查询时,我都没有得到任何结果,有人可以指出我错在哪里吗?
\n\nSELECT distinct ?x\nWHERE { ?x rdf:type owl:NamedIndividual.\nFILTER regex(?textualValue, "^ali", "i") }\nRun Code Online (Sandbox Code Playgroud)\n
您需要获取属性的值textualValue- 它不会自动放入变量中。
根据您的描述,这是一个大纲:您需要填写详细信息:
PREFIX owl: ....
PREFIX rdf: ....
PREFIX x: <InsertTheRightURIhere>
SELECT distinct ?x
WHERE {
?x rdf:type owl:NamedIndividual ;
x:textualValue ?v .
FILTER regex(str(?v), "^ali", "i")
}
Run Code Online (Sandbox Code Playgroud)
str只获取 中 RDF 术语的词汇部分?v。