Subsumption of Literals would Reflect Inconsistencies as a Feature of the Ontology rather than a Reasoner

Good afternoon, everyone.
Please forgive me if this question or a similar one has been previously answered.  I have sifted pretty thoroughly through the mailing lists and archives for an answer, and I have tried my luck on a few search engines to no avail.  Before I pose the question, I will provide some background information that may better enable you to understand the question from my vantage point.

I am currently developing an ontology to model some, if not all of the Human Resource Information that my office manages for a Battalion-sized Military Unit.
The use of any existing ontology of similar purpose or design--not that I have been able to find one, even for personal edification--would either pose a perceived security risk or, even worse, much politicking and red tape with other agencies who would officially carry the responsibility to design and employ said ontology.
I am a SemWeb newbie.  Considering this fact, my usage of terminology may off or somewhat muddled, but I have tried to be expressive and succinct.
Given that background information, suppose my Ontology consisted of a ServiceMember Class and a hasUniqueIDNumber Datatype Property.  Further suppose that the hasUniqueIDNumber property had a Domain of ServiceMember and a Range of XSD:String.  Last, suppose that a ServiceMember Class's Necessary and Sufficient Conditions were that it has exactly one hasUniqueIDNumber relation to an XSD:String, which is the UniqueIDNumber.

Is there a way to express a Class US_ServiceMember as a Class that would subsume Instances of ServiceMember whose hasUniqueIDNumber matches the pattern "[0-9]{3}\-[0-9]{2}\-[0-9]{4}", which is the pattern of a valid Social Security Number or Tax ID Number?
Look at it another way: Assume a Class of ServiceMember with Necessary and Sufficient Conditions of exactly one hasSocialSecurityNumber relation, and a Datatype Property of hasSocialSecurityNumber whose range is XSD:String.

How can I express a Class such as a ServiceMemberHavingInvalidSSN that would subsume instances of ServiceMember whose hasSocialSecurityNumber relation points to a string that does not match the aforementioned pattern?
I think the latter form of the question is a more interesting way to look at the same problem: In it, rather than stating that hasSocialSecurityNumber has a range of a SimpleType restricted to that pattern, such an inconsistent social security number would arise as a feature of the consistent ontology.  Catch my drift?  This takes the burden of finding such an inconsistency from the reasoner--so I would think, and moves more of the logic associated with identifying it from application code to the ontology.  In other words, rather than writing a bunch of program code (for example) to deny incorrect data entry into an ontology, instead rely on the reasoner to infer that the information was incorrect, because the ontology says it is.
Perhaps a more generalized form of the question would be this:  Is there a way to express facets on datatype properties in class restrictions, equivalent classes, and similar constructs?
I am very eager to find out.  Thanks!
Very respectfully,
David A. Clark, Jr.
Sergeant, US Army
ROC, 75th Ranger RSTB
Discover the new Windows Vista

Received on Wednesday, 28 February 2007 12:07:25 UTC