Rhoads, Stephen wrote:
>
> 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.
>
...
This is a worthy problem, but it is not unique to RDF. It is really a
data modeling problem, and the best solution will depend on what you
want to achieve by your modeling. You would have the same set of issues
- pretty much - if you were designing a relational database.
Seems it me that a retailer sells a product, while a wholesaler
distributes products. A manufacturer also distributes products, acting
as a wholesaler (it may act as a retailer, too).
So we know that
1) A Manufacturer makes products.
2) A Manufacturer distributes products to wholesalers in lots.
3) A Wholesaler distributes products to retailers in lots.
4) A Wholesaler stocks products.
5) A Retailer stocks products.
6) A Retailer sells products individually.
These would be the building blocks for the data model. Now you have
typical modeling questions to decide on, like
a) Should there be a productLot entity?
b) Is an individual product instance sold by a retailer different from
the generic "product" made by the manufacturer - i.e., is the
manufacturer's product essentially a model number for the purposes of
this data model?
c) Do you have to track lot numbers at the retail level,in case of a
product recall?
d) What is the relation between a product lot, an individual product
instance, and the manufacturer's product designation?
The answers to these questions will depend on what you want to
accomplish or express with the data model. Notice that RDF is not
involved here. Only when you have the data model under control is it
time to translate to RDF. In fact, if you create a relational database
model, you can then pick apart the tables and turn them into triples -
that gives you your schema, basically.
Notice that this process arrives at certain specialized data structures.
They will be properly understood only by a processor that is prepared
to recognize them and work with them appropriately. A general purpose
processor will probably not be able to do this, or at least not as
effectively and quickly as a special-purpose one.
Such data structures form a kind of idiom, and I think that we will see
a great many idioms in the future, as RDF gets deployed more widely.
Cheers,
Tom P