My current project uses some interesting technologies. A little background. The client bought into a technology that was demonstrated in a prototype of our project developed by a group at a University in California.
This technology, called OWL (Web Ontology Language) allows the client to build a knowledge base of domain-specific information which is very quickly searchable.
From the W3C site: "OWL is intended to be used when the information contained in documents needs to be processed by applications, as opposed to situations where the content only needs to be presented to humans. OWL can be used to explicitly represent the meaning of terms in vocabularies and the relationships between those terms. This representation of terms and their interrelationships is called an ontology. OWL has more facilities for expressing meaning and semantics than XML, RDF, and RDF-S, and thus OWL goes beyond these languages in its ability to represent machine interpretable content on the Web"
So Ontology is a way of representing relationships between objects. And using these relationships, OWL allows very complex searches to be performed on the data contained in the knowledge repository.
The drawback.... There are not really any good .NET libraries available to read/write/search OWL, so we are using a few JAVA libraries to write some custom JAVA code to perform these functions, and the JAVA code is wrapped with a Java WebService.
The JAVA libaries we are using include Jena (the API for OWL), Jastor (business objects to interact with Jena), JAXB (for serializing and de-serializing XML to and from our application), and AXIS2 (for web services on Tomcat Web Server).
So this presetns a bit of a logistical challenge as we are interoping with Java through a web service facade. Good stuff. I need to hop on a plane now, but more later. I promise...