ReadyForBookTwo
This is a scenario illustrating FindNearbyService. It can be useful to give a more vivid impression of that use case and to provide the kinds of specific details that sometimes matter in understanding whether a designed solution will be effective.
SandroHawke tells this story:
When my wife was pregnant with our third child, in about the seventh month, she was injured and became unable to climb stairs. She was essentially confined to the second floor of our house. Bedroom, bathroom, computer, ... what else does one need? She was going stir-crazy by about the third day. Her solace was reading fiction.
It was sometimes my job to get her the books she wanted. She reads quickly, and she loves trilogies, but it seems silly to buy a whole trilogy when she may not like the first book. So she would get the first book delivered (via amazon, alibris, etc), and by about half way through she would let me know if she wanted the rest of the trilogy. But by then she would be only a few hours from ready to read it.
So it's 6:30pm (stores will be closing soon) and she really wants a copy of Rise of a Merchant Prince (Raymond Feist, 1995, Harper'Collins). What do I do?
It was pretty easy, really. I used yp.yahoo.com to find all the bookstores near me, in order of distance, and called all the ones with plausible names (skipping "Professional Books") one by one. I asked (as far as necessary): (1) how long they would still be open, (2) if they carried science fiction, and (3) whether they had this particular book in stock. All of them were courteous when it came to (3), willing to check their computer system and then volunteering to check the shelves and set aside the book. It took about 10 minutes of calling to find a copy, a 30-minute drive away. Mission accomplished.
Could the Semantic Web do better?
How well it fares depends in large part on how fully the stores themselves choose to participate. The technique used above only reaches stores choosing to participate rather fully in the telephone system. Each of them chose to have business listings in the Bookstore category, and chose to offer a small service for free to an anonymous caller. It would be hard to do better without such participation from the businesses themselves.
Design 1
- We have a shared FindNearbyService ontology
- We have a shared Bookstore Products ontology
- We have one or more complete directory services, mapping
geo-political regions to stores.
- We can RDF query each store about their stock and hours
- We can invoke a service offered by the stores to have them
double-check their inventory
- We can invoke a service offered by the stores to have them
reserve products
Issues:
- What if the standard ontologies are not a good fit?
Use your own and publish a mapping where clients have to use it?
Use your own, establish a mapping, and publish both versions?
- What if a bookstore doesn't want to participate?
Let 3rd parties provide some of the information? (Not like you could stop them...)