- From: Dan Connolly <connolly@w3.org>
- Date: Thu, 30 Nov 2000 10:05:02 -0600
- To: "McBride, Brian" <bwm@hplb.hpl.hp.com>
- CC: www-rdf-logic@w3.org
"McBride, Brian" wrote: > > Is there a way in DAML to express the fact that a set of > properties identify a resource, e.g. that the combination > of number, street name, address line 2, address line 3, city > state and country uniquely identify an address. A concept of > a compound property might do it, but I couldn't find anything > like that. Hmm... lemme try... It's straightforward to do with a horn-clause style rule: (forall (?a1 ?a2 ?n ?sn ?al2 ?al3 ?ci ?st ?co) (implies (and (rdf:type ?a1 brian:Address) (rdf:type ?a2 brian:Address) (brian:number ?a1 ?n) (brian:number ?a2 ?n) (brian:streetName ?a1 ?sn) (brian:streetName ?a2 ?sn) (brian:addressLine2 ?a1 ?al2) (brian:addressLine2 ?a2 ?al2) (brian:addressLine3 ?a1 ?al3) (brian:addressLine3 ?a2 ?al3) (brian:city ?a1 ?ci) (brian:city ?a2 ?ci) (brian:state ?a1 ?st) (brian:state ?a2 ?st) (brian:country ?a1 ?ci) (brian:country ?a2 ?ci) ) (daml:equivalentTo ?a1 ?a2) ) But this is probably worth an idiomatic form... <daml:UnambiguousProperty id="addressStruct"> <daml-bis:structPropertyOver parseType="daml:collection"> <daml:Property resource="...number"/> <daml:Property resource="...streetName"/> ... </daml-bis:structPropertyOver> </daml:Property> where the semantics of structPropertyOver entail the rule above. an aside... I'm starting to think we should have domain-specific forms of the algebraic properties (transitive, unique, unambiguous, ...). So in stead of (or perhaps: in addition to) <daml:UnambiguousProperty ID="addressStruct"/> we'd use <rdf:Property ID="addressStruct"> <daml-bis:unambiguousOver resource="...Address"/> </rdf:Property> -- Dan Connolly, W3C http://www.w3.org/People/Connolly/
Received on Thursday, 30 November 2000 11:06:39 UTC