SPARQL-进行反模式查询,选择符合CamelCase(无大写)的类名
我想找到一个查询,选择不以大写字母开头的类名。 架构是:SPARQL-进行反模式查询,选择符合CamelCase(无大写)的类名,sparql,rdf,owl,protege,Sparql,Rdf,Owl,Protege,我想找到一个查询,选择不以大写字母开头的类名。 架构是: 选择DISTINCT?prop,其中{{prop rdf:type owl:Class.}UNION{prop rdf:type owl:DatatypeProperty.}减去{#To DO}.}您不能直接在?prop上执行regex,因为它可能包含前缀,您不需要它 首先,您必须删除前缀(假设您的前缀为“:”) 它将创建一个名为propertyName的变量,该变量只包含名称(不带前缀) 现在您有了它,就可以对它执行正则表达式了。如果您
选择DISTINCT?prop,其中{{prop rdf:type owl:Class.}UNION{prop rdf:type owl:DatatypeProperty.}减去{#To DO}.}
您不能直接在?prop上执行regex,因为它可能包含前缀,您不需要它
首先,您必须删除前缀(假设您的前缀为“:”)
它将创建一个名为propertyName的变量,该变量只包含名称(不带前缀)
现在您有了它,就可以对它执行正则表达式了。如果您只想保留以大写字母开头的属性,您可以执行以下操作:
FILTER regex(str(?propertyName),"^[A-Z]")
注意:如果您想验证camelCase的每个规则,您可以检查不确定类的变量名称是否为
?prop
,但您可以始终在URI上使用正则表达式,并使用?cls a owl:Class。过滤器(regex(str(?cls,这里是你的regex))
-以大写开头的单词的regex模式很简单,所以我把它留给你
FILTER regex(str(?propertyName),"^[A-Z]")