Search code examples
rdfsemantic-webjenaontologyowl

When should I use Semantic Web Technology?


My goal is to implement a semantic search for my data. My data domain contains proffession skills. I need additional relations for my data structure like 'sameAs' and 'broader'. So, for example if I would search for 'Relation database' I would also expect 'SQL' and 'RDBMS' as results.

My question is, does it makes sense to describe these relations with RDF (sematic web technologies). My skills are already placed in a MySql database, so I would create just the relations(e.g sameAs or equal) between the skills by the help of semantic web technologies. Is this approach overengineering for my scenario? I don´t know when should I use semantic web technology.


Solution

  • There are a few things to consider:

    • Will your database be a "data silo", i.e. self-contained or (eventually) aimed at interlinking with the wider world? I.e. will you find yourself normalizing entities, concepts, etc. that are already available as Linked Data, and/or would you like that other people start linking to your data? For instance, do you want to generate webpages with semantic markup that search engines will pick up?
    • Do you need some kind of inference, e.g. treating broader as a transitive property, so that you application knows that if X is a broader concept for Y, and Z is a broader concept for X, Z is also a broader concept for Y.
    • Is there a semantic web solution out of the box that more-or-less fits you use case? The ability to build upon a framework, e.g. the Linked Media Framework can be very decisive when it comes to the viability of semantic web technology for a use case.

    If your answers are definitly negative, I would just start working on it with "traditional" technology.

    If doubting, you could start development, but keep issues such as stable identifiers in the back of your mind. During development you then could try importing it into LMF or write a mapping with D2R and see if it brings something extra to the table.

    You could also try browsing/asking the Stackoverflow-equivalent for the Semantic Web.