Implement a semantic search with in a web application
This web application is about posting different kind of posts to the web application where users can search those posts by a text-based search. Basically a post has following attributes.
Title
Description
Category
Budget
Submit_date
End_date
Currently, Post content is store in sql server database under 'Post' table. What I want to do is, implement a semantic search on this posts which are publish in the application. For an example, when a user type 'Education' in search field, system should search with the meaning of that word 开发者_如何学运维'Education' rather than its text value. I like to go for a RDF/OWL based solution with Jena framework for this. But I really don't know how to start it since i'm a newbie to Semantic web. Help me to build this search. (its better if you can provide a sample application/codes).Thanks in advance.
Before jumping on to a non-trivial task, I'd say it would be wise to get a bit more acqainted with semantic web technologies, problems they set out to solve etc. You could start by reading/glancing through the "Programming the Semantic Web" book, for example.
With the high-level understanding on what's what, you could then restate your question to be more specific, maybe split in several less general questions. OWL and Jena are implementation detail, first you need a clear overall idea how your semantic search will work exactly. Will your post descriptions be semantically annotated by human authors or machines? Will you also use categories to aid your search? Will you use external systems to look up information like "what terms/concepts/resources are related to 'Education'" or will your system maintain this information by itself? And so on.
Unless you are dead-serious about going semantic, in order to improve your search I'd recommend to start with the simple things like stemming, so search for "Education" would return posts mentioning "educate", "uneducated" and the like. Add some simple tricks like this and maybe you'll realize that's all you really need... :-)
- Implementing a semantic web search engine will be no mean task. One of the methods of doing it could be classifying the post based on an ontology.Now clearly the ontology would need to evolve over time and you might want to keep several such ontologies for searching . The way i would have done it would be generating tags for a post by analyzing the text inside the post.The posts usually have only tags defined by the authors themselves,if you could somehow add more tags ,it would make the post more visible when searching and a lot more useful. Once you have the tags you can classify it based on the ontologies you have and then build on the relationships using these ontologies.I can suggest using "opencalais"(several more are available feel free to choose) web service for generating more tags.Use a few standard ontologies you can find on the web,add to them based on new tags you find .The more posts you have more relationships you will have and hence better results.
Hope it gives you a start .
精彩评论