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,示例会议) 答案大致相同:如果你有一个推理者,那么一个就足够了。如果你没有,那么你可能两个都想要