2
2

Hello

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:

  1. I am currently studying Jena framework and SPARQL to start with,but i am not sure what other technologies i need to study in order to implement the website.
  2. What is the difference between RDF and OWL, I have gone through a lot of web resources but i am still confused.As per my understanding RDF and OWL both define relationship between concepts but OWL is more rich in terms of defining relations
  3. What is meant by different OWL Vocabularies like FOAF, SIOC etc.Why do we need these vocabularies?
  4. What exactly is the purpose of Virtuoso Open Link Software [1]

Any help would be highly appreciated.

Thanks!

[1]: http://ods.openlinksw.com/dataspace/dav/wiki/Main/VirtJenaProvider

asked 10 Mar '11, 02:13

Priyam's gravatar image

Priyam
50027
accept rate: 0%

edited 10 Mar '11, 03:56

Signified's gravatar image

Signified ♦
23.5k1623


1) I am currently studying Jena framework and SPARQL to start with,but i am not sure what other technologies i need to study in order to implement the website.

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 REGEX filters... is not part of the standard). SIReN might also be interesting for you as something which extends Lucene with support for RDF.

2) What is the difference between RDF and OWL, I have gone through a lot of web resources but i am still confused.As per my understanding RDF and OWL both define relationship between concepts but OWL is more rich in terms of defining relations.

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.

| :Barney     | rdf:type                    | foaf:Person                     |
| :Barney     | foaf:holdsAccount           | _:Signified                     |
| _:Signified | sioc:name                   | "Signified"                     |
| _:Signified | rdf:type                    | sioc:UserAccount                |
| _:Signified | foaf:accountServiceHomepage | <http://semanticoverflow.com/>  |
| _:Signified | sioc:creatorOf              | :thisAnswer                     |

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 ':' in them), literals ("Signified"), or blank-nodes (_:Signified). You and I can (hopefully) read what this table states: Barney is a Person who holdsAccount with name "Signified" of type UserAccount on the site semanticoverflow and he wrote this answer. Machines can't read this. They need to be told some more information about the terms used... particularly the terms like foaf:Person, sioc:UserAccount (classes); and terms like foaf:holdsAccount, sioc:name (properties); etc. These terms are likely to be reused a lot by other folks who want to make similar statements.

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:

| sioc:UserAccount  | rdfs:subClassOf  | foaf:OnlineAccount  |
| sioc:creatorOf_of | owl:inverseOf    | sioc:has_creator    |

...and thereafter—and without being explicitly told— we know that:

| _:Signified | rdf:type         | foaf:OnlineAccount       |
| thisAnswer  | sioc:hasCreator  | _:Signified              |

because that's (part of) what the words rdfs:subClassOf and owl:inverseOf mean, and what that meaning entails (taken together with the first table). The complicated stuff in the RDFS and OWL standards nails down what these special RDFS and OWL terms mean, and what precisely they entail (...and how a system can figure out those entailments, and how hard that task is).

[also, see here and here]

3)What is meant by different OWL Vocabularies like FOAF, SIOC etc. Why do we need these vocabularies?

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

?accounts rdf:type foaf:OnlineAccount .

and still get the answer _:Signified, even if we only have the knowledge from the first two RDF tables above.

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.]

4) What exactly is the purpose of Virtuso Open Link Software (http://ods.openlinksw.com/dataspace/dav/wiki/Main/VirtJenaProvider)

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 ;).]

link

answered 10 Mar '11, 03:51

Signified's gravatar image

Signified ♦
23.5k1623
accept rate: 37%

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Tags:

×1,249
×578
×278
×68

Asked: 10 Mar '11, 02:13

Seen: 2,564 times

Last updated: 10 Mar '11, 03:56