Bea*_*ind 2 rdf owl ontology protege4 protege
我是Protégé的新手。我正在开发一个本体。我的本体类的一部分通过“具有”关系与其他类连接。例如:
Activity has Location
Household has Location
Intervention has CloseWork
Run Code Online (Sandbox Code Playgroud)
我在Protege中将活动,家庭,位置,干预和CloseWork声明为类。我声明“具有”为ObjectProperty。为了显示类之间的关系,我设置了“具有” ObjectProperty的域和范围。例如:为了显示“活动具有位置”,我将“活动”设置为域,并将“位置”设置为范围。我将本体保存为RDF / XML语法。文件显示了我的“具有”对象属性,如下所示:
<owl:ObjectProperty rdf:about="www.ndssl.vbi.vt.edu/epidl#has">
<rdfs:domain rdf:resource="www.ndssl.vbi.vt.edu/epidl#Activity"/>
<rdfs:domain rdf:resource="www.ndssl.vbi.vt.edu/epidl#Household"/>
<rdfs:range rdf:resource="www.ndssl.vbi.vt.edu/epidl#Location"/>
<rdfs:domain rdf:resource="www.ndssl.vbi.vt.edu/epidl#Intervention"/>
<rdfs:range rdf:resource="www.ndssl.vbi.vt.edu/epidl#CloseWork"/>
</owl:ObjectProperty>
Run Code Online (Sandbox Code Playgroud)
从上述RDF语句中,不可能找出哪个域连接到哪个范围(例如,活动具有位置)。请让我知道如何解决它。
您不能使用rdfs:domain和rdfs:range这样。按说域has组成Activity,Household并且Intervention您实际上声称使用的每一个人has财产的一个实例,所有三个这些类的,在同一时间。这可能不是您想要的。
相反,您需要使用OWL限制。在这种情况下,您需要一个owl:allValuesFrom限制。您在他们所持有的班级上表达这些。因此,例如,在类上,Activity您将表达某种效果(使用Turtle语法):
:Activity rdfs:subClassOf [ a owl:Restriction ;
owl:onProperty :has ;
owl:allValuesFrom :Location . ]
Run Code Online (Sandbox Code Playgroud)
这表示如果类的实例Activity使用has属性,则该属性的值必须为Location。
冲洗并重复其他针对特定类别的限制。
另一种选择是使用更具体的属性,而不是毫无意义的一般“具有”关系。例如:
:hasLocation a owl:ObjectProperty ;
rdfs:range :Location .
:hasCloseWork a owl:ObjectProperty ;
rdfs:domain :Intervention ;
rdfs:range :CloseWork .
Run Code Online (Sandbox Code Playgroud)
这种方法的另一个优点是您的数据在语义上变得更丰富,并且更易于查询(假设这是将来将来要执行的操作)。
| 归档时间: |
|
| 查看次数: |
706 次 |
| 最近记录: |