Knowledge modeling question (required vs. optional)

Hello everybody,

I'm working on a OWL ontology that models the basic features of a well-
known German community portal. Each member of this portal has a user
profile, and some information of this profile is required, some
optional. However, for each field, only one item must be selected. How
can I represent this in OWL? Suppose a user held a job position, and
for that Position instance it is required that the company field is
filled out (while it is optional for this Position instance to have
the career level field specified).

My first idea for the required field was to use a combination of
owl:someValuesFrom and maxCardinality restriction set to 1 to say that
each Position instance must have at least (and obviously at most) one
Company instance. I'm not quite sure whether this might be equally
expressed by using a cardinality restriction (exactly 1). All I want
to say is that there must be a company selected, but only one, ie. you
cannot select more than one company.

le_xing:Position
      a       owl:Class ;
rdfs:subClassOf
              [ a       owl:Restriction ;
                owl:onProperty le_xing:hasPositionCompany ;
                owl:someValuesFrom <.../companies#Company>
              ] ;
rdfs:subClassOf
              [ a       owl:Restriction ;
                owl:onProperty le_xing:hasPositionCompany ;
                owl:someValuesFrom <.../companies#Company>
              ] ;

For an optional field I would then replace the owl:someValuesFrom
restriction by owl:allValuesFrom (keeping the maxCardinality =
1 restriction).

Does that make sense or do I need a qualified cardinality restriction
here?

Best regards,

Martin

Received on Wednesday, 21 May 2008 10:50:48 UTC