- From: Rhoads, Stephen <SRhoads@ThruPoint.net>
- Date: Tue, 17 Feb 2004 19:12:23 -0500
- To: "'www-rdf-interest@w3.org'" <www-rdf-interest@w3.org>
- Message-ID: <B24F5C4EDA48D511B6CB00508BDFC194BB85BF@nyexchclstr.thrupoint.net>
Folks, I would appreciate some guidance as to the best approach to the problem of what I will call (for lack of a better term) making locally significant statements about a resource. I have identified three approaches which I am calling "Wrapper", "InstanceOf", and "Context". Take the example below. General Mills manufactures an ex:Cereal called Cheerios which is distributed by Whole Foods, Publix and Fresh Direct. General Mills has assigned the URI "http://www.generalmills.com/cereal/Cheerios" to Cheerios which is then used by Whole Foods, Publix and Fresh Direct as the subject of statements which report price, inventory number and availability. Note that the three retailers are making "conflicting" statements about the URI for Cheerios but that each of those statements is accurate in a local context. <ex:Manufacturer rdf:about="http://www.generalmills.com"> <ex:manufactures> <ex:Cereal rdf:about="http://www.generalmills.com/cereal/Cheerios"/> </ex:manufactures> </ex:Manufacturer> <ex:Retailer rdf:about="http://www.wholefoods.com"> <ex:distributes> <ex:Cereal rdf:about="http://www.generalmills.com/cereal/Cheerios"> <ex:price>$3.50</ex:price> <ex:inventoryNum>1377934</ex:inventoryNum> <ex:quantityAvail>50</ex:quantityAvail> </ex:Cereal> </ex:distributes> </ex:Retailer> <ex:Retailer rdf:about="http://www.publix.com"> <ex:distributes> <ex:Cereal rdf:about="http://www.generalmills.com/cereal/Cheerios"> <ex:price>$4.00</ex:price> <ex:inventoryNum>X21TE5003</ex:inventoryNum> <ex:quantityAvail>0</ex:quantityAvail> </ex:Cereal> </ex:distributes> </ex:Retailer> <ex:Retailer rdf:about="http://www.freshdirect.com"> <ex:distributes> <ex:Cereal rdf:about="http://www.generalmills.com/cereal/Cheerios"> <ex:price>$3.00</ex:price> <ex:inventoryNum>30042</ex:inventoryNum> <ex:quantityAvail>200</ex:quantityAvail> </ex:Cereal> </ex:distributes> </ex:Retailer> So anyone aggregating these statements (such as a search engine) would need a way to disambiguate potentially thousands of conflicting assertions about, among other things, the price, inventory number and availability of Cheerios. I see three approaches: 1. The "Wrapper" Approach: "THIS DISTRIBUTION of Cheerios costs $3.50" We wrap the product in a generic "Distribution" Class with a locally-assigned URI and make statements about the new URI: <ex:Retailer rdf:about="http://www.wholefoods.com"> <ex:distributes> <ex:Distribution rdf:about="http://www.wholefoods.com/products/1377934"> <ex:distributionOf rdf:resource="http://www.generalmills.com/cereal/Cheerios"/> <ex:price>$3.50</ex:price> <ex:inventoryNum>1377934</ex:inventoryNum> <ex:quantityAvail>50</ex:quantityAvail> </ex:Cereal> </ex:distributes> </ex:Retailer> 2. The "InstanceOf" Approach: "THESE Cheerios cost $3.50" We create a new product with a locally-assigned URI and declare that product to be an "instanceOf" some other product. We then make statements about the new URI: <ex:Retailer rdf:about="http://www.wholefoods.com"> <ex:distributes> <ex:Cereal rdf:about="http://www.wholefoods.com/products/1377934"> <ex:instanceOf rdf:resource="http://www.generalmills.com/cereal/Cheerios"/> <ex:price>$3.50</ex:price> <ex:inventoryNum>1377934</ex:inventoryNum> <ex:quantityAvail>50</ex:quantityAvail> </ex:Cereal> </ex:distributes> </ex:Retailer> 3. The Context Approach: "I say that Cheerios cost $3.50" We just make statements about the original URI of the product and use context to disambiguate -- source RDF files today; quadruples, quintiples, name graphs or whatever tomorrow (if I've done my homework correctly): <ex:Retailer rdf:about="http://www.wholefoods.com"> <ex:distributes> <ex:Cereal rdf:about="http://www.generalmills.com/cereal/Cheerios"> <ex:price>$3.50</ex:price> <ex:inventoryNum>1377934</ex:inventoryNum> <ex:quantityAvail>50</ex:quantityAvail> </ex:Cereal> </ex:distributes> </ex:Retailer> Or am I missing something? Do we not expect people to use RDF in this manner? Is it expected that this type of information will be stored in databases and populated "on the fly" (each Retailer creates a Cereal called Cheerios and to a machine they look like different products). That doesn't seem right to me! Appreciation in advance for any insight here. --- Stephen Note: The information contained in this message may be privileged and confidential and protected from disclosure. If the reader of this message is not the intended recipient, or an employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by replying to the message and deleting it from your computer. Thank you. ThruPoint, Inc.
Received on Tuesday, 17 February 2004 19:13:51 UTC