【发布时间】:2014-07-28 14:27:40
【问题描述】:
我创建了一个简单的海龟文件,包含以下内容-
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
<uri:uuid#1> rdfs:label "Communication"^^xsd:string .
<uri:uuid#2> rdfs:label "Communication" .
然后我在大数据中加载了这个海龟文件。 在此之后,我运行了两个选择查询。第一个是-
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?x ?name ?datatype
WHERE {
?x rdfs:label ?name .
FILTER (STRSTARTS(?name,"Comm"))
BIND(datatype(?name) as ?datatype)
}
这给出了以下结果-
x name datatype
<uri:uuid#1> Communication xsd:string
<uri:uuid#2> Communication xsd:string
但是当我像这样在 FILTER 中使用 REGEX 运行一些不同的查询时-
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?x ?name ?datatype
WHERE {
?x rdfs:label ?name .
FILTER (regex(?name, "^Comm"))
BIND(datatype(?name) as ?datatype)
}
结果是 -
x name datatype
<uri:uuid#2> Communication xsd:string
我期待两个 SELECT 查询的结果相同,因为在这两种情况下,“通信”都是一个字符串。 你能告诉我为什么结果不同吗,是不是正则表达式。如果是这样,那么在大数据中,如果字符串是“强类型”xsd:string,那么 REGEX 就不起作用。 任何帮助将不胜感激。
【问题讨论】:
标签: bigdata