Xsd Proté;gé;数据时间限制
我有一个数据属性ShowTime,它具有域Show和范围xsd:dateTime。我想知道是否有办法断言数据时间范围必须包含在“2018-01-01TX:X:X”中,以便在该日期有一个固定的日期和一个可变的小时 我尝试过曼彻斯特语法: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
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