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]")