What's new

Semantic Web

Steven

Establishing Talker
PF Member
Messages
46
Reaction score
0
Points
42
This is the new "dream" going around the web. We just went throught a renesanse of sorts with the emergents of web 2.0, which has just lately been realized in the last few years, but has been in development for over 10 years. Web 2.0 was an effort to go away from the old "silo" websites where you could only retreive data from there static, rarely updated, website to something more dynamic, realtime application based, at your fingertips, "mashable" content that attributed to the web's "Hall of Eternal Knowledge" where anyone could use it in what ever way they wanted to.

However, since this slow build up of thise concept, yet another has emergerd, and has also been in development for many years. The idea is semantics. In communication you have two parts, Syntax - How to format and deliver the a message. Example: I love chocolate. The Syntax -> I(Person) Love(Emotion) Chocolate(Food)... in XML it would look like this:

<Syntax>
<Comm>
<Person>I</Person>
<Emotion>Love</Emotion>
<Food>Chocolate</Food>
</Comm>
</Syntax>

Then the other part of communication is Semantics. Semantics is how we communicate with eachother. We know who "I" is and what "Love" means and what "Chocolate" is. Thats Semantics. But a computer doesn't know what those things are. They don't have semantics. They have only Syntax. The idea of a semantic web is giving the web(computers) the ablility to understand the information it contains and passes. So not only does it have that XML as abover. It knows that "I" is someone in particular, most likely the author, so there it ties that connection. If you want to know who "I" is the computer can now tell you with semantics. The word "love" can now be express in other words like "Really enjoy". This allows computers to talk to computers. Now you don't have to type in "I love Chocolate" in a search engine to retreave this XML, you can type "Someone Enjoys a Food" then it can find it based on that. It doesn't have to use keywords to find what your looking for because it knows what your looking for. This allows more specific searches as well as more broad ideas.

What do you guys think?
 
Well I see your point but wouldn't this lead to 10 billion extra lines of code because you have to define what each word means and in what phrase is it being used or would each word be predefined by something? Also what about words that have several different meanings? What about different cultures and the they describe things differently?

Say your a child and you type "I love **** kats" and accidentally typed kats instead of cats. Would you get a porn site? Or would it know what kats is?

<Syntax>
<Comm>
<Person>I</Person>
<Emotion>Love</Emotion>
<BodyPart>****</BodyPart>
<Unknown>kats</Unknown>
</Comm>
</Syntax>

<Syntax>
<Comm>
<Person>I</Person>
<Emotion>Love</Emotion>
<Animal>**** Cats</Animal>
</Comm>
</Syntax>
 
My example isn't "ideal" or even real. But there is languages created for such things. RDF, OWL....

Code:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://www.daml.org/2001/10/html/airport-ont">

<owl:Ontology rdf:about="">
  <owl:versionInfo>$Id: airport-ont.daml,v 1.1 2002/03/14 06:24:16 mdean Exp $</owl:versionInfo>
  <rdfs:comment>Airport</rdfs:comment>
</owl:Ontology>

<rdfs:Class rdf:ID="Airport">
  <rdfs:subClassOf>
    <owl:Restriction>
      <owl:onProperty rdf:resource="#name"/>
      <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    </owl:Restriction>
  </rdfs:subClassOf>
  <rdfs:subClassOf>
    <owl:Restriction>
      <owl:onProperty rdf:resource="#iataCode"/>
      <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    </owl:Restriction>
  </rdfs:subClassOf>
  <rdfs:subClassOf>
    <owl:Restriction>
      <owl:onProperty rdf:resource="#icaoCode"/>
      <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    </owl:Restriction>
  </rdfs:subClassOf>
  <rdfs:subClassOf>
    <owl:Restriction>
      <owl:onProperty rdf:resource="#location"/>
      <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    </owl:Restriction>
  </rdfs:subClassOf>
  <rdfs:subClassOf>
    <owl:Restriction>
      <owl:onProperty rdf:resource="#latitude"/>
      <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#double"/>
    </owl:Restriction>
  </rdfs:subClassOf>
  <rdfs:subClassOf>
    <owl:Restriction>
      <owl:onProperty rdf:resource="#longitude"/>
      <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#double"/>
    </owl:Restriction>
  </rdfs:subClassOf>
  <rdfs:subClassOf>
    <owl:Restriction>
      <owl:onProperty rdf:resource="#elevation"/>
      <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#double"/>
    </owl:Restriction>
  </rdfs:subClassOf>
</rdfs:Class>

<owl:DatatypeProperty rdf:ID="elevation"/>
<owl:DatatypeProperty rdf:ID="iataCode"/>
<owl:DatatypeProperty rdf:ID="icaoCode"/>
<owl:DatatypeProperty rdf:ID="latitude"/>
<owl:DatatypeProperty rdf:ID="location"/>
<owl:DatatypeProperty rdf:ID="longitude"/>
<owl:DatatypeProperty rdf:ID="name"/>

</rdf:RDF>

This file defines a class called "Airport". Say for instance you have a website that list differnet airports all over the world. Well each of these airports would have all these properties in common. So now say a search engine is scanning your page. Its going to pick up this OWL file which describes the relationship between the data on your site. After this is can then accuratly provide the end-user with more specific and taylored repsonces. You can use your imagination on what the search engine(as well as other applications) could do with that data.
 
Back
Top