Properties as Classes?

We've been discussing whether or not defining properties as classes makes sense.  OWL Full seems to allow this.  The pupose here is to allow some edges in a graph to have properties.  I'm wondering if this is a good idea. What are the implications of doing something like this?  Is it good practice?
 
Here's an example of what I'm talking about:
 
<owl:Class rdf:ID="A">
  <rdfs:label>Foo</rdfs:label>
</owl:Class>
 
<owl:ObjectProperty rdf:ID="edge">
  <rdfs:label>edge</rdfs:label>
  <rdfs:domain rdf:resource="#A"/>
  <rdfs:range rdf:resource="#A"/>
</owl:ObjectProperty>
 
<owl:Class rdf:about="#edge"/>
 
<owl:DatatypeProperty rdf:ID="edgeProp">
  <rdfs:label>edgeProp</rdfs:label>
  <rdfs:domain rdf:resource="#edge"/>
  <rdfs:range rdf:resource="&xsd;int"/>
</owl:DatatypeProperty>
 
FWIW, this kills SWOOP when I try to load it, but Jena reads it fine, with and without reasoners.
 
Thanks.
 
Clay Fink
Senior Software Engineer
Research and Technology Development Center
Johns Hopkins University Applied Physics  Laboratory
 
 

Received on Sunday, 10 July 2005 10:07:21 UTC