From W3C Wiki
Jump to: navigation, search

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
  It was pretty easy, really.   I used 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

  1. We have a shared FindNearbyService ontology
  2. We have a shared Bookstore Products ontology
  3. We have one or more complete directory services, mapping
 geo-political regions to stores.
  1. We can RDF query each store about their stock and hours
  2. We can invoke a service offered by the stores to have them
 double-check their inventory
  1. We can invoke a service offered by the stores to have them
 reserve products


  1. 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
  1. What if a bookstore doesn't want to participate?
      Let 3rd parties provide some of the information?
      (Not like you could stop them...)