Xsd Proté;gé;数据时间限制

Xsd Proté;gé;数据时间限制,xsd,owl,protege,protege4,manchester-syntax,Xsd,Owl,Protege,Protege4,Manchester Syntax,我有一个数据属性ShowTime,它具有域Show和范围xsd:dateTime。我想知道是否有办法断言数据时间范围必须包含在“2018-01-01TX:X:X”中,以便在该日期有一个固定的日期和一个可变的小时 我尝试过曼彻斯特语法: xsd:dateTime[>="2018-01-01T00:00:00"^^xsd:dateTime, <"2018-01-01T00:00:00"^^xsd:dateTime] 这就是我提出问题的原因。曼彻斯特语法使您能够创建OWL本体。然而,OW

我有一个数据属性ShowTime,它具有域Show和范围xsd:dateTime。我想知道是否有办法断言数据时间范围必须包含在“2018-01-01TX:X:X”中,以便在该日期有一个固定的日期和一个可变的小时

我尝试过曼彻斯特语法:

xsd:dateTime[>="2018-01-01T00:00:00"^^xsd:dateTime, <"2018-01-01T00:00:00"^^xsd:dateTime]

这就是我提出问题的原因。

曼彻斯特语法使您能够创建OWL本体。然而,OWL的语义不允许您尝试做什么

编辑更新的问题

如您所述定义
MorningShow
类是行不通的,因为:

(1) 没有办法像您所描述的那样动态更改类的定义

(2) 更重要的是,它违背了类的概念,类对个体所属/不属的集合给出了固定的描述。你的想法可以归结为每个可能的日期都有不同的
MorningShow
课程

我在想,在Protege的SWRL中可能有一种方法可以应用一些只提取时间的函数。然而,情况并非如此

唯一的其他选择是:

(1)考虑使用,虽然它可能是一个过激。< /P> (2) 定义自己的

DateTime
类,该类是以下数据属性的域:

一,<代码>日期范围
xsd:dateTime

二,<代码>小时数范围
xsd:byte

iii.
minutes
范围
xsd:byte

ObjectProperty: showTime
    Domain:Show
    Range: DateTime

DataProperty: date
    Domain: DateTime
    Range: xsd:dateTime

DataProperty: hours
    Domain: DateTime
    Range:  xsd:byte[>= "0"^^xsd:byte , < "24"^^xsd:byte]

DataProperty: minutes
    Domain: DateTime
    Range: xsd:byte[>= "0"^^xsd:byte , < "60"^^xsd:byte]

Class: Afternoon
    EquivalentTo: hours some xsd:byte[>= "12"^^xsd:byte , < "17"^^xsd:byte]
    SubClassOf: DateTime

Class: DateTime
Class: Morning
    EquivalentTo: hours some xsd:byte[< "12"^^xsd:byte]
    SubClassOf: DateTime

Class: Show
    SubClassOf: showTime some ShowTime

Class: ShowTime
    SubClassOf: showTime exactly 1 DateTime

Individual: dt
    Facts: hours  "8"^^xsd:byte 
ObjectProperty:showTime
域名:Show
范围:日期时间
数据属性:日期
域:日期时间
范围:xsd:dateTime
数据属性:小时
域:日期时间
范围:xsd:byte[>=“0”^^xsd:byte,<“24”^^xsd:byte]
数据属性:分钟
域:日期时间
范围:xsd:byte[>=“0”^^xsd:byte,<“60”^^xsd:byte]
班级:下午
等价于:小时数某些xsd:byte[>=“12”^^xsd:byte,<“17”^^xsd:byte]
子类:日期时间
类别:日期时间
班级:上午
等价于:小时数某些xsd:byte[<“12”^^xsd:byte]
子类:日期时间
班级:表演
子类:showTime一些showTime
类别:表演时间
子类:showTime正好是1个DateTime
个人:dt
事实:小时数“8”^^xsd:byte

非常感谢您的回答。如果我解释得不好,我道歉。我通过添加更多信息修改了问题。如果你能帮我,你真的会帮我。@Cilla你的编辑确实让你的问题更清楚了。谢谢我将再次访问,希望我能在接下来的24小时内发布更新。再次非常感谢!我能用猫头鹰的datetime做数学吗?@amin是的。你可以在我的博客上看到更多。
ObjectProperty: showTime
    Domain:Show
    Range: DateTime

DataProperty: date
    Domain: DateTime
    Range: xsd:dateTime

DataProperty: hours
    Domain: DateTime
    Range:  xsd:byte[>= "0"^^xsd:byte , < "24"^^xsd:byte]

DataProperty: minutes
    Domain: DateTime
    Range: xsd:byte[>= "0"^^xsd:byte , < "60"^^xsd:byte]

Class: Afternoon
    EquivalentTo: hours some xsd:byte[>= "12"^^xsd:byte , < "17"^^xsd:byte]
    SubClassOf: DateTime

Class: DateTime
Class: Morning
    EquivalentTo: hours some xsd:byte[< "12"^^xsd:byte]
    SubClassOf: DateTime

Class: Show
    SubClassOf: showTime some ShowTime

Class: ShowTime
    SubClassOf: showTime exactly 1 DateTime

Individual: dt
    Facts: hours  "8"^^xsd:byte