如何使类的某个实例从所需的谓词列表中只有一个谓词?
作为我学士学位论文的一部分,我正在尝试为组织创建一个普遍的本体论(我知道W3C的组织本体论的存在)。在此过程中,我想出了以下方案(以铅笔绘制的本体论)。这个想法是要拥有一个主要实体(在我的情况下是实体工作区),我可以为其设置其类型(组织,部门,职位,人,地点),并可以与自己配对(使用打字关系”关系”)建立任何任意复杂的组织结构。
我试图使用Web Vowl在线实用程序将绘制的本体论转换为RDF图,这就是我得到的()。
不幸的是,我对本体论建模理论和语义网络技术的了解还有很多不足之处,我请了解它们的人帮助我。
如果我错了,请纠正我,但我有一种感觉,在我构建的本体论中,关系实体必须一次具有所有链接。 (关系 - 关系类型 - holdspost,关系 - 关系类型 - 报告,关系 - 关系类型 - 次要组织等)。我需要关系实体实例只有一个关系(例如,仅关系 - 关系类型 - holdpost)。
想到了这个问题的一种解决方案 - 摆脱heldof,holdspost,dectersto,.. nodes,而添加一个字符串节点,其中根据关系的类型来编写所需的值。
因此,问题似乎是如何构建一个本体,该本体将提供一个仅包含列出的类型之一,而不是全部提供的关系实例。
我真的很感谢任何帮助和反馈。
我还附加了Webvowl实用程序生成的乌龟文件的内容:
#################################################################
### Generated with the experimental alpha version of the TTL exporter of WebVOWL (version 1.1.7) http://visualdataweb.de/webvowl/ ###
#################################################################
@prefix : <http://visualdataweb.org/organizationalOntology/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix wot: <http://xmlns.com/wot/0.1/> .
@prefix vs: <http://www.w3.org/2003/06/sw-vocab-status/ns#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@base <http://visualdataweb.org/organizationalOntology/> .
<http://visualdataweb.org/organizationalOntology/> rdf:type owl:Ontology ;
dc:title "Organizational structure ontology"@en;
dc:description "Ontology for modelling organizational structures, specializable to a broad variety of types of organization."@en;
owl:versionInfo "0.1"@en;
dc:creator "" .
#################################################################
### Property Definitions (Number of Property) 20 ###
# --------------------------- Property 0-------------------------
:supports rdf:type owl:ObjectProperty ;
rdfs:label "supports"@en;
rdfs:domain :Workspace;
rdfs:range :SupportedOperations .
# --------------------------- Property 1-------------------------
:constraints rdf:type owl:ObjectProperty ;
rdfs:label "limits"@en;
rdfs:domain :Workspace;
rdfs:range :BuisnessRules .
# --------------------------- Property 2-------------------------
:name rdf:type owl:DatatypeProperty ;
rdfs:label "name"@en;
rdfs:domain :Workspace;
rdfs:range rdfs:Datatype .
# --------------------------- Property 3-------------------------
:relationWorkspaceLink rdf:type owl:ObjectProperty ;
rdfs:label "relationWorkspaceLink"@en;
rdfs:domain :Relation;
rdfs:range :Workspace .
# --------------------------- Property 4-------------------------
:hasType rdf:type owl:ObjectProperty ;
rdfs:label "relationType"@en;
rdfs:domain :Relation;
rdfs:range :HeadOf .
# --------------------------- Property 5-------------------------
:hasType rdf:type owl:ObjectProperty ;
rdfs:label "relationType"@en;
rdfs:domain :Relation;
rdfs:range :HoldPost .
# --------------------------- Property 6-------------------------
:workspaceRelationLink rdf:type owl:ObjectProperty ;
rdfs:label "workspaceRelationLink"@en;
rdfs:domain :Workspace;
rdfs:range :Relation .
# --------------------------- Property 7-------------------------
:hasType rdf:type owl:ObjectProperty ;
rdfs:label "relationType"@en;
rdfs:domain :Relation;
rdfs:range :ReportsTo .
# --------------------------- Property 8-------------------------
:hasType rdf:type owl:ObjectProperty ;
rdfs:label "relationType"@en;
rdfs:domain :Relation;
rdfs:range : .
# --------------------------- Property 9-------------------------
:hasType rdf:type owl:ObjectProperty ;
rdfs:label "relationType"@en;
rdfs:domain :Relation;
rdfs:range :SubUnit .
# --------------------------- Property 10-------------------------
:hasType rdf:type owl:ObjectProperty ;
rdfs:label "relationType"@en;
rdfs:domain :Relation;
rdfs:range :MemberOf .
# --------------------------- Property 11-------------------------
:hasType rdf:type owl:ObjectProperty ;
rdfs:label "relationType"@en;
rdfs:domain :Relation;
rdfs:range :LocatesIn .
# --------------------------- Property 12-------------------------
:workspaceType rdf:type owl:ObjectProperty ;
rdfs:label "workspaceType"@en;
rdfs:domain :Workspace;
rdfs:range :Place .
# --------------------------- Property 13-------------------------
:workspaceType rdf:type owl:ObjectProperty ;
rdfs:label "workspaceType"@en;
rdfs:domain :Workspace;
rdfs:range :Organization .
# --------------------------- Property 14-------------------------
:workspaceType rdf:type owl:ObjectProperty ;
rdfs:label "workspaceType"@en;
rdfs:domain :Workspace;
rdfs:range :Department .
# --------------------------- Property 15-------------------------
:workspaceType rdf:type owl:ObjectProperty ;
rdfs:label "workspaceType"@en;
rdfs:domain :Workspace;
rdfs:range :Person .
# --------------------------- Property 16-------------------------
:workspaceType rdf:type owl:ObjectProperty ;
rdfs:label "workspaceType"@en;
rdfs:domain :Workspace;
rdfs:range :Post .
# --------------------------- Property 17-------------------------
:hasCoordinates rdf:type owl:ObjectProperty ;
rdfs:label "hasCoordinates"@en;
rdfs:domain :Place;
rdfs:range :Coordinates .
# --------------------------- Property 18-------------------------
:coordinatesString rdf:type owl:DatatypeProperty ;
rdfs:label "coordinatesString"@en;
rdfs:domain :Coordinates;
rdfs:range xsd:string .
# --------------------------- Property 19-------------------------
:description rdf:type owl:DatatypeProperty ;
rdfs:label "description"@en;
rdfs:domain :Workspace;
rdfs:range rdfs:Datatype .
### Class Definitions (Number of Classes) 17 ###
# --------------------------- Class 0-------------------------
:Workspace rdf:type owl:Class;
rdfs:label "Workspace"@en .
# --------------------------- Class 1-------------------------
:SupportedOperations rdf:type owl:Class;
rdfs:label "SupportedOperations"@en .
# --------------------------- Class 2-------------------------
:BuisnessRules rdf:type owl:Class;
rdfs:label "BuisnessRules"@en .
# --------------------------- Class 3-------------------------
:Relation rdf:type owl:Class;
rdfs:label "Relation"@en .
# --------------------------- Class 4-------------------------
:ReportsTo rdf:type owl:Class;
rdfs:label "ReportsTo"@en .
# --------------------------- Class 5-------------------------
:MemberOf rdf:type owl:Class;
rdfs:label "MemberOf"@en .
# --------------------------- Class 6-------------------------
:HoldPost rdf:type owl:Class;
rdfs:label "HoldsPost"@en .
# --------------------------- Class 7-------------------------
:HeadOf rdf:type owl:Class;
rdfs:label "HeadOf"@en .
# --------------------------- Class 8-------------------------
:LocatesIn rdf:type owl:Class;
rdfs:label "LocatesIn"@en .
# --------------------------- Class 9-------------------------
: rdf:type owl:Class;
rdfs:label "SubOrganization"@en .
# --------------------------- Class 10-------------------------
:SubUnit rdf:type owl:Class;
rdfs:label "SubUnit"@en .
# --------------------------- Class 11-------------------------
:Organization rdf:type owl:Class;
rdfs:label "Organization"@en .
# --------------------------- Class 12-------------------------
:Department rdf:type owl:Class;
rdfs:label "Department"@en .
# --------------------------- Class 13-------------------------
:Post rdf:type owl:Class;
rdfs:label "Post"@en .
# --------------------------- Class 14-------------------------
:Person rdf:type owl:Class;
rdfs:label "Person"@en .
# --------------------------- Class 15-------------------------
:Place rdf:type owl:Class;
rdfs:label "Place"@en .
# --------------------------- Class 16-------------------------
:Coordinates rdf:type owl:Class;
rdfs:label "Coordinates"@en .
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要将最大1个心脏限制添加到
关系
类:然后,如果您有以下个人:
使用个人
relationType1
和relation> relationType2
不同的是,如果您在此本体论上运行推理器,则会获得不一致的情况,因为
关系
个人通过RelionationTytype
属性链接了两次。评论中问题的答案
对象属性彼此相关,而不是类。如果有:
这意味着每当2个人
a
和b
通过hastype
链接,个人 a 是类型关系
和个人b
是类型成员
。这也意味着每个hastype
用域定义的范围,将导致a
是域的类型,b
属于类型范围。在您的示例中a
将被推断为类型关系
和b
将被引用为类型成员
,headof
,holfpost
等。此外,定义单个关系
类型关系>关系>关系
不会强迫关系>
具有任何hastype
链接到类型成员
的个体。是的,您的理解是不正确的。猫头鹰/RDF中的任何个人都可以通过所需的谓词具有尽可能多的链接。如果要通过特定谓词限制链接数量,则必须定义单个属于的类,以便它只能允许有限的链接。我已经在我的博客上写过有关此的文章在这里=“ https://henrietteharmse.com/2017/09/10/add-some-more-attributes/” rel =“ nofollow noreferrer”>在这里/2017/11/03/coopainiations-bet-bet-bexeles/“ rel =“ nofollow noreferrer”>此处。
本体学是否有生命权取决于其支持的用例。
推理是根据本体中的公理得出推论的过程。本体学具有数学逻辑含义,基于这些公理和本体中的断言可以将基于逻辑的算法应用于推论。这称为推理,并且应用程序这样做称为推理。您可以在我的论文。
You will need to add a max 1 cardinality restriction to the
Relation
class:Then, if you have the following individuals:
with individuals
relationType1
andrelationType2
distinctIf you run a reasoner over this ontology, you will get an inconsistency because the
relation
individual is linked twice via therelationType
property.Answers to questions in comment
Object properties relates 2 individuals with each other, not classes. if you have:
it means that whenever 2 individuals
a
andb
are linked viahasType
, individuala
is of typeRelation
and individualb
is of typeMemberOf
. This also means for eachhasType
defined with domain an ranges, will causea
to be of the type of the domain andb
to be of type of the range. In your examplea
will be inferred to be of typeRelation
andb
will be referred to be of typeMemberOf
,HeadOf
,HolfPost
etc. Furthermore, defining an individualrelation
of typeRelation
will not forcerelation
to have anyhasType
link to an individual of typeMemberOf
.Yes, your understanding is incorrect. Any individual in OWL/RDF can have as many links via as many predicates as they want. If you want to restrict the number of links via a specific predicate you have to define class the individual belongs to such that it will only allow a limited amount of links. I have written about this on my blog here, here and here.
Whether the ontology has a right to live depends on the use cases it supports.
Reasoning is the process via which inferences are derived based on the axioms in an ontology. An ontology has mathematical logic meaning which based on these axioms and assertions in your ontology can apply logic based algorithms to derive inferences. This is called reasoning and the application doing it, is called a reasoner. You can read more about it in chapter 3 of my dissertation.