【发布时间】:2016-10-07 22:54:15
【问题描述】:
我正在使用 Apache Jena。我已经创建了 data 属性,它的范围为 xsd:string 和作为超类添加到特定(已创建)类的限制:
DatatypeProperty dataProperty = model.createDatatypeProperty(baseURI + possibleProperty);
dataProperty.setRange(XSD.xstring);
MaxCardinalityRestriction restriction = model.createMaxCardinalityRestriction(null, dataProperty, 1);
itemClass.addSuperClass(restriction);
当我在 Protege 中打开生成的本体时,提到的限制如下所示:
DataProperty_Name max 1 Literal
我的目标是使用包含的数据类型(在数据属性的范围内指定)来获取它,例如我期待:
DataProperty_Name max 1 string
使用本体的应用程序需要知道限制的数据类型。您是否知道我需要在代码中更改哪些内容才能在限制中获取数据类型(例如字符串)而不是文字?
谢谢, 达科
【问题讨论】:
-
OWL 最大基数不是您已经认识到的数据类型的限制。您所追求的是 OWL 数据范围,特别是 FacetRestriction: w3.org/TR/owl2-syntax/#Data_Ranges 。请注意,OWL 2 的 Ontology API 并不完整(至少我几年前读到的内容是这样的)。我可以看到一个接口
DataRange,但它只支持OneOf:jena.apache.org/documentation/javadoc/jena/org/apache/jena/… -
我想,你应该在 Jena 邮件列表上问这个,也许还有对 min、max 等的支持。
-
谢谢,我也会尝试在耶拿邮件列表上得到答案。
标签: java jena owl restriction apache-jena