From Wikipedia, the free encyclopedia
Developer(s)TU Graz, selection:arts
Stable release1.0 / 1. Juni 2013
Written inJava, PHP
Operating systemPlatform independent
Available inEnglish

WeeVis is an online tool for the development and execution of recommender applications on the basis of an adapted Wikipedia syntax (see [1]). The major advantage of WeeVis is that developing recommender applications becomes possible without computer science knowledge. Users only need some experience in the development of Wiki pages and also knowledge about the underlying product domain (e.g., computers and bicycles).

Application Areas[edit]

There are three basic types of recommender technologies.[2] Collaborative approaches determine recommendations, for example, on the basis of the similarity between different users; content-based approaches rely on the content similarity between different items. In contrast, knowledge-based recommenders exploit explicit knowledge about the underlying product assortment.[3] An example thereof are product attributes of computers (e.g., processor, memory, and harddisk). In addition, information about user preferences and the dependencies between preferences of product properties are needed (the latter is often defined in terms of constraints).

Knowledge-based Recommendation[edit]

Knowledge-based recommender systems rely on three basic components.[4] First, Products are defined which should be recommended to the user. Second, Questions are defined which are posed to users. Related answers are used to select and rank items (products). Third, the relationship between user requirements (preferences) and the corresponding item properties is defined in terms of constraints (Constraints).


A WeeVis Recommender is defined in terms of three different components: Products( &PRODUCTS { ... } ), Questions( &QUESTIONS { ... } ) and Constraints ( &CONSTRAINTS { ... } ).

Products are describing the properties of items that should be recommended to the user. Properties are separated via „!“. Specific product descriptions are then separated via „|“. Properties that represent numbers, have the proposition „#“.




The Questions component defines which questions should be posed to users. Each question starts with a "|". The different answer alternatives are represented as text (comma-separated), in terms of "()" or in terms of a structure #(from, until, interval, unit) in the case that the answers are of type number. A definition is ended with "|".


|What is the primary application of the PC? (Internet, Scientific, Multimedia)|
|What is the preferred energy efficiency? (A,B,C)|
|What is the maximum accepted price? #(200,2000,500,Euro)|
|Where do you come from? (Austria, Germany, Swizerland, USA)|
|Are you interested in a specific motherboard? (MBSilver, MBDiamond)|
|Do you prefer a specific central processing unit (CPU)? (CPUA, CPUD)|


The Constraints component defines relationships between answers given by the user and corresponding product properties. An „&INCLUDES“ constraint defines, for example, that if "energy efficiency" is specified with "A", then the product with the name "energystar" should be included (Implikation). Vice-versa, an „&EXCLUDES“ constraint defines that products should not be included if a certain condition is fulfilled. If an answer to a question is represented by a number, it can be directly compared with a product property (e.g., =, <>, >, <, >=, <=). For example, the accepted "maxprice" must be equal or higher than the price of a recommended item. IF-THEN constraints are used to specify filter conditions, for example, if the user selected "CPUA" as preferred CPU then the corresponding product must satisfy this criterion. Incompatibilities describe, which customer requirements are incompatible with each other, for example, energy class "A" is incompatible with "MBSilver".


|energy? = A &INCLUDES name = energystar|
|country? = Austria &EXCLUDES name = PC2|
|maxprice? >= #price|
|&IF cpu? = CPUA &THEN cpu = CPUA|
|&IF cpu? = CPUD &THEN cpu = CPUD|
|&IF motherboard? = MBSilver &THEN motherboard = MBSilver|
|&IF motherboard? = MBDiamond &THEN motherboard = MBDiamond|
|energyclass? = A &INCOMPATIBLEWITH motherboard? = MBSilver|



WeeVis is based on two components. The Frontend is based on MediaWiki and the Backend is a Java development that supports the execution of WeeVis recommenders (MediaWiki "read" mode). The defined products, questions, and constraints of a recommender (MediaWiki "edit" mode) are stored in an underlying SQLite database.


  1. ^ S. Reiterer, A. Felfernig, P. Blazek, G. Leitner, F. Reinfrank, G. Ninaus: WeeVis. In: Knowledge-based Configuration: From Research to Business Cases, Elsevier/Morgan Kaufmann, pp. 297-307 (2014).
  2. ^ D. Jannach, M. Zanker, A. Felfernig, G. Friedrich: Recommender Systems. An Introduction. Cambridge (2011).
  3. ^ R. Burke: Knowledge-based Recommender Systems. Encyclopedia of Library and Information Systems, pp. 180-200 (2000).
  4. ^ A. Felfernig, R. Burke: Constraint-based recommender systems: technologies and research issues. Proceedings of the 10th international conference on Electronic commerce, pp. 17-26 (2008).