Technology stack for Semantic web application

What is the technology stack(databases/frameworks/tools) you are using for a semantic web application on Java platform?

Not the full stack but some comments on choices: I've found that going with one of Jena, OWLAPI v3, or OpenRDF presents issues. Each has it's strengths and works best when your use of it plays to that strengths.

The strengths I've seen (YMMV):

OpenRDF - Extensible creation of repositories, in memory, db, or on disk. Data federation

Jena - Querying. The OpenRDF folks are getting there but ARQ (part of Jena dist) still beats the other two implementations hands down in my experience

OWLAPI v3 - Seems tot be the cleanest API, works best with Pellet reasoner, doesn't have issues with some ontologies that Jena won't load.

So my recommendation if you can is to use OpenRDF for your data store, Jena for querying (especially see SPARQL-DL in Pellet), OWLAPI v3 (note the v3) for your ontology manipulations, and Pellet as your reasoner. If you can't use GPL and aren't able to pay the license fee, or if what you are doing falls into something you can do with a rule engine instead of a Tableau-based reasoner like Pellet, then use EulerSharp. It's fast if you use the YAP Prolog based version and call to it with their Java API.

A caveat with EulerSharp though, it's fast and simple to use but each run of the reasoning produces one run through the rules. So the facts your rules assert will not be used as input to other rules unless you add the results back in an re-run your reasoning.