Protege-OWL: Class 每个 <value> 必须有一个
Protege-OWL: Class must have one of each <value>
我是 protege 的新手,我必须使用曼彻斯特 OWL 语法为具有与数独相似属性的网格建模。
我一直在寻找,但我似乎无法找到一种方法来制定一个公理 "each column must have 4 cells, and must have each one of these values "。
假设有一个 4x1 列,每个单元格必须包含一个数字,并且该列必须包含所有数字 [1:4].
我已经设置了一些对象、数据属性和对象属性,我将把它们留在这里。我会把完整的 .owl 文件留在这里,这样就可以加载它,从而更容易提供帮助。
非常感谢所有帮助。
Prefix: dc: <http://purl.org/dc/elements/1.1/>
Prefix: owl: <http://www.w3.org/2002/07/owl#>
Prefix: rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
Prefix: rdfs: <http://www.w3.org/2000/01/rdf-schema#>
Prefix: GridTest: <http://www.semanticweb.org/existance/ontologies/2017/4/GridTest#>
Prefix: xml: <http://www.w3.org/XML/1998/namespace>
Prefix: xsd: <http://www.w3.org/2001/XMLSchema#>
Ontology: <http://www.semanticweb.org/existance/ontologies/2017/4/GridTest>
Datatype: xsd:int
Datatype: xsd:integer
ObjectProperty: GridTest:hasCell
SubPropertyOf:
GridTest:hasRelation
Domain:
GridTest:Grid
InverseOf:
GridTest:isCellOf
ObjectProperty: GridTest:hasColum
SubPropertyOf:
GridTest:hasRelation
Domain:
GridTest:Grid
Range:
GridTest:Grid
InverseOf:
GridTest:isColumOf
ObjectProperty: GridTest:hasRelation
ObjectProperty: GridTest:isCellOf
InverseOf:
GridTest:hasCell
ObjectProperty: GridTest:isColumOf
InverseOf:
GridTest:hasColum
DataProperty: GridTest:hasValue
Characteristics:
Functional
Domain:
GridTest:Cell
Range:
{"1"^^xsd:int , "2"^^xsd:int , "3"^^xsd:int , "4"^^xsd:int}
Class: GridTest:Cell
SubClassOf:
GridTest:Grid,
GridTest:hasValue exactly 1 xsd:int
Class: GridTest:Colum
SubClassOf:
GridTest:Grid,
GridTest:hasCell exactly 4 GridTest:Cell
Class: GridTest:Grid
SubClassOf:
GridTest:hasColum exactly 4 GridTest:Colum
Individual: GridTest:cell1
Facts:
GridTest:isCellOf GridTest:col,
GridTest:hasValue 1
Individual: GridTest:cell2
Facts:
GridTest:isCellOf GridTest:col
Individual: GridTest:cell3
Facts:
GridTest:isCellOf GridTest:col
Individual: GridTest:cell4
Facts:
GridTest:isCellOf GridTest:col
Individual: GridTest:col
Facts:
GridTest:isColumOf GridTest:grid
Individual: GridTest:grid
编辑:重点是,当我 运行 推理器为某些单元格赋值时,它将推断其他单元格的值。 e.x: cell1 = 1, cell2 =2, cell3 = 3 => 推理机将推断 cell4 的值为 4.
我已经通过改变方法为这个项目和这个问题提出了一个具体的解决方案。 Cell 不是具有 Value 的 Class,而是可以通过认为 Value 可以是需要放入 Cell 中的实体来轻松完成。
按照这个思路,一切都可以归结为轴子中的逻辑表达式。
通过拥有一个 class 值,一个为个人增加价值的数据 属性,以及用正确的数据 属性 断言代表价值的个人,它可以简单地也就是说,Cell 对象 (hasvalue value 1) or (hasValue value 2) ...
和 hasvalue exactly 1 value
我是 protege 的新手,我必须使用曼彻斯特 OWL 语法为具有与数独相似属性的网格建模。
我一直在寻找,但我似乎无法找到一种方法来制定一个公理 "each column must have 4 cells, and must have each one of these values "。 假设有一个 4x1 列,每个单元格必须包含一个数字,并且该列必须包含所有数字 [1:4].
我已经设置了一些对象、数据属性和对象属性,我将把它们留在这里。我会把完整的 .owl 文件留在这里,这样就可以加载它,从而更容易提供帮助。
非常感谢所有帮助。
Prefix: dc: <http://purl.org/dc/elements/1.1/>
Prefix: owl: <http://www.w3.org/2002/07/owl#>
Prefix: rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
Prefix: rdfs: <http://www.w3.org/2000/01/rdf-schema#>
Prefix: GridTest: <http://www.semanticweb.org/existance/ontologies/2017/4/GridTest#>
Prefix: xml: <http://www.w3.org/XML/1998/namespace>
Prefix: xsd: <http://www.w3.org/2001/XMLSchema#>
Ontology: <http://www.semanticweb.org/existance/ontologies/2017/4/GridTest>
Datatype: xsd:int
Datatype: xsd:integer
ObjectProperty: GridTest:hasCell
SubPropertyOf:
GridTest:hasRelation
Domain:
GridTest:Grid
InverseOf:
GridTest:isCellOf
ObjectProperty: GridTest:hasColum
SubPropertyOf:
GridTest:hasRelation
Domain:
GridTest:Grid
Range:
GridTest:Grid
InverseOf:
GridTest:isColumOf
ObjectProperty: GridTest:hasRelation
ObjectProperty: GridTest:isCellOf
InverseOf:
GridTest:hasCell
ObjectProperty: GridTest:isColumOf
InverseOf:
GridTest:hasColum
DataProperty: GridTest:hasValue
Characteristics:
Functional
Domain:
GridTest:Cell
Range:
{"1"^^xsd:int , "2"^^xsd:int , "3"^^xsd:int , "4"^^xsd:int}
Class: GridTest:Cell
SubClassOf:
GridTest:Grid,
GridTest:hasValue exactly 1 xsd:int
Class: GridTest:Colum
SubClassOf:
GridTest:Grid,
GridTest:hasCell exactly 4 GridTest:Cell
Class: GridTest:Grid
SubClassOf:
GridTest:hasColum exactly 4 GridTest:Colum
Individual: GridTest:cell1
Facts:
GridTest:isCellOf GridTest:col,
GridTest:hasValue 1
Individual: GridTest:cell2
Facts:
GridTest:isCellOf GridTest:col
Individual: GridTest:cell3
Facts:
GridTest:isCellOf GridTest:col
Individual: GridTest:cell4
Facts:
GridTest:isCellOf GridTest:col
Individual: GridTest:col
Facts:
GridTest:isColumOf GridTest:grid
Individual: GridTest:grid
编辑:重点是,当我 运行 推理器为某些单元格赋值时,它将推断其他单元格的值。 e.x: cell1 = 1, cell2 =2, cell3 = 3 => 推理机将推断 cell4 的值为 4.
我已经通过改变方法为这个项目和这个问题提出了一个具体的解决方案。 Cell 不是具有 Value 的 Class,而是可以通过认为 Value 可以是需要放入 Cell 中的实体来轻松完成。
按照这个思路,一切都可以归结为轴子中的逻辑表达式。
通过拥有一个 class 值,一个为个人增加价值的数据 属性,以及用正确的数据 属性 断言代表价值的个人,它可以简单地也就是说,Cell 对象 (hasvalue value 1) or (hasValue value 2) ...
和 hasvalue exactly 1 value