- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个智能家居本体。我现在有一个像这样的类层次结构:
我想为“RoomStatus”的子类给出定义。例如,我想定义当室温在18-22摄氏度范围内,湿度在40-50%范围内时,房间处于温和状态。我尝试在 Protege 中使用类表达式编辑器,但它不起作用。
如何实现这个定义?提前致谢!
最佳答案
Hatim's answer可能对您有用,但我认为不必要时最好不要使用等效类公理,并避免将温和状态与特定温度和湿度联系起来。毕竟,房间的温和状态与桑拿房的温和状态有很大不同。
我建议使用通用类公理来表示:
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 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29228328/
我使用protege创建了两个本体,并保存为A.owl,B.owl。我知道protege-4.0可以合并很多本体。我想使用protege-owl API将本体A.owl和B.owl合并到C.owl;但
我已经在本体中建立了以下模型: 俱乐部雇用一些球员,球员具有国籍一些国籍,球员具有国民状态值National_Player,Country等于国籍。 我希望本体论可以推断出: 如果某个玩家具有某个国籍
创建后,对象属性似乎无法重命名。这是Protégé的特征吗?如果可能,我该怎么做?删除属性并添加另一个重命名的属性是一个非常烦人的过程。我正在使用 Protégé 4.3.0。 最佳答案 该过程与重命
是否可以使用 Arbitrary Length Path Matching在 protege SPARQL 查询选项卡中? 最佳答案 您正在使用 Snap SPARQL Query Plugin ,而
我必须研究用三元组存储表示的给定相当大的本体,以了解表示什么类型的内容以及它是如何组织的。我在配备 Intel Core i7-6500U 和 8 GB RAM 的 Windows 10 计算机上使用
This是我用 protege 5 创建的本体。 如果我使 cl1 和 cl2 不相交,则本体不一致,但如果我取消选中 is_friend_of 自反,则本体不一致不一致了。我的本体有什么问题? 我只
我想进行推断,例如此图中灰色虚线表示的属性: 我已经断言了一个普遍的公理: (hasTaste some Bitter) SubClassOf: goesWellWith some (hasTaste
首先我想提一下,我是本体论和门徒方面的新手。我尝试使用 protege 5.0 开发本体。我用枚举范围定义了一些数据属性,我在数据范围表达式中这样定义它们:{"Balanced"、"Clever"、"
如何用图像(例如 abc.png)描述类实例并在 Protege 5.2.0 中显示它们?我已经阅读了使用小部件的教程,但是当前版本的 Protege-Owl 中不再提供“表单”选项卡。 最佳答案 有
在 OWL 中有一个类是两个不同类的子类有什么问题吗? 最佳答案 这正是OWL 形式语义的定义。例如A SubClassOf B and A SubClassOf C等价于公理A SubClassOf
我在 protege(4.3.0) 中创建了实体、类、对象属性和所有内容,但菜单中的启动推理器项目被禁用。我需要做些什么来激活启动推理器吗? 最佳答案 在此tutorial on YouTube, 4
我想将 Protege 中的一些类从不同的本体导入到我的本体中。例如,我需要类 foaf:Person , org:Site , vcard:Organization , 还有很多。 我不想自己创建它
我正在使用 Protege 4.2.0。 当我写一个新的本体时,我可以将它保存到我机器上的一个本地文件中,例如,GreatNewUpperOntology.owl 如果我现在想将该本体导入到一个新的本
我已经创建了关系 A 'is functional parent of' B并定义 'has functional parent'作为 'is functional parent of' 的倒数. '
Protege 3 有一个向导选项卡可以一次添加多个实例,但 Protege 5 没有。我如何一次向一个类添加多个实例,例如将它们从 Excel 复制并粘贴到 Protege? 最佳答案 尝试使用 C
我想使用空白节点在 Protege 中添加一条语句。例如,如果我将其表示为 Turtle RDF,则它将是 something like : [ rdf:type rdf:Statement ;
我的工作是关于推荐系统的图书馆书籍。作为输入我需要书分类本体。在我的本体论中对图书馆书籍进行分类。除了兄弟类“作者”、“书籍”、“Isbn”之外,该分类还有 14 个类别。书籍类中的个体是书籍的主题(
我正在构建一个智能家居本体。我现在有一个像这样的类层次结构: 我想为“RoomStatus”的子类给出定义。例如,我想定义当室温在18-22摄氏度范围内,湿度在40-50%范围内时,房间处于温和状态。
我正在使用 Protege 4.3 创建我的第一个本体,所以我遇到了一些问题 假设我们有类 Shop、Mall 和 Person 以及属性 works-in 和是的一部分。 所以第一个问题是我们想要:
个人(实例)有什么方法可以连接到具有对象属性的类吗?例如,在这种情况下,个人是模块名称:Web Programming。对象属性:isClassified。类:网络。 我曾尝试将 Web 编程定义为类
我是一名优秀的程序员,十分优秀!