Java 使用Jena的阅读限制

Java 使用Jena的阅读限制,java,jena,owl,protege4,Java,Jena,Owl,Protege4,我有一些对象限制,比如 hasVendor some Vendor hasYear some integer[minLength 2, maxLength 4, >=1995, <=2012] hasPrice only string[pattern "/^[0-9]+(\.[0-9]{2})?$/"] hassvendor某个供应商 haswear some integer[minLength 2,maxLength 4,>=1995,这些是这些限制中中间节点的bnode标识符。

我有一些对象限制,比如

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

haswear some integer[minLength 2,maxLength 4,>=1995,这些是这些限制中中间节点的bnode标识符。结果数据中的“东西”比用曼彻斯特语法序列化时显示的要多得多。您需要在w3c上查看以了解更多关于这一情况的信息

我不建议你自己进行验证。如果你打算在OWL中表示这些东西,你可以使用推理器告诉你什么时候违反了限制。这在很大程度上是可行的,但是开放世界和封闭世界之间存在一些陷阱,你需要意识到这一点才能真正发挥作用。你也可以k类似于完整性约束验证,它允许您在OWL中编写约束,并将封闭世界语义应用于约束,从而提供更自然(特别是如果您来自RDBMS世界)的处理方式


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

这些是这些限制中中间节点的bnode标识符。结果数据中的“东西”比在曼彻斯特语法中序列化时显示的要多得多。您将想在w3c上查看以了解更多关于如何实现的信息

我不建议你自己进行验证。如果你打算在OWL中表示这些东西,你可以使用推理器告诉你什么时候违反了限制。这在很大程度上是可行的,但是开放世界和封闭世界之间存在一些陷阱,你需要意识到这一点才能真正发挥作用。你也可以k类似于完整性约束验证,它允许您在OWL中编写约束,并将封闭世界语义应用于约束,从而提供更自然(特别是如果您来自RDBMS世界)的处理方式


但是,如果您必须手动处理这些限制,那么您将需要进一步深入研究这些限制的底层RDF结构,以获得您正在寻找的位,或者使用一个实际设计用于处理OWL的API,例如。

谢谢。我对OWL和Jena是新手。因此,如果我有一组令牌,如何应用我的reasoner to it并检查每个令牌是否违反了限制。请给出一个代码示例。我一点也不知道您所说的令牌是什么意思。如果您将本体与数据一起放入推理器,推理器将告诉您,除其他外,数据是否与本体一致w.r.t。也就是说,您的estrictions或其他公理被违反。我强烈建议您阅读《OWL入门》和一些关于开放世界推理的内容,以便更好地理解这些东西是如何工作的。谢谢。我对OWL和Jena是新手。因此,如果我有一组令牌,我如何将我的推理器应用于它,并检查每个令牌是否违反了限制或规则不是。请给出一个代码示例。我一点也不知道您所说的令牌是什么意思。如果您将本体与数据一起放入推理机,推理机将告诉您,除其他事项外,数据是否与本体一致。也就是说,是否违反了您的限制或其他公理。我强烈建议你读了《猫头鹰入门》和一些关于开放世界推理的内容,以便更好地理解这些东西是如何工作的。