簡體   English   中英

owl:functionalProperty&owl:differentFrom

[英]owl:functionalProperty & owl:differentFrom

對於我認為是一個非常簡單的場景,我會感激一些幫助。 但作為OWL和GraphDB的相對新手,我可能會犯一些基本錯誤。

我有一個非常簡單的Turtle指定的OWL示例如下:

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix demo: <urn:demo> .

demo:Gender a owl:Class .

demo:Male a demo:Gender .
demo:Female a demo:Gender .

demo:Male owl:differentFrom demo:Female .

demo:Person a owl:Class .

demo:hasGender a owl:ObjectProperty, owl:FunctionalProperty;
                rdfs:domain demo:Person;
                rdfs:range demo:Gender .

demo:Per1 a demo:Person;
            demo:hasGender demo:Male;
            demo:hasGender demo:Female .

本質上,我有一個名為Gender的類,並聲稱有2個不同的成員男性和女性。

然后我定義另一個具有功能屬性hasGender的Person,其范圍是Gender。

最后,我斷言了Person的一個實例,還有兩個單獨的斷言,它們都是男性和女性。

據我了解,這是一個矛盾的事情; 我斷言hasGender屬性是有用的,因此,對於給定的Person,應該只有一個性別。 我也斷言男性和女性是不同的,所以當我將它導入GraphDB時,我期待它因此而失敗。

但是GraphDB很樂意加載這兩個斷言。 我錯過了什么嗎?

創建存儲庫時

如果您嘗試導入數據,GraphDB將不得不說:

 Could not import data; com.ontotext.trree.consistency.ConsistencyException: Consistency check eq_diff1_1 failed: urn:demoMale owl:differentFrom urn:demoMale urn:demoMale owl:sameAs urn:demoMale 

或者,取消選中該復選框,導入數據,然后執行:

PREFIX sys: <http://www.ontotext.com/owlim/system#>
INSERT DATA { []  sys:consistencyCheckAgainstRuleset "owl2-rl" }

另一種建模方法是將MaleFemale創建為Person不相交的子類。
owl:FunctionalProperty不同, owl:AllDisjointClassesOWL 2 QL涵蓋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM