# Towards a Semantics-Based Recommendation System for Cultural Heritage Collections
## 3 Developing a Recommendation System for Cultural Heritage Collections
### System Architecture and Recommendation Algorithms  
The recommendation system consists of two sub-systems: the Search Module, which implements the search process, and the Recommendation Module, which implements the viewing process and creates recommendations. Our main focus is the Recommendation Module. While considering that the recommendations rely on both the users' interaction with the search system (by selecting topics of interest before the search starts) and the objects that the users chose to view from the search results, we also developed the Search \begin{table}
\begin{tabular}{c c c c} \hline \hline
**Node** & **Amount** & **Node Property** & **Amount** \\ \hline English subject & 9 & Chinese subject & 21 \\ English keyword & 357 & Chinese keyword & 1029 \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Number of subjects and keywords. Module to receive user's input information and to generate suitable \"hook objects\" in the search results. The recommendation system uses a collaborative approach, combining content-based and knowledge-based filtering methods. It produces recommendations according to users' selection or exclusion of keywords/subjects and also takes account of users' potential interests inferred from the objects they view. Working on top of a graph database with nodes representing collection items or keywords/subjects, the system uses the Node Similarity algorithm to compute the similarity among items based on their connections with the keyword/subject nodes and recommends items that are most similar to those that the user has already shown an interest in. Users interact with the recommendation system as shown in Figure 4. They select and/or exclude subjects/keywords to start a search, and the Search Module generates a list of cultural objects that match their interests. The Search Module aims to provide objects which, in addition to meeting the users' requirements, connect to as many subjects and keywords as possible. When users view these objects, a wide variety of topics will be marked as users' interests, so that the recommendations will have the widest possible coverage, which increases the probability the system meets the users' needs. If the user stops looking for items after viewing the objects returned in the search results, the process will end. In most cases, the user will continue viewing more objects, disclosing more information about their preferences. The Recommendation Module recommends objects which are similar to the last object the user viewed, as it could be the closest to the user's target at the current stage. The procedures related to the Recommendation Module can be repeated several times until the user stops viewing. The more times it is repeated, the more accurately the recommended objects are supposed to match the user's interests. As Figure 5 shows, the recommendation system consists of four parts: Preparation, Search Module, Recommendation Module, and End of Search. The four parts cooperate to generate search results and recommendations and ensure that search activities are not affected by profiles that they are not associated with. The recommendation methods used by the system were implemented in Neo4j using the graph algorithms from the Graph Data Science Library (2.1.6) plugin of Neo4j Desktop. Figure 4: Process of user interaction with the recommendation system. 1. Preparation Before interacting with users, the Preparation Module sets a series of nodes, properties, and values to support the whole system. To support the Search and Recommendation Modules, which are based on identifying sets of objects with common subjects or keywords, the Preparation Module analyses the graph to assign weights to the relationships between objects and their associated subjects or keywords.