
我想给’RoomStatus’的子类定义.例如,我想定义当室温在18-22摄氏度范围内且湿度在40-50%范围内时,则房间温和.我试图在Protege中使用类表达式编辑器,但它不起作用.
我怎样才能实现这个定义?
提前致谢!
我建议使用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>总结
以上是内存溢出为你收集整理的rdf – 使用数值数据表达式定义Protege类全部内容,希望文章能够帮你解决rdf – 使用数值数据表达式定义Protege类所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)