<?xml version='1.0'?>

<!-- Statement Indication - An ObjectProperty should be samePropertyAs another ObjectProperty -->

<rdf:RDF
  xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
  xmlns:xsd ="http://www.w3.org/2000/10/XMLSchema#"
  xmlns:daml="http://www.daml.org/2001/03/daml+oil#"
  xmlns:ont1="http://www.daml.org/validator/examples/ont1.daml#"
  xmlns     ="http://www.daml.org/validator/examples/pv4.daml#"
>

<daml:Property rdf:ID="hasResource"/>
<daml:ObjectProperty rdf:ID="hasObject"/>
<daml:DatatypeProperty rdf:ID="hasDatatype"/>

<!-- OK -->
<daml:ObjectProperty rdf:ID="prop1">
  <daml:samePropertyAs rdf:resource="#hasObject"/>
</daml:ObjectProperty>

<!-- OK? -->
<daml:ObjectProperty rdf:ID="prop2">
  <daml:samePropertyAs rdf:resource="#hasResource"/>
</daml:ObjectProperty>

<!-- An ObjectProperty and DatatypeProperty can not be equivalent -->
<daml:ObjectProperty rdf:ID="prop3">
  <daml:samePropertyAs rdf:resource="#hasDatatype"/>
</daml:ObjectProperty>

<!-- For the following examples, the range of sameProperatyAs should be a Property -->
<daml:ObjectProperty rdf:ID="prop4">
  <daml:samePropertyAs rdf:resource="http://www.daml.org/validator/examples/ont1.daml#Person"/>
</daml:ObjectProperty>

<daml:ObjectProperty rdf:ID="prop5">
  <daml:samePropertyAs rdf:resource="http://www.daml.org/validator/examples/dt1.xsd#clothingsize"/>
</daml:ObjectProperty>

<daml:ObjectProperty rdf:ID="prop6">
  <daml:samePropertyAs>23</daml:samePropertyAs>
</daml:ObjectProperty>

<ont1:Person rdf:ID="sam"/>
<daml:ObjectProperty rdf:ID="prop7">
  <daml:samePropertyAs rdf:resource="#sam"/>
</daml:ObjectProperty>

</rdf:RDF>
