Although i have a little bit of experience in developing dynamic websites using ASP technologies, but I am new to semantic web programming, and i intend to implement a website based on semantic web technology.I would like to develop a search engine, where a web user can query for keywords from the backend RDF triple store.I want to implement the website using Java and JSP.I have following questions:
Any help would be highly appreciated.
You're probably going to need an inverted-index (or an RDF store which incorporates an inverted index) to support keyword lookups. You should probably check out Lucene as an excellent, stand-alone inverted index written in Java. Various SPARQL engines have non-standard support for keyword querying (which... besides awkward emulation through
RDF is a data-model, based on the notion of triples. That's pretty much all... think of RDF as being a table with three columns, and where each row is a triple. In each cell, you can put a word.
RDF is the structure of the table. On top of that, there are various syntaxes defined to represent these triples, including RDF/XML, Turtle, N-Triples, RDFa (to name but the [semi-]standardised ones). The words are URIs (represented here by CURIEs.. the words with '
So, RDFS and OWL are languages–sets of words with well defined meaning– which allow for defining those terms... in particular classes and properties. These RDFS/OWL terms also fit into the RDF table structure:
...and thereafter—and without being explicitly told— we know that:
because that's (part of) what the words
See the second table above? That's a snippet from the SIOC vocabulary.
Now every time someone makes assertions like in the first table—on whichever site about whatever person using any account for arbitrary purpose—we can use reasoning to find out more (implicit) information, like in the third table. Given that SIOC maps to FOAF, we can ask
and still get the answer
Expand the principle to the bigger picture—where you have tables of the same structure on different remote sites, but much, much, bigger, where sites often want to describe the same sort of information, and want to do so in a standard way—and you start to get the idea. Lots of different providers of data like in the first table, and a few folks to convince these providers to use the same terms for the same thing, and to glue together whese terms (when necessary) using RDFS and/or OWL, like in the second table.
[...at least that's the Linked Data spin on things.]
Virtuoso is many things, but mostly revolves around a SPARQL query engine. It also has support for keyword search and inferencing.
[A paid representative of Virtuoso will be along shortly to give you the elevator pitch ;).]
answered 10 Mar '11, 03:51