Rdf 在实例数据中声明子属性和超级属性,还是仅声明子属性?

Rdf 在实例数据中声明子属性和超级属性,还是仅声明子属性?,rdf,semantic-web,owl,ontology,description-logic,Rdf,Semantic Web,Owl,Ontology,Description Logic,如果我有一个包含子属性公理的简单本体: ex:hasChair rdfs:subPropertyOf ex:hasParticipant . 我想断言“保罗·皮尔是示例会议的主席,杰克·吉尔是示例会议的参与者。”这样写对吗: :exampleConference a ex:AcademicConference ; ex:hasChair :paul_pill ; ex:hasParticipant :jack_jill

如果我有一个包含子属性公理的简单本体:

ex:hasChair rdfs:subPropertyOf ex:hasParticipant .
我想断言“保罗·皮尔是示例会议的主席,杰克·吉尔是示例会议的参与者。”这样写对吗:

:exampleConference a ex:AcademicConference ;
                   ex:hasChair :paul_pill ;
                   ex:hasParticipant :jack_jill .
:exampleConference a ex:AcademicConference ;
                   ex:hasChair :paul_pill ;
                   ex:hasParticipant :paul_pill, :jack_jill .
或者我还需要明确指定Paul Pill是参与者(即使hasChair是hasParticipant的子角色)?也就是说,我是否需要写:

:exampleConference a ex:AcademicConference ;
                   ex:hasChair :paul_pill ;
                   ex:hasParticipant :jack_jill .
:exampleConference a ex:AcademicConference ;
                   ex:hasChair :paul_pill ;
                   ex:hasParticipant :paul_pill, :jack_jill .

这在很大程度上取决于当您试图从本体中检索数据时是否有推理器。说

hasChair&SqSubsetq;hasParticipant

相当于一阶公式:

∀x、 y.(hasChair(x,y)和rightarrow;hasParticipant(x,y))

这意味着它在逻辑上遵循hasChair(例如Conference,paulPill)和hasParticipant(例如Conference,paulPill)的关系。但是,如果您只断言hasChair语句,则需要一个OWL(或RDFS)推理器来为您证明这一点。如果您同时声明hasChair和hasParticipant语句,那么您就不需要推理机来找出hasParticipant(例如Conference,paulPill)

最近,Jena用户的邮件列表中询问了一个关于反向属性的问题

如果a有一个函数/反函数对,我应该 createStatement双向,还是应该使用某种 要填写的推理设备?我在这里创建了很多三元组,所以 我倾向于自己制作它们,因为害怕非常缓慢的移动 一个大的模型

也就是说,如果你有一个属性participatein,它是hasParticipant的倒数,问题是它是否足以断言

hasParticipant(例如会议,paulPill)

或者你是否应该两者兼而有之

hasParticipant(例如会议,paulPill)
参与(paulPill,示例会议)


答案大致相同:如果你有一个推理者,那么一个就足够了。如果您没有,那么您可能两者都想要。

这在很大程度上取决于您在尝试从本体检索数据时是否有推理器。说

hasChair&SqSubsetq;hasParticipant

相当于一阶公式:

∀x、 y.(hasChair(x,y)和rightarrow;hasParticipant(x,y))

这意味着它在逻辑上遵循hasChair(例如Conference,paulPill)和hasParticipant(例如Conference,paulPill)的关系。但是,如果您只断言hasChair语句,则需要一个OWL(或RDFS)推理器来为您证明这一点。如果您同时声明hasChair和hasParticipant语句,那么您就不需要推理机来找出hasParticipant(例如Conference,paulPill)

最近,Jena用户的邮件列表中询问了一个关于反向属性的问题

如果a有一个函数/反函数对,我应该 createStatement双向,还是应该使用某种 要填写的推理设备?我在这里创建了很多三元组,所以 我倾向于自己制作它们,因为害怕非常缓慢的移动 一个大的模型

也就是说,如果你有一个属性participatein,它是hasParticipant的倒数,问题是它是否足以断言

hasParticipant(例如会议,paulPill)

或者你是否应该两者兼而有之

hasParticipant(例如会议,paulPill)
参与(paulPill,示例会议)

答案大致相同:如果你有一个推理者,那么一个就足够了。如果你没有,那么你可能两个都想要