我有一个OWL类Verse,它有一个名为hasContent的数据属性。属性的范围是字符串。使用DL查询,例如 Verse和hasContent“完整的一节经文”,我可以找到包含指定文本的经文。我现在想要找到包含某些单词的所有诗句。
可以在Protege OWL查询中使用正则表达式吗?有什么例子吗?或者我需要使用更复杂的查询语言SPARQL?
答案 0 :(得分:2)
您可以直接在OWL Manchester语法中使用XSD facets(您在Protege中使用的语法)。通过facet,您可以通过pattern
构造实现正则表达式所能完成的一些功能。实现是特定于推理器的,有些可能有时工作,有时不工作: - /
是的
一些链接,以了解更多信息:
答案 1 :(得分:0)
SPARQL是RDF的查询语言,这是有原因的。如果使用普通的正则表达式(使用SPARQL),则无法定义目标(实例,类,属性等),也不会利用使用本体的好处。正则表达式适用于纯文本,但本体不是纯文本,您不应该这样处理它。 我强烈建议您使用SPARQL,它在restricting string values时已包含正则表达式。
另一个解决方案(我不会反过来建议)是将目标本体导出为RDF / XML文档,并在其上应用正则表达式搜索,就像它是一个简单的文档一样。
希望我帮忙!