2017-08-08 142 views
1

我目前尝试设计一个本体,但我是这方面的新成员。我的本体将有类和对象属性。没有人可用。对象属性的多个域/范围

我有一个名为Has的对象属性。该属性将具有多个域和范围。例如:

学生(类区)的(对象属性)处(类范围)

母亲(类区)的(对象属性)儿童(类范围)

组织(类区)的(对象属性)处(类 范围)

我也希望有更多的领域和范围要添加的Has属性。我期望有很多的对象属性会有多个域和范围。

如何编写Java代码以将这些信息存储在OWL文件中?此外,我想知道:

如何进行查询以了解特定对象属性有多少个域和范围以及哪个域匹配哪个范围?

如何编写代码以查找对象属性是否具有特定的三元组?例如,Has (School, Department)。这个三重意味着学校有一个部门。如果这个三元组在本体中不可用,那么我需要将它插入到本体中。

+0

没有为OWL没有具体的查询语言,但你可以使用SPARQL这实际上是对RDF的标准查询语言。另一方面,如果您使用的是OWL API,那么您可以简单地将您的“查询”编写为Java方法。 – AKSW

回答

2

使用OWL API声明域和范围是通过创建OWLObjectPropertyDomainAxiom和OWLObjectPropertyRangeAxiom对象来完成的。

但是,从您对问题的描述中,我不认为同一属性的多个域和范围是最佳建模解决方案。将多个对象属性与自己的域和范围配合使用可能是更好的选择,只有在需要时才使用多个对象属性。

例子可见https://github.com/owlcs/owlapi/wiki/Documentation