I'm curious about how the flight/train search engines combine the results from multiple sources. For example, let's say I'm asking to go from London to Paris, and let's assume there are no direct flights for whatever reason. However, there is a flight from London to Lille (North of France), and then a train from there to Paris. An extreme example would be where there is no direct connection either, but you can get to your destination by combining plane, train, bus and finally taxi or a ride-sharing service.
How would a search engine effectively find the best option? It has access to a basic API from each provider that allows it to ask for rides from point A to B at a specific time. It does not have a database of all available rides and flights though, it can only query each provider's API but those queries are quite slow (if you have to do hundreds of them) and costly, so the objective is to minimize the amount of queries.
I'm thinking about making a small ride-sharing comparator as a side project (and maybe include bus/train/taxi as well) and I'm not sure where to start or if this is even doable considering the constraints.
I believe my problem is not simply about "connecting the dots" - the suggested questions assume that you know all the dots and you just need to find the best path. In my case it's a bit different because not only do I not know the best path, but I do not even know which "dots" do I have. I can make queries such as "is there a ride from A to B" but I can't ask "give me all the rides you offer", which means I'm looking for advice on how can I efficiently query for potential "dots" without using the bruteforce approach of asking for all possible combinations (which would DoS the provider's site).