推断只有所有部件存在的知识

时间:2017-10-10 19:59:54

标签: owl protege rdfs reasoning

我有一个定义角色,技能和能力的本体论。角色要求技能和技能是能力的一部分。我希望能够推断出角色所需的能力。

以下是我的本体的一个示例:

@prefix : <http://www.semanticweb.org/chris/ontologies/2017/9/untitled-ontology-78#> .
@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#> .
@base <http://www.semanticweb.org/chris/ontologies/2017/9/untitled-ontology-78> .

<http://www.semanticweb.org/chris/ontologies/2017/9/untitled-ontology-78> rdf:type owl:Ontology .

:hasLevel rdf:type owl:ObjectProperty ,
                   owl:FunctionalProperty ;
          rdfs:domain :Competency .

:partOf rdf:type owl:ObjectProperty ;
        rdfs:domain :Skill ;
        rdfs:range :Competency .

:requires rdf:type owl:ObjectProperty ;
          rdfs:subPropertyOf owl:topObjectProperty ;
          rdfs:domain :Role ;
          rdfs:range :Skill .

:Competency rdf:type owl:Class ;
            rdfs:subClassOf [ rdf:type owl:Restriction ;
                              owl:onProperty [ owl:inverseOf :partOf
                                             ] ;
                              owl:someValuesFrom :Skill
                            ] .

:Role rdf:type owl:Class .

:Skill rdf:type owl:Class .

:Competency1 rdf:type owl:NamedIndividual ,
                            :Competency .

:Competency2 rdf:type owl:NamedIndividual ,
                            :Competency .

:Competency3 rdf:type owl:NamedIndividual ,
                            :Competency .

:Role1 rdf:type owl:NamedIndividual ,
                :Role ;
       :requires :Skill1 ,
                 :Skill2 ,
                 :Skill3 ,
                 :Skill4 .

:Role2 rdf:type owl:NamedIndividual ,
                :Role ;
       :requires :Skill2 .

:Skill1 rdf:type owl:NamedIndividual ,
                 :Skill ;
        :partOf :Competency1 .

:Skill2 rdf:type owl:NamedIndividual ,
                 :Skill ;
        :partOf :Competency1 ,
                :Competency2 .

:Skill3 rdf:type owl:NamedIndividual ,
                 :Skill ;
        :partOf :Competency1 ,
                :Competency2 ,
                :Competency3 .

:Skill4 rdf:type owl:NamedIndividual ,
                 :Skill .

[ rdf:type owl:AllDifferent ;
  owl:distinctMembers ( :Skill1
                        :Skill2
                        :Skill3
                        :Skill4
                      )
] .

[ rdf:type owl:AllDifferent ;
  owl:distinctMembers ( :Competency1
                        :Competency2
                        :Competency3
                      )
] .

我定义了以下属性链:

:requiresCompetency rdf:type owl:ObjectProperty ;
                    owl:propertyChainAxiom ( :requires
                                             :partOf
                                           ) .

,在给定角色的情况下,提供角色所需技能所属的能力。但是,我真正感兴趣的是推断任何能力,其中角色所需的技能是作为能力一部分的技能的超集。

由于我定义哪些技能属于哪个能力,因此开放世界的假设不适用于此问题。

0 个答案:

没有答案