I'm struggling with this problem for a long time, and I'm sure a lot of you out there are having similar problems too: when studying from a e-textbook I read and annotate in one app and make flashcards in another, bookmark interesting sites in my browser, collaborate over e-mail or instant-messaging, jot random notes and ideas in yet another app, keep my bibliographies in yet another app, do calculations different software packages, etc. And over time I start losing track of things.
There are open-source packages for doing all these things, but there isn't a single one that glues them together. Another issue is that many note-taking apps are just too structured and unflexible. For example, you need to manually tag every note, make links between notes, etc. It would be a good thing if such an app had some kind of an underlying semantic engine, so that when you're working on something, the software shows you similar things that you've worked on in the past, or similar things your colleague is working on currently, etc.
I'm thinking of suggesting Computer Science Department at my faculty to start an open-source project for such an app, and I'd like to hear some feature brainstorming.