OWL 클래스와 하위 클래스 속성 상속에 혼동이 있습니다. 일부 게시물은 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). 그러나, 나는 반대 토론을 발견했습니다. 예를 들어, "객체 지향 소프트웨어 개발자를위한 시맨틱 웹 입문서"(https://www.w3.org/TR/sw-oosd-primer/)는 객체 지향 언어 인 OWL & RDF : "클래스는 상속이있는 서브 클래스 계층에 배치 될 수 있습니다"(3.3 절)라고 언급했습니다. https://www.w3.org/TR/rdf-schema/#ch_subclassof은 "속성 rdfs : subClassOf는 한 클래스의 모든 인스턴스가 다른 클래스의 인스턴스라는 것을 나타내는 데 사용되는 rdf : Property의 인스턴스입니다." 그러므로, 그것은 나에게 혼란 스럽다. 지금은 질문에 다음과 같은 한 : 객체 지향 언어처럼OWL 클래스 및 하위 클래스 속성 상속
- 을, RDFS입니다 : subclassOf 슈퍼 클래스에서 속성을 상속?
그렇지 않은 경우 다음
- RDF/OWL에서 상속의 의미는 무엇입니까?
- OWL/RDF를 사용하여 객체 지향 언어 유형 클래스 서브 클래스 상속을 구성 할 수 있습니까?
다음 예제를 고려하십시오. "강사"와 "학생"의 모든 속성은 "사람"클래스에서 사용할 수 있습니까?
누군가가 나에게 매우 도움이 될 것입니다 좋은 예와 답변을 제공하는 경우
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 .
. 미리 감사드립니다.
RDFS/OWL에 상속의 형태가있을 때 문제가 혼란 스럽다고 생각합니다. 집합 이론/술어 논리 의미론에 대한 암시에 의해 작동합니다. 이 중 일부는 OO 시스템의 상속과 유사하게 해석 될 수 있지만 시간이 지남에 따라 많은 설정에서 상속이 RDFS/OWL에 존재하지 않으며 세트, 하위 세트 및 표준 추론을 설명하는 것이 더 바람직하다는 것을 알았습니다 프로필 (의미)이 효과적입니다. – scotthenninger
답변 해 주셔서 감사합니다. 당신은 "클래스가 다른 클래스의 서브 클래스라고하면 기본적으로 수퍼 클래스 (수퍼 세트)의 개인에 대한 모든 속성이 서브 클래스 (서브 세트)의 개인에있을 수 있음을 의미합니다." 그러나 조슈아 테일러 (Joshua Taylor)는 "재산 상속의 개념이 없다"고 말했다. 모순이 아닌가? "Person"이라는 클래스가 있고 "age"와 "address"의 두 속성이 있으며 "Lecturer"가 "Person"의 subClassOf라고 가정 해 보겠습니다. 그런 다음 "나이"및 "주소"속성이 OO 언어와 같은 "강사"에게 제공됩니까? –
아니요, 진술은 모순되지 않습니다. ': age'와': address' 속성을 가진': Person'의 클래스 정의는': Person'의 인스턴스에는 아무런 효과가 없으며': Lecturer'에게는 사용할 수 없습니다. ': age'와': address'는': Person' 클래스 정의에서만 사용할 수 있습니다. 이것이 RDFS와 OO 프로그래밍 언어 간의 근본적인 차이점입니다. – scotthenninger