2016-03-27 116 views
0

我已经使用定义了其他数据的数据填充了我的本体。现在,我想对该特定数据类型(小时)进行限制,该数据类型定义为int,并且其值为0-23。限制将根据白天和夜间的时间划分(例如小时分钟6 int)和(小时最大17 int),并定义为对象属性isDay,但问题是推论没有发生。 谢谢你在前进, 艾略特Protege数据类型限制

+0

数据类型限制不适用于对象属性,所以这将是一个问题。另一个是:你在使用哪个推理者?并非所有支持用户定义的数据类型。 – Ignazio

+0

我不知道它如何与对象属性一起工作,但如果您有一个带有子类“DayEvent”的类“Event”,您可以为其定义一个等效的类“owl:onProperty:hour; owl:someValuesFrom [ xsd:minInclusive“6”^^ xsd:int; xsd:maxInclusive“17”^^ xsd:int; owl:onDataRange xsd:整数。 ]。' –

+0

@Ignazio,这个回答有用吗?正如我从另一起案件中提到的那样,请告诉我是否需要改进。 –

回答

1

您可以创建一个: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]