# Deprecated Property Reference

**Problem:** A deprecated property is used in a logical axiom. A deprecated property can be the child of another property (e.g., ObsoleteProperty), but it cannot have children or be used in blank nodes or equivalence statements. Additionally, a deprecated property should not have any equivalent properties.

**Solution:** Replace deprecated property.

```sparql
PREFIX obo: <http://purl.obolibrary.org/obo/>
PREFIX oboInOwl: <http://www.geneontology.org/formats/oboInOwl#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

SELECT DISTINCT ?entity ?property ?value WHERE {
  {
   VALUES ?property {
     owl:equivalentProperty
     rdfs:subPropertyOf
     owl:inverseOf
   }
   ?entity a owl:ObjectProperty ;
           owl:deprecated true .
   ?value1 ?property ?entity .
  }
  UNION
  {
   VALUES ?property {
     owl:equivalentProperty
     rdfs:subPropertyOf
   }
   ?entity a owl:DatatypeProperty ;
           owl:deprecated true .
   ?value1 ?property ?entity .
  }
  UNION
  {
   ?property owl:deprecated true .
   ?entity ?property ?value1 .
  }
  UNION
  {
   ?property owl:deprecated true .
   ?entity ?x ?value1 .
   ?value1 a owl:Restriction ;
          owl:onProperty ?property .
  }
  BIND (if(isIRI(?value1), ?value1, "blank node" ) as ?value)
}
ORDER BY ?entity
```
