Surprisingly (I've checked) it is valid Turtle. Where it isn't necessarily valid is working with Protege, which works on an older assumption about RDF syntactical structures. So if you use Protege heavily, you may want go with Person:Class or some similar construct. with RDFXML the translation is valid as well, but in this case you'll be looking at something like <rdf:Description rdf:about="http://namespace.to/path/to/Person#"> rather than just <Person> or <Person:Class>.
I'm curious about your use of colons after the identifiers, e.g.:
Cat: skos:broader Mammal: .
Doesn't look like valid Turtle to me. What was the thought there?
Surprisingly (I've checked) it is valid Turtle. Where it isn't necessarily valid is working with Protege, which works on an older assumption about RDF syntactical structures. So if you use Protege heavily, you may want go with Person:Class or some similar construct. with RDFXML the translation is valid as well, but in this case you'll be looking at something like <rdf:Description rdf:about="http://namespace.to/path/to/Person#"> rather than just <Person> or <Person:Class>.