问题描述
我在Protege 5.5中有一个示例本体(我在下面添加了它)。通过这种本体,我需要根据对象的属性对个体进行分类。我的规则就是这样;
如果单个A(
subClassOf: A
)具有精确的1对象属性(hasRelation
)与B(subClassOf: B
)或单个B(subClassOf: B
)具有精确的1对象属性(hasRelation
)和A(subClassOf: A
),则它是subClassOf: OnetoOne
。
如果单个A(
subClassOf: A
)具有至少2个对象属性(hasRelation
)和B(subClassOf: B
),则它是subClassOf: ManyToOne
。
如果单个B(
subClassOf: B
)具有至少2个对象属性(hasRelation
)和A(subClassOf: A
),则它是subClassOf: OnetoMany
。
如果单个A(
subClassOf: A
)具有至少2个对象属性(hasRelation
),而A(subClassOf: A
)和B(subClassOf: B
)具有至少2个对象属性(hasRelation
)和A(subClassOf: A
),则它是subClassOf: ManyToMany
。
我认为也许可以使用swrl完成此操作,但我无法使其正常工作。
任何想法表示赞赏。
Prefix: : <http://www.semanticweb.org/ontologies/example#>
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: xml: <http://www.w3.org/XML/1998/namespace>
Prefix: xsd: <http://www.w3.org/2001/XMLSchema#>
Ontology: <http://www.semanticweb.org/ontologies/example>
ObjectProperty: hasRelation
characteristics:
Symmetric
Class: A
SubClassOf:
Data
Class: B
SubClassOf:
Data
Class: Data
Class: ManyToMany
SubClassOf:
RelationType
Class: ManyToOne
SubClassOf:
RelationType
Class: OnetoMany
SubClassOf:
RelationType
Class: OnetoOne
SubClassOf:
RelationType
Class: RelationType
Individual: A1
Facts:
hasRelation B1
Individual: A2
Facts:
hasRelation B2
Individual: A3
Facts:
hasRelation B2
Individual: A4
Facts:
hasRelation B3,hasRelation B4
Individual: B1
Individual: B2
Individual: B3
Individual: B4
disjointClasses:
ManyToMany,ManyToOne,OnetoMany,OnetoOne
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)