human
346) Find addresses typed incorrectly as :Building or :Construction that have negative civic numbers.
gpt
```sparql
PREFIX :<http://example.org/ontology#>
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>

SELECT ?addr ?num
WHERE {
  ?addr rdf:type :Address .
  FILTER(EXISTS { ?addr rdf:type :Building } || EXISTS { ?addr rdf:type :Construction })
  ?addr :hasCivicNumber ?num .
  FILTER(?num < 0)
}
```