2013-04-07 4 views
2

안녕하세요 저는 'Person'이라는 클래스의 데이터 속성 'SSN'을 정의해야하는 온톨로지를 설계하고 있습니다. 이제 내가 생각하고있는 한 가지 제한이 유일 할 것입니다. 그것은 'Person'클래스의 두 인스턴스가 동일한 SSN을 가져야합니다. 질문 : Protege에서 이러한 제한을 정의하는 방법은 무엇입니까?OWL 온톨로지 디자인 with protege

http://www.co-ode.org/resources/reference/manchester_syntax/

은 몇 가지 제한 사항을 정의하지만 난 아무것도 내 경우에는 적합하지 않습니다 생각합니다.

답변

3

inverse-functional으로 SSN 속성을 정의하면됩니다. 역 기능적 속성은 지정된 범위 값을 볼 때마다 대상 리소스가 동일해야 함을 의미합니다. p이 역 기능이며, 경우에 따라서, 당신은 :

R0 p N . 
R1 p N . 

는 당신은 R0R1은 동일한 개인을 표시해야한다는 것을 추론 할 수있다. 다른 공리를 통해 R0R1이 실제로 다르다면 추론자가 모델이 일치하지 않는다고보고합니다. open-world 지식 기반에서 원하는 일관성 검사를받을 수있는 수준입니다.

+0

필요하다면 다른 Individual ('DifferentFrom') 공리를 사용하여'R0'와'R1'을 쉽게 다르게 지정할 수 있습니다. – loopasam

+0

SSN은 내 경우에는 데이터 속성이고 개체 속성은 아닙니다. 역 기능은 객체 속성에만 유효합니다. –

+0

'urn : x-ssn : 12345678'과 같은 URI 체계를 사용하여 각 SSN에 대한 개인을 생성 할 수 있습니다. 실제 SSN은'skos : notation'을 사용하여 속성으로 사용합니다. 이것은 다른 잠재적 인 이익을 가져다 줄 것입니다 : 예를 들면, 당신은 주어진 SSN이 출생 한 날짜와 그 사람의 사망일 (그리고 알려진 경우)에 유효하다는 것을 나타내는 속성을 첨부 할 수 있습니다. 이미 SSN에 대한 공식 URI 체계가있을 수 있습니다. –