There is one thing clear: if you define domain and range, that can be very counterproductive.
RDF software will conclude that whenever the defined property is used, then its subject and object ARE BY DEFINITION of the type defined for domain and range.
So it is the reverse of what we hoped for: input validation.
Exampledefinition: Musician plays MusicInstrument
data: JohnDoe a musician; John Doe plays VacuuumCleaner
Conclusion: VacuumCleaner is a MusicInstrument !!
My conclusionDefine it in OWL as locally restricted Properties, see
http://www.15926.org/publications/templates/inheritance/index.htm (comments welcome)
But don't expect this OWL code to be suitable for validation either.
The trend seems to go for validation by means of SPARQL, see attached file.
For that we need endpoints for the data model ontology and for the template ontology.