I have a confusion about OWL class and subclass property inheritance. Some posts are saying there is no inheritance in OWL (OWL: How to get inheritance of property relations between two classes from those of superclasses?, http://answers.semanticweb.com/questions/619/rdfs-owl-inheritance-with-josekipellet). However, I have found some opposite discussion as well. For example "A Semantic Web Primer for Object-Oriented Software Developers" page (https://www.w3.org/TR/sw-oosd-primer/) mentioned that for both object-oriented language, OWL & RDF: "Classes can be arranged in a subclass hierarchy with inheritance" (section 3.3). https://www.w3.org/TR/rdf-schema/#ch_subclassof mentioned that "The property rdfs:subClassOf is an instance of rdf:Property that is used to state that all the instances of one class are instances of another." Hence, it is confusing to me. Now I have following questions:
- Like object-oriented language, is rdfs:subclassOf inherits property from super class?
If not then
- What is the meaning of inheritance in RDF/OWL?
- Is it possible to construct object-oriented language type class-subclass inheritance with OWL/RDF?
Consider following example. Are all the properties of "Lecturer" and "Student" will be available to "Person" class?
Example: -------- ### Classes ### :CSModule rdf:type owl:Class ; rdfs:subClassOf :Module . :Lecturer rdf:type owl:Class ; rdfs:subClassOf :Person . :Student rdf:type owl:Class ; rdfs:subClassOf :Person . :Module rdf:type owl:Class . :Person rdf:type owl:Class . ### Object Properties ### :studies rdf:type owl:ObjectProperty ; rdfs:domain :Student ; rdfs:range :Module . :teaches rdf:type owl:ObjectProperty ; rdfs:domain :Lecturer ; rdfs:range :Module . ### Data properties ### :name rdf:type owl:DatatypeProperty ; rdfs:domain :Person ; rdfs:range xsd:string . :staffID rdf:type owl:DatatypeProperty ; rdfs:domain :Lecturer ; rdfs:range xsd:integer . :studentID rdf:type owl:DatatypeProperty ; rdfs:domain :Student ; rdfs:range xsd:integer . ### Individuals ### :CS101 rdf:type owl:NamedIndividual , :CSModule . :Lecturer1 rdf:type owl:NamedIndividual , :Lecturer ; :teaches :CS101 ; :name "Dr.John" ; :staffID 7777 . :Student1 rdf:type owl:NamedIndividual , :Student ; :studies :CS101 ; :name "James" ; :studentID 1234 .
If someone provide me an answer with a good example that will be very helpful. Thank you in advance.