I have been looking at and playing with OWL through Protege and I would like to know if I understand the "workflow" and idea of it correctly (for building up a database from scratch:
- Generate an OWL ontology for your data using Protege or equivalent
- Export this schema to RDF
- Use the classes defined as some of the elements in a triplestore along with your target data
- Export your triplestore to RDF
- Use openRDF/sesame or Jena to load the defined data and ontology
- Validate your RDF triplestore against your OWL ontology to make sure everything is ok
- Use SPARQL to get data from your RDF triplestore
- Use an OWL reasoner to do something (not really clear here)
I would like to get an idea of what others are doing and how they are approaching this type of problem.
In addition I have a specific question:
It seems like an owl reasoner is used to determine sub-class superclass relationships only for ontologies. But in terms of data how to you query for subclass - superclass relationships in SPARQL. For example if my triple store defines (pizzaID1 is-a marghareta ) and I query for vegetarian pizza in SPARQL how do I make sure that pizzaID1 is returned.
I think that the answer has something to do with generating a "full-graph", one in which every relationship is explicitly stated. Does sparql do any automatic reasoning when querying triplestores, or is generating such a full graph neccessary?