Search code examples
rdfsemantic-web

Difference rdf links and normal links


What is the point of linked data using rdf links. What is the difference in comparison to normal links like in web pages. In the case of rdf one rdf could have link to a different resource at a different location and that rdf could be retrieved using the dereferential URI and so on. This is exactly similar to what a crawler of web pages does. So what's new in the concept of linked data of semantic web. I mean it does that for rdf that's it.


Solution

  • Links as in "Linked Data" have similarity with links as in "HTML hyperlinks" but there are different two kinds of links in RDF.

    First, you have the predicate links, what RobV talks about. Think about the Users page in Stack Overflow. You have links between this page and each user's profile page:

    so:users --> sousers:rajan-sthapit
    

    Similarly, you have a link between the question you ask to your profile:

    soq:difference-rdf-links-and-normal-links  --> sousers:rajan-sthapit
    

    You can figure out what the links mean because you read English and the page text is clear enough, but an automated tool would not make any difference between those two links. With RDF, you have the predicate links that can differentiate these two situations:

    stackoverflow.com  vocab:member  sousers:rajan-sthapit .
    soq:difference-rdf-links-and-normal-links  vocab:askedBy  sousers:rajan-sthapit .
    

    Here, I can even connect Stack Overflow itself to its members. I don't need to link a list to a member as the Users page is just an artificial way of organising information. Predicate links can also relate an entity to an atomic value, like an integer or a date (which "normal links" cannot do).

    Second, you have the URI links. This, as William Greenly says, is not really different from URIs in the good old Web, and indeed they are used by crawlers to get a document with triples inside, index them, find more URIs, dereference them, get more triples, index them, etc. But there is more than that, due to the existence of the predicate links. As RobV mentions, a crawler or other tools can decide to look up a URI or not, based on what predicate is used. Moreover, since predicates are URIs too, RDF applications can look up those URIs and find useful information. For example, looking up vocab:member, I could find:

    vocab:member  rdfs:range  foaf:Person .
    

    from which I deduce, given the previous examples, that:

    sousers:rajan-sthapit  rdf:type  foaf:Person .
    

    then I can look up the URI foaf:Person and find:

    foaf:Person  rdfs:subClassOf  foaf:Agent .
    

    and again deduce that:

    sousers:rajan-sthapit  rdf:type  foaf:Agent .