title: weighted RDF predicate (owl:ObjectProperty)
body: <p>in RDF a statement is represented with S,P and O; In OWL the owl:ObjectProperty represents the predicate logic. </p>
  
  <pre><code> (S) (P) (O)   
    I like dog
  
  &lt;owl:Class rdf:about="Person" /&gt;
  &lt;owl:NamedIndividual rdf:about="I"&gt;
      &lt;rdf:type rdf:resource="Person"/&gt;
      &lt;like rdf:resource="Dog"/&gt;
  &lt;/owl:NamedIndividual&gt;
  
  &lt;owl:Class rdf:about="Pet" /&gt;
  &lt;owl:NamedIndividual rdf:about="Dog"&gt;
      &lt;rdf:type rdf:resource="Pet"/&gt;
  &lt;/owl:NamedIndividual&gt;
  
  &lt;owl:ObjectProperty rdf:about="like"&gt;
      &lt;rdfs:domain&gt;
          &lt;owl:Restriction&gt;
              &lt;owl:onProperty rdf:resource="like"/&gt;
              &lt;owl:someValuesFrom rdf:resource="Person"/&gt;
          &lt;/owl:Restriction&gt;
      &lt;/rdfs:domain&gt;
      &lt;rdfs:range&gt;
          &lt;owl:Restriction&gt;
              &lt;owl:onProperty rdf:resource="like"/&gt;
              &lt;owl:someValuesFrom rdf:resource="Pet"/&gt;
          &lt;/owl:Restriction&gt;
      &lt;/rdfs:range&gt;
  &lt;/owl:ObjectProperty&gt;
  </code></pre>
  
  <p>But how about to describe "the degree" I like dogs? 
  How can I give a property or value to a predicate?
  One solution I got is to extend one (S,P,O) statement to 3 statements.
  For example,</p>
  
  <pre><code>(S)             (P)        (O) 
   Person       isSrcOf    LikeRelation
   Pet          isTargetOf LikeRelation
   LikeRelation hasValue   [0~100]
  </code></pre>
  
  <p>It should work but obviously it will let ontology 3 times bigger :(</p>
  
  <p>I appreciate any suggestion!</p>