It is good that alfresco by default supports links (associations). This way you can define many useful relationships between documents. For instance:
Document-> User => Viewed
Document-> User => Search
Document-> User => uploaded
Document-> Document => Related
Document-> Document => Same year
...
You can catch / implement most events using policies / behavior in alfresco (http://wiki.alfresco.com/wiki/Policy_Component). For example: when the onCreate event occurs (a document is created), search for documents with the same author and attach this document (add associations) to them.
Then you can implement a custom search (possibly webscript) that will return results, and for each result also return links (associations).
The only thing that bothers me is that some events are likely to be available only through the audit log, which I have no idea how to programmatically use java.
In the end, you can pass this stuff on to your engine that finds out about it.
source share