0
我已经使用定义了其他数据的数据填充了我的本体。现在,我想对该特定数据类型(小时)进行限制,该数据类型定义为int,并且其值为0-23。限制将根据白天和夜间的时间划分(例如小时分钟6 int)和(小时最大17 int),并定义为对象属性isDay,但问题是推论没有发生。 谢谢你在前进, 艾略特Protege数据类型限制
我已经使用定义了其他数据的数据填充了我的本体。现在,我想对该特定数据类型(小时)进行限制,该数据类型定义为int,并且其值为0-23。限制将根据白天和夜间的时间划分(例如小时分钟6 int)和(小时最大17 int),并定义为对象属性isDay,但问题是推论没有发生。 谢谢你在前进, 艾略特Protege数据类型限制
您可以创建一个:DayEvent
类为:Event
子类,然后对你要指定为天插槽范围内的数据类型属性:hour
申报的限制,比方说6 < = DayEvent小时< = 17,这种方式:
:DayEvent rdf:type owl:Class ;
owl:equivalentClass [
rdf:type owl:Restriction ;
owl:onProperty :hour ;
owl:someValuesFrom [ rdf:type rdfs:Datatype ;
owl:onDatatype xsd:integer ;
owl:withRestrictions (
[ xsd:minInclusive 6]
[ xsd:maxInclusive 17]
)
]
] ;
rdfs:subClassOf :Event .
然后与数据类型属性:hour
具有值在指定范围内的所有个人将被推断为的:DayEvent
成员。
这至少可以与Protégé4.3和5一起使用,其中包括HermiT,FaCT ++和Pallet。
等效的类定义将在Protégé语法中看起来像这样:hour some xsd:integer[>= 6 , <= 17]
。
数据类型限制不适用于对象属性,所以这将是一个问题。另一个是:你在使用哪个推理者?并非所有支持用户定义的数据类型。 – Ignazio
我不知道它如何与对象属性一起工作,但如果您有一个带有子类“DayEvent”的类“Event”,您可以为其定义一个等效的类“owl:onProperty:hour; owl:someValuesFrom [ xsd:minInclusive“6”^^ xsd:int; xsd:maxInclusive“17”^^ xsd:int; owl:onDataRange xsd:整数。 ]。' –
@Ignazio,这个回答有用吗?正如我从另一起案件中提到的那样,请告诉我是否需要改进。 –