-1

I am trying to conceive a wine cellar application for my father and for fun on my free time. I've decided to make a simple MVC with Pixi.js / JQuery and Bootstrap served by Express for the front and a REST API with JAX-RS Jersey for the back (so in Java).

The software is supposed to be use on a local level, so hosted by the user and only the user's cellar is supposed to feed the application with data.

I've studied ontologies, RDF triplets and OWL during my semester and I want to implement it in the project to organize bottles of wine and the data related to them (like the color, the castle, the grapes used and so on), but we haven't applied it to a web app.

I've been looking on the web how to use and apply ontologies in Java and I found Apache Jena which seems to be the tool I want to work with.

However, I have no idea how to organize and store the bottle of wine. Should I use only the XML file used by the OWL ontology and populated by the user provided data ? Or should I store the bottles of wine in SQL and populate my ontology with this data ?

The first solution seems a bit weird because storing data in a single file does not seems efficient. And the second solution seems also a bit off because it duplicates the data.

I think my questions comes from the fact that I do not understand how ontologies works within a webapp, so I could use some of your help to clarify my mind.

Thank you !

1 Answers1

0

this is more like a long comment than an answer. I would suggest both of them are usable depending on your exact use case. Here are some of the considerations that can help with overall design:

  • How will the user enter new data to your database ? How much constraint would like to apply during this phase ? For example would you like to let a user to enter "brown" as a wine color ?

  • Would your users need to have the data in different formats ? A tabular data structure is easy to convert to a plenty of formats: xls, csv, ods, etc, I would not say the same for xml though. You might have json or yaml as output, but those formats are about data serialisation rather than visualisation, so it might not be very handy for users.

  • How would you present your data to your users ? If you are going to present it in a tabular format like inside a <table> element, maybe a tabulated format as in sql might help you to better picture the output.

The above is about technical considerations. Now as a rule of thumb, I would say if you are sure that there is no hierarchy in the data being stored from the perspective of your user, you can favor rdf, owl etc, but this is rarely the case, since people rarely understand a blob of entangled things from an organised database. No sarcasm intended. For museums, art galleries, etc where the order of importance changes with each user, it makes sense to structure data as rdf, but for a use case such as yours, I am fairly sure a tabulated structure would simplify your design, and enchance the overall usability.

Also implementing both front end and backend in different languages for this project seems like an overkill. You might want to checkout nodejs to use javascript in the server side as well if you are starting entirely from scratch.

Kaan E.
  • 101
  • 1