My original search engine was built on a multilingual ontology. I constructed this in SQL Server 2008. I’m thinking of resurrecting this code to be able to search books for research purposes. At this point it looks like a bit of work, from the point of view of coding information, let alone coding the engine in a new environment like WordPress or Drupal.
The advantage to using a search ontology for this project is that book contents almost never change, whereas places, people and things can change quite rapidly and without notification. Therefore, the main task is to figure out how to code or summarize book contents. That will mean lots and lots of tags, which I call lexemes in my search environment.
What is a Lexeme?
Lexemes are single units of lexical meaning. They can be phrases or single words. It helps if the lexemes are typical terms that people use to search. More on that in a follow up article. The main trunk of an ontological graph is a broad meaning, while finer and finer meanings, basically more specific meanings are further out on the branches. Mathematically this is called a digraph, which means a graph structure that can be traversed in multiple directions. Up the graph for broad searches, down the graph for specific terms (lexemes) that return fewer results. Hopefully the results returned match the search criteria.
It took a lot of work to get a relational database like SQL Server 2008 to maintain a digraph, but I did it using a lot of help from Joe Celko’s books. The better database choice for doing this is to use Neo4J, which is an up and coming graph database, perfectly suited for this purpose. But at this time, there is no interface between WordPress and Neo4J, but there are experimental modules in Drupal that might be usable.