Хорошо, что по умолчанию Alfresco поддерживает ссылки (ассоциации). Таким образом, вы можете определить множество полезных отношений между документами. Например:
Документ-> Пользователь => просмотр
Документ-> Пользователь => поиск по
Документ-> Пользователь => загружен
Документ-> Документ => Связанный с
Документ-> Документ => Тот же год
...
Вы можете перехватить / реализовать большинство событий, используя политику / поведение под открытым небом (http://wiki.alfresco.com/wiki/Policy_Component). Например: когда происходит событие onCreate (документ создан), выполните поиск документов с тем же автором и свяжите этот документ (добавьте ассоциации) с им.
Затем вы можете реализовать пользовательский поиск (возможно, webscript), который будет возвращать результаты и для каждого результата также возвращать свои ссылки (ассоциации).
Единственное, что меня беспокоит, так это то, что некоторые события, вероятно, будут доступны только через журнал аудита, который я не знаю, как запрограммировать захват с помощью Java.
В конце концов, вы можете передать этот материал вашему движку, который будет учиться этому.