Design of a Semantic App to assign best PC Configuration based on User Data

I know this is too general for a question here. But I have just entered in this Semantic Web World. I read so much, that I need to take a break in order to process all that info.

Here's the problem: We have users that give us their characteristics based on a form (ex: I'm an Engineer who likes to watch movies in my laptop and have a budget of USD$ 2.000 to buy a laptop; or, I'm a female Architect who uses Autocad and Facebook). The idea is to give the app a Semantic Engine which can relates People Characteristics to PC's (or laptop) Characteristics.

The main goal is the self improving of the engine based on "Expert Opinions" (I agree, I disagree), and further references given by the same "Experts" (The experts btw are users with badges).

OK. What I'm looking for is not inventing the wheel again. So, I'm asking you: ¿Is there yet an App who associates, I don't know wines to user's tastes, sickness to medicines, or whatever self-improve engine of that kind? The idea is understanding the architecture of a Solution like that and start working there.

The tools I'm choosing so far are Java (with Jena) and Virtuoso for Database in RDF. I haven't yet entered on Ontology Engines or Reasoners for lack of time (I have spent two weeks. This is a free time project (3 hrs a day).

So, this is it. I want to hear from you, and I really wish to catch your attention to build an Open Source Project, if this sound interesting. If, by other hand, this Idea has be done, please, do tell me. I want to join that project!

Thank You!

I cannot provide you a full solution, however, some hints that are maybe also useful.

  1. To model characteristics of users (cognitive pattern) you can make use of the Cognitive Characteristics Ontology
  2. To model stereotypes you can make use of SKOS and/or OWL2 (see also "Stereotype modeling ")
  3. To related all this stuff and make it also portable/shareable you can make use of SPIN (see also my answer here)
  4. Finally, you can represent recommendations with the help of the Recommendation Ontology