我是本体设计的新手,我有一个项目要求我匹配某些人,如果他们指出某些属性的相同值。
我在这里发布了一些关于类,对象属性,数据属性和个人的截图: https://imgur.com/a/Ak4og
更详细的解释(也可以从PICS中得到):我有类Person,它有一个子类Expert。还有类FieldOfPractice(子类:computer_science,engineering,public_administration等),专业知识(very_low,low,moderate,high,very_high)和认证(A,B,C,D),Book和Expertise_Community类。 我有数据属性firstName,lastName,dateAdded,bookName,communityName。
每个Person(也是Expert)必须具有hasCertification,hasExpertise,hasFieldOfPractice属性,这些属性都具有明显的范围。 专家必须推荐Books()和isInExpertCommunity属性。
要求:创建Person,Expert,Book等类型的个人。制定一个“推理算法”,使得对于具有与任何专家相同的认证,专业知识和实践领域的每个人,推荐的Books()和isInExpertCommunity属性都是从相应的专家个人推断到个人。
例如,让我们说:我们有一个人:Mr.A,拥有对象属性hasFieldOfPractice()computer_science,hasCertification()B,hasExpertise()very_low。
我们还有一个单独的Expert:Expert5,其值为hasFieldOfPractice(),hasCertification()和hasExpertise()作为Mr.A. Expert5具有推荐书籍()book1,book6和forInExpertiseCommunity()community4。
“推理算法”应该向Mr.A推断出书籍()书籍1,书籍6和isInExpertiseCommunity()社区4。如果Mr.A与另一位指出不同书籍的专家匹配reccomendedBooks()和/或其他专业知识社区,也应该这样做。
我也发现了一些类似的问题,但未能将答案正确地与我的问题联系起来:
How to infer isBrotherOf property between two individuals - 非常好的答案,但我需要更改SameAs()属性而不是问题中的hasBrother()。
Using Property Chains to get inferred Knowledge in an OWL Ontology(Protege) - 同样的问题,但是我认为它的预定义我的SameAs()与示例的雇员()相对应。
从我看到的我必须以某种方式链接相同的As() - >物业链 - >滚动概念,但我还没有真正理解。