- From: Smith, Michael K <michael.smith@eds.com>
- Date: Thu, 11 Jul 2002 15:03:43 -0500
- To: webont <www-webont-wg@w3.org>
So, I got interested in this and tried to map out meaning and examples for these related notions. Looking at this, my preference is for functional and inverseFunctional because they seem to clearly identify that this is a feature of the property. Neither unambiguousProp nor uniqueProp makes clear the direction of uniqueness. - Mike ------------------------------------------------------------ 1. functional (uniqueProp, uniqueObject) If R is functional then R(a,x) ^ R(a,y) -> x=y Example: Birthdate(person,date) We note that Birthdate(a,x) and Birthdate(b,x) does not imply anything beyond what the clauses alone imply, other than that a and b share a birthday. ------------------------------------------------------------ 2. inverseFunctional (isTheOnlyOne, unambiguousProperty, uniqueSubject) If we wanted to be totally parsimonious, I would not think we need this, give FUNCTIONAL and INVERSEOF. If it is hard to find meaningful use cases, then perhaps we should leave it as something that needs to be composed. ??? If R is inverseFunctional then R(a,x) ^ R(b,x) -> a=b Example: AddressedBy(mailbox,address) That is, various addresses may be routed to my mailbox (different named persons, different ways of describing the address, zip vs. zip+4) but they are uniquely associated with that single location. I am excluding addresses like "Postmaster" and "Santa Claus, The North Pole". Maybe US-SocialSecurityNumber makes more sense. Until we are forced to reuse social security numbers, assuming no errors in assignment, there is only one person designated by each number (at least that's what most people think!) This tags does permit people with multiple social security numbers (who surely exist). We note that AddressedBy(a,addr1) and AddressedBy(a,addr1) does not imply anything beyond what the clauses alone imply, other than that addr1 and addr1 point back to the same location. ------------------------------------------------------------ 3. oneToOne We don't have this and it is easily composed from functional and inverseFunctional. But I put it in so that we can distinguish it and provide an example. If R is oneToOne then R(a,x) ^ R(b,x) -> a=b and R(a,x) ^ R(a,y) -> x=y Example: Globally Unique Identifier (GUID) GUID(computer,id) "A universally unique identifier (UUID) is a globally unique identifier (GUID). ... Every entity that needs to be uniquely identified (such as an interface) has a GUID." From http://msdn.microsoft.com/library/ Michael K. Smith, Ph.D., P.E. EDS - Austin Innovation Centre 98 San Jacinto, #500 Austin, TX 78701 * phone: +01-512-404-6683 * mailto:michael.smith@eds.com www.eds.com
Received on Thursday, 11 July 2002 16:04:03 UTC