I've been reading about semantic web technologies such as RDF and OWL, and am intrigued about the possibilities of building an RDF / triple-store semantic database on top of my existing relational DBs. It's simply an R&D exercise, to see what I can do.
I like the look of OWLIM, but some basics are failing me. How exactly is one meant to build and then use an OWL ontology? Do you build it with something like Protege, then import it into your repository? Or is the ontology a byproduct of the software you develop to communicate with the repo?
It's a newbie question, but I'm just not sure where OWL fits into the grand order of things... I wouldn't ask the question if I hadn't looked around for guidance.
I don't think there's a specific way you have to use OWL to build an application. Hell, you don't even need to use it to have built a semweb application.
Generally, I think there's a couple ways people tend to use OWL. I think one of the primary ones is for reasoning. They define concepts important for their application using one of the OWL2 profiles and then use a reasoner to infer new knowledge based on their ontology. There is even some work now in using OWL ontologies as schemas for integrity constraints.
In other cases, people use it as a documentation artifact to just be able to outline what it is that is in their data, but they don't use it more formally than that.
There are some piecemeal use cases in between, and there are similar uses for RDF schemas which can be use like OWL ontologies, just with a lower level of expressive-ness or something like SKOS which can be used to simply define a taxonomy within your application without any formal expressivity attached to it.
Getting Protege going is a good start. That will let you explore some of the basics of building an ontology and most of the reasoners are available as plugins, so you can also explore how you can build your ontology and what kind of inferences you can get as a result.
Once you have an ontology, if you want to use it for something other than documentation, ie reasoning, you'll have to load it into a reasoner (Pellet, Fact++, RacerPro, HermiT) or a database that does OWL reasoning (Stardog, OWLIM). If you're not worried about reasoning, then you can drop it into any triplestore out there, access it via Sesame or Jena (if you're using Java), and still be able to query the explicit facts via SPARQL.
So I guess the short answer is that there is not a correct way to use OWL, it gets used in a variety of different capacities. One think you might find interesting is the W3C keeps a page with a list of semantic web applications. These case studies talk about problems companies had and how they approached solving them using semantic technologies. You can read through a few of them to get a better idea of how folks in various industries are making use of the technology.
There are numerous triplestores that use a relational db for the back end.
Check out Apache Jena and openrdf Sesame for triplestores that have both rdbms and "native" (pure triples) backends.
Also, I highly recommend looking at D2RQ which accesses data in your existing relational store through a triplestore overlay.
There are longer lists but those are good starting points.
Yes, you can design your ontology in Protege and then import it into your Triple Store. If your Triple Store supports reasoning and you enabled it, your Sparql queries will produce different results.
For example you can define "related-to" as a super-property to "married-to", "child-of", "parent-of" and "sibling-of". Then you can ask for all "related-to" people.
Start experiemnting with a stand-alone triple store to understand the technology. Put aside interfacing with an RDB until you are comfortable with the basics.