2017-08-08 81 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