What's the best method by which to create and deploy sets of plugins whose data interact?
For example, let's say I have a plugin that gathers, sorts, and displays a set of data. Within those data are keywords. If a second plugin is installed, I'd like to link those keywords to other data, but if it's not the dataset should still show.
Since it's theoretically possible that a person using my plugin wouldn't care about the keyword data and only want to display the full data set, I'd rather not produce one single plugin but, instead, write two plugins that can (a) detect each other and (b) interact on a limited basis.
Is this something that's possible or would it make more sense to simply leave it as one, larger plugin and allow people to use that plugin's settings and customized shortcodes to control data display?