As RDF and Ontology belong to two separate layers in the Semantic Web Layer cake so I want to understand the difference between these two layers? Most of the data on the internet said these two are same. Please help me to understand the difference?
Briefly, ontology gives you more facilities to define objects and their semantic relationships, while RDFS schema is about defining the Data structure. By RDFS, you can create your data hierarchy and their properties. Instead, in ontology you can say e.g., if A is a subclass of B, what are the other relationships of A to B? and to other classes? A good example could be, defining a sameAs relationship between objects which specified two objects that are semantically related.
Any case, this link may help: http://www.cambridgesemantics.com/semantic-university/rdfs-vs.-owl
in a nutshell, rdf is used to describe resources (in triples). owl is used to describe ontologies in a richer form if compared to rdf (in relation to it's expressivity). The expressivity of OWL vary because owl 1 has a group of types (lite, dl, full) and owl 2 has a group of profiles.
It provides a very interesting cover of the main ontology representation languages, comparing their properties (such as the expressivity) and offering a good background regarding the historic motivations underlying the purposes of each language.
RDF Schema (RDFS) is a language for writing ontologies.
An ontology is a model of (a relevant part of) the world, listing the types of object, the relationships that connect them, and constraints on the ways that objects and relationships can be combined.
@Piotr already described most of the practical differences, there is also the difference between RDFS with OWL in that OWL adheres to a stricter logical model (Description logic), in particular by making a strict separation between instances values and classes. This is generally a good idea even if sometimes it takes a little getting used to say :Airplane rdfs:subclassOf :Vehicle instead of :Airplane rdf:type :Vehicle. This and the much greater expressivity for logic constraints allows for more powerful reasoners for OWL that, in theory, get things decided in polynomial time. Don't get too hung up by this however: generally the owl reasoning examples are rather restricted and you should use them for things where it is clearly really useful, which usually tends to be boring things like expressing that an object in a database is uniquely identified by its key (owl:InverseFunctionalProperty or, as I have just seen, owl2:hasKey) and if you really want to make use of it be sure that your infrastructure (triple store and software library) actually supports it! Generally speaking, if you want to model real world phenomena, there tend to be counter examples that wiggle out of strict logical models, so the kind of logical restrictions tend to be most useful when "the real world" happens to be created by and for information systems!
1) In OWL2 the distinction between classes and individuals has been relaxed - it is possible to assert that a class is an individual of another class. At least Protege allows this, so I think it is correct according to OWL 2 specification
2) rdfs:subclassOf exists in RDFS (the taxonomic relation)
3) I fully aggree with your remarks related to resoning capapabilities. Building a "well founded" ontology and anchoring it in the DL to get valuable results from reasoning tools is a tedious task. Typicall appication facilitated by such a strict definition is the classifiction of an individual with asserted relations as a member of a particular class.
In many cases it is rather a roundabout way to get the things done. I think, SWRL rules can be more attractive and easier to use, because they don't require that discipline in ontology definition.
A novel modification of RDF(S) which provides a solid semantic foundation for many of the latest Description Logic-based SW ontology languages, and imposes no limitation on its extension to more expressive Description Logics (such as OWL DL and OWL-Eu. After reviewing the design of RDF(S), and the needs of various applications and (potential) users, the following requirements for a sub-language of RDF(S) have been identified:
1) Ontologies in this sub-language should be RDF graphs.
2) It should enable the use of class URI refs as property values, which is a feature of RDFS that is required in many applications.
3) It should provide metamodeling architecture compatible with the layered metamodeling architecture of UML (Unified Modelling Language), as UML is probably the most well known and widely accepted metamodeling architecture.
4) Its semantics should be compatible with the semantics of OWL DL.
OWL = RDFS + more semantic features like cardinalities, union, intersection and more reasoning and inferring possibilities.
It may be sufficient to use RDFS if you just need to manipulate class hierarchies and data-types, but if you need more specific semantics (DL-based) , OWL is a better option.
In simple words the difference is the creating of ontologies in more explanatory and enriched shape by associating more properties, axioms and restrictions in terms of associating the metadata.