title: OWL: Defining attributes and member objects of a class
body: <p>I am totally new to the domain of semantic web and need to create an ontology.</p>
  
  <p>I did a lot of research, but still didn't find a clear solution to the following problem:
  Basically, I want to describe semantically, that a certain class contains certain objects and attributes. But it's not 100%ly clear to me how to do that.
  Example: I want to describe the class "device". Now this class contains an object "application", and an attribute "ID".
  I got as far as mapping the object "application" to an ObjectProperty "hasApplication", and the attribute mapped to a DatatypeProperty "ID". So far so good, but now how do I bind them to the class?</p>
  
  <p>There were two main ways I found:</p>
  
  <ol>
  <li>Either you include the class name as domain in the definition of a property.</li>
  <li>Or you include the properties into the class definition via <code>owl:Restricion/owl:onProperty.</code></li>
  </ol>
  
  <p>But in my opinion, both ways do not capture accurately my semantic intention, because in the first case, I understand it as, that if ever an object uses the defined property, then this object has to be an instance of the class defined in the domain, BUT that does not necessarily mean that every instance of this class must have this property.
  Similarly, in the second case, binding a property to a class via <code>owl:Restriction/owl:onProperty</code>, imposes that I put a restriction on this property, i.e. cardinality or range of values. But that is not my intention, I do not want to describe "This class has this property with this restriction.", but simply "This class has this property."</p>
  
  <p>Hope you guys can clear things up a bit. :S</p>