Search code examples
semantic-webprotege4

How can I restrict a data property to an exact value in Protege OWL 2?


I'm taking a course in Semantic Web and I'm finding myself a little confused.

I've defined a base class named A and specified that (hasType exactly 1 integer). I want to declare different subclasses that each have a different type. For instance B is subclass of A and hasType equal to 1, C hasType equal to 2. The intention is to be able to select all B individuals since they all haveType 1, so that the type relationship is always inferred.

From what I've seen in the tutorial I'm reading, it only ever specifies how to make a data property >= or <, never just equal to some value.

I've tried experimenting to determine how to do it, e.g. class B specifies subclass of hasType some integer [=1]. But the editor always shows a red line and error message (see screenshot). What am I doing wrong? I can't seem to find much on the web about Protege. I'm using version 5.

enter image description here


Solution

  • To have a property restricted to one, (or a few) value, you need a HasValue restriction. In Manchester syntax, this is property value "1"^^xsd:int (or something syntactically similar)