繁体   English   中英

使用耶拿读取限制约束

[英]Reading restriction constraints using Jena

我有一些对象限制,例如

hasVendor some Vendor
hasYear some integer[minLength 2, maxLength 4, >=1995, <=2012]
hasPrice only string[pattern "/^[0-9]+(\.[0-9]{2})?$/"]

供应商是一个类别。 我按照此链接中的说明进行操作: https : //stackoverflow.com/a/7805455/1138148以阅读限制。 我需要使用Jena从这些限制中的每一个获取约束值。 在第一种情况下,我能够获得'Vendor'作为约束,但是对于第二和第三种情况,我得到了一些类似值的垃圾:

7cbf42c2:137784f42b4:-7d1f7cbf42c2:137784f42b4:-7d29分别。 这些值是什么? 我该如何检索模式以及值minLength,1995等。

这些是那些限制中的中间节点的bnode标识符。 与以曼彻斯特语法进行序列化显示的结果相比,结果数据中的“填充”更多。 您将需要在w3c上查看OWL到RDF的映射文档 ,以了解有关该过程的更多信息。

我不建议您自己进行验证。 如果要在OWL中表示这些内容,则可以使用推理程序来告诉您什么时候违反了限制。 这将在大多数情况下有效,但是要真正实现此功能,您需要了解开放世界与封闭世界之间的一些陷阱。 您还可以查看Pellet提供的“完整性约束验证”之类的东西它使您可以在OWL中编写约束并将封闭世界的语义应用于它们,这提供了一种更自然的工作方式(尤其是如果您来自RDBMS世界)他们。

但是,如果您必须手动处理这些限制,则需要进一步深入研究这些限制的底层RDF结构,以获取所需的位,或者使用实际设计用于OWL的API ,例如OWLAPI

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM