【发布时间】:2018-11-12 11:17:02
【问题描述】:
我有一个本体,它代表了我对职业和教育程度的看法。该模型在视觉上是这样表示的:
作为我的本体的一部分,我想为每个学位建模学位到职业“途径”(如上图所示)。以下是我试图描述的几个例子:
- 如果我获得了计算机科学学士学位,我可以成为任何类型的软件开发人员(包括 Web 开发人员,它是软件开发人员的一个子类)。
- 如果我获得护理学位,我可以成为任何类型的护士,但不能成为护士经理。
到目前为止,这是我的本体:
@prefix : <http://www.test.org/jobs#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@base <http://www.test.org/jobs> .
<http://www.test.org/jobs> rdf:type owl:Ontology .
:hasEducationLevel rdf:type owl:ObjectProperty ;
rdfs:domain :Degree ;
rdfs:range :EducationLevel .
:hasOccupation rdf:type owl:ObjectProperty ;
rdfs:domain :Job ;
rdfs:range :Occupation .
:programOfStudy rdf:type owl:ObjectProperty ;
rdfs:domain :Degree ;
rdfs:range :ProgramOfStudy .
:requiresEducation rdf:type owl:ObjectProperty ;
rdfs:domain :Job ;
rdfs:range :Degree .
:title rdf:type owl:DatatypeProperty ;
rdfs:domain :Job ;
rdfs:range xsd:string .
:Accounting rdf:type owl:Class ;
rdfs:subClassOf :Finance .
:Audit rdf:type owl:Class ;
rdfs:subClassOf :Finance .
:BachelorsDegree rdf:type owl:Class ;
owl:equivalentClass [ owl:intersectionOf ( :Degree
[ rdf:type owl:Restriction ;
owl:onProperty :hasEducationLevel ;
owl:hasValue :BachelorsEducationLevel
]
) ;
rdf:type owl:Class
] .
:Computer_Science rdf:type owl:Class ;
rdfs:subClassOf :ProgramOfStudy .
:Degree rdf:type owl:Class .
:EducationLevel rdf:type owl:Class .
:Finance rdf:type owl:Class ;
rdfs:subClassOf :ProgramOfStudy .
:Job rdf:type owl:Class .
:Licensed_Practical_Nurse rdf:type owl:Class ;
rdfs:subClassOf :Nurse .
:MastersDegree rdf:type owl:Class ;
owl:equivalentClass [ owl:intersectionOf ( :Degree
[ rdf:type owl:Restriction ;
owl:onProperty :hasEducationLevel ;
owl:hasValue :MastersEducationLevel
]
) ;
rdf:type owl:Class
] .
:Mobile_Developer rdf:type owl:Class ;
rdfs:subClassOf :Software_Developer .
:Nurse rdf:type owl:Class ;
rdfs:subClassOf :Nursing_Occupation .
:Nurse_Manager rdf:type owl:Class ;
rdfs:subClassOf :Nursing_Occupation .
:Nursing rdf:type owl:Class ;
rdfs:subClassOf :ProgramOfStudy .
:NursingDegree rdf:type owl:Class ;
owl:equivalentClass [ owl:intersectionOf ( :Degree
[ rdf:type owl:Restriction ;
owl:onProperty :programOfStudy ;
owl:someValuesFrom :Nursing
]
) ;
rdf:type owl:Class
] .
:Nursing_Occupation rdf:type owl:Class ;
rdfs:subClassOf :Occupation .
:Occupation rdf:type owl:Class .
:ProgramOfStudy rdf:type owl:Class .
:Registered_Nurse rdf:type owl:Class ;
rdfs:subClassOf :Nurse .
:Software_Developer rdf:type owl:Class ;
rdfs:subClassOf :Occupation .
:Web_Developer rdf:type owl:Class ;
rdfs:subClassOf :Software_Developer .
:BachelorsEducationLevel rdf:type owl:NamedIndividual ,
:EducationLevel .
:MastersEducationLevel rdf:type owl:NamedIndividual ,
:EducationLevel .
我考虑过使用对象属性和个体,但我不确定如何在为个体的对象属性指定值时实现我正在寻找的概括。
有人可以就我如何将这些学位建模为 OWL 中的职业途径提出建议吗?谢谢。
【问题讨论】: