Adapter Agglutination
Here’s an idea I came up with after having some frustration with hooking a 30-year-old Atari 2600 up to my five-year-old television. It’s for a website that sells adapters.
The frontend of this website would be an interface through which the user describes the connectors. The website would assist the user through the process with a dichotomous key for determining the species. The user could also input other requirements like how many outputs they want, specific ratings they want the components to have, and a minimum length they need to cover. Finally, the user can select the optimization method, such as lowest price, fewest components, or highest quality of signal.
Backend
On the backend, the product database would be represented as a directed graph in which each connector is a node. An edge between nodes represents a specific adapter, splitter, or extension cable, annotated with relevant information such as price, physical dimensions, and material.
Once the user has submitted their order, the site runs a pathfinding algorithm against the graph and finds the ideal combination of components for the parameters. The “recipe” is returned to the user along with feedback from others who ordered the same components; the user can read information about each component and opt to resubmit the order and request that specific parts (or a poorly reviewed manufacturer) be excluded.
Checkout
When the user is satisfied with the recipe, payment is processed and the components are shipped. The packaging would include some automatically generated literature, including information about each component, the proper name of each connector, and how they fit together. A copy of this will be available from the website under the user’s account, along with a troubleshooting assistant that helps identify the cause and solution to any issues that come up.
Consideration
From a computer science standpoint, this isn’t a very complicated system. In the simplest implementation, Dijkstra’s algorithm could take care of finding the shortest path between connectors. When more complicated restrictions are added, the problem becomes a flow network and can be solved as such.
On the other hand, this site requires a lot of information about each connector in its database. While I’m sure such information is available from the manufacturers, it would not be trivial to come up with an ontology for describing the enormous number of adapters that exist. Inputting and verifying such information would be an arduous task.
Finally, from a business perspective, I think it could be lucrative if managed carefully. I imagine that users would be willing to pay a little more for the convenience, and if one analyzes trends in the orders, it might be possible to optimize the inventory in response–maybe one could even begin to manufacture cheaper adapters for common recipes.
Does this idea have merit? Or has someone else already implemented it? I’m not sure I’m ready to venture into the hardware business, but I’d appreciate some feedback.