我正在建立一个智能家庭本体.我现在有一个类层次结构:
我想给’RoomStatus’的子类定义.例如,我想定义当室温在18-22摄氏度范围内且湿度在40-50%范围内时,则房间温和.我试图在Protege中使用类表达式编辑器,但它不起作用.
我怎样才能实现这个定义?
提前致谢!
解决方法
Hatim’s answer可能适合你,但我认为最好不要在你不需要的时候使用等同的类公理,并避免将温和状态与特定的温度和湿度联系起来.毕竟,对于一个拥有温和身份的房间来说,具有温和身份意味着什么是非常不同的.
我建议使用General Class Axiom来说:
If a Room has a temperature and a humidity within the specified ranges,then the Room has a mild status.
作为一个阶级公理,那是:
Room and (hastemperature some integer[≥18,≤22]) and (hasHumidity some integer[≥40,≤50]) subClassOf (hasstatus value Mild_Status)
这几乎就是你在Protege中写的:
这是使用该公理的本体(在RDF / XML和TTL中):
@prefix : <https://stackoverflow.com/q/29228328/1281433/> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-Syntax-ns#> . : a owl:Ontology . :Room a owl:Class . :Status a owl:Class . :Mild_Status a owl:Namedindividual,:Status . :hasstatus a owl:ObjectProperty . :hastemperature a owl:DatatypeProperty . :hasHumidity a owl:DatatypeProperty . [ a owl:Class ; rdfs:subClassOf [ a owl:Restriction ; owl:hasValue :Mild_Status ; owl:onProperty :hasstatus ] ; owl:intersectionOf ( :Room _:b2 _:b3 ) ] . _:b3 a owl:Restriction ; owl:onProperty :hastemperature ; owl:someValuesFrom [ a rdfs:Datatype ; owl:onDatatype xsd:integer ; owl:withRestrictions ( _:b0 _:b4 ) ] . _:b0 xsd:minInclusive 18 . _:b4 xsd:maxInclusive 22 . _:b2 a owl:Restriction ; owl:onProperty :hasHumidity ; owl:someValuesFrom [ a rdfs:Datatype ; owl:onDatatype xsd:integer ; owl:withRestrictions ( _:b5 _:b1 ) ] . _:b1 xsd:minInclusive 40 . _:b5 xsd:maxInclusive 50 .
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-Syntax-ns#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns="https://stackoverflow.com/q/29228328/1281433/" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> <owl:Ontology rdf:about="https://stackoverflow.com/q/29228328/1281433/"/> <owl:Class rdf:about="https://stackoverflow.com/q/29228328/1281433/Room"/> <owl:Class rdf:about="https://stackoverflow.com/q/29228328/1281433/Status"/> <owl:Class> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty> <owl:ObjectProperty rdf:about="https://stackoverflow.com/q/29228328/1281433/hasstatus"/> </owl:onProperty> <owl:hasValue> <owl:Namedindividual rdf:about="https://stackoverflow.com/q/29228328/1281433/Mild_Status"> <rdf:type rdf:resource="https://stackoverflow.com/q/29228328/1281433/Status"/> </owl:Namedindividual> </owl:hasValue> </owl:Restriction> </rdfs:subClassOf> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="https://stackoverflow.com/q/29228328/1281433/Room"/> <owl:Restriction> <owl:onProperty> <owl:DatatypeProperty rdf:about="https://stackoverflow.com/q/29228328/1281433/hasHumidity"/> </owl:onProperty> <owl:someValuesFrom> <rdfs:Datatype> <owl:onDatatype rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/> <owl:withRestrictions rdf:parseType="Collection"> <rdf:Description> <xsd:maxInclusive rdf:datatype="http://www.w3.org/2001/XMLSchema#integer" >50</xsd:maxInclusive> </rdf:Description> <rdf:Description> <xsd:minInclusive rdf:datatype="http://www.w3.org/2001/XMLSchema#integer" >40</xsd:minInclusive> </rdf:Description> </owl:withRestrictions> </rdfs:Datatype> </owl:someValuesFrom> </owl:Restriction> <owl:Restriction> <owl:onProperty> <owl:DatatypeProperty rdf:about="https://stackoverflow.com/q/29228328/1281433/hastemperature"/> </owl:onProperty> <owl:someValuesFrom> <rdfs:Datatype> <owl:onDatatype rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/> <owl:withRestrictions rdf:parseType="Collection"> <rdf:Description> <xsd:minInclusive rdf:datatype="http://www.w3.org/2001/XMLSchema#integer" >18</xsd:minInclusive> </rdf:Description> <rdf:Description> <xsd:maxInclusive rdf:datatype="http://www.w3.org/2001/XMLSchema#integer" >22</xsd:maxInclusive> </rdf:Description> </owl:withRestrictions> </rdfs:Datatype> </owl:someValuesFrom> </owl:Restriction> </owl:intersectionOf> </owl:Class> </rdf:RDF>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。