둘 다 지식을 구조화해서 표현한다는 점에서 비슷합니다.
정의: 실제 데이터(엔티티와 관계)를 그래프 구조로 연결한 것.
초점: “무엇이 무엇과 연결되어 있는가?” (facts, instances)
구성 요소:
예시: 위에서 만든 Attack on Titan 그래프처럼 실제 등장인물과 사건 관계를 직접 연결한 데이터베이스.
특징: 구글, 네이버, 위키데이터 같은 곳에서 쓰이며, “지식의 네트워크” 역할을 합니다.
정의: 어떤 도메인의 개념(Concept)과 관계(Relationship)를 정형화해서 정의한 이론적 모델.
초점: “어떤 개념들이 존재하고, 어떻게 정의되어야 하는가?” (schema, classes)
구성 요소:
예시: RDF/OWL 기반의 도메인 모델 → “애니메이션 세계관 온톨로지”를 정의해두면, 어떤 작품이든 같은 구조로 지식 그래프를 만들 수 있음.
특징: 지식 그래프의 설계도/청사진 같은 역할.
| 구분 | Knowledge Graph | Ontology |
|---|---|---|
| 초점 | 실제 데이터/사실 (instances) | 개념·관계의 정의 (schema) |
| 표현 | 그래프 데이터베이스 (노드·엣지) | 논리 모델 (RDF, OWL 등) |
| 목적 | 지식 연결, 탐색, 추론 | 지식 구조 정의, 일관성 보장 |
| 비유 | “완성된 지도” | “지도 그리는 설계도” |
ontology.ttl
@prefix aot: <http://example.org/aot#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix schema: <http://schema.org/> .
aot:Ontology a owl:Ontology ;
rdfs:label "Attack on Titan Mini Ontology"@en ;
rdfs:comment "A compact ontology capturing core concepts and relations for the Attack on Titan domain (classes & properties only)."@en .
### ======== CLASSES ========
aot:Work a owl:Class ;
rdfs:label "Work"@en ;
rdfs:comment "Creative work such as a manga series, TV season, or episode."@en ;
rdfs:subClassOf schema:CreativeWork .
aot:MangaSeries a owl:Class ;
rdfs:label "Manga Series"@en ;
rdfs:subClassOf aot:Work .
aot:TVSeries a owl:Class ;
rdfs:label "TV Series"@en ;
rdfs:subClassOf aot:Work .
aot:Season a owl:Class ;
rdfs:label "Season"@en ;
rdfs:subClassOf aot:Work .
aot:Episode a owl:Class ;
rdfs:label "Episode"@en ;
rdfs:subClassOf aot:Work .
aot:Character a owl:Class ;
rdfs:label "Character"@en ;
rdfs:comment "A person or titan shifter appearing in the story."@en ;
rdfs:subClassOf schema:Person .
aot:Titan a owl:Class ;
rdfs:label "Titan"@en ;
rdfs:subClassOf aot:Character .
aot:Organization a owl:Class ;
rdfs:label "Organization"@en ;
rdfs:subClassOf schema:Organization .
aot:Location a owl:Class ;
rdfs:label "Location"@en ;
rdfs:subClassOf schema:Place .
aot:Wall a owl:Class ;
rdfs:label "Wall"@en ;
rdfs:subClassOf aot:Location .
### ======== OBJECT PROPERTIES ========
aot:memberOf a owl:ObjectProperty ;
rdfs:label "member of"@en ;
rdfs:domain aot:Character ;
rdfs:range aot:Organization ;
owl:inverseOf aot:hasMember .
aot:hasMember a owl:ObjectProperty ;
rdfs:label "has member"@en ;
rdfs:domain aot:Organization ;
rdfs:range aot:Character ;
owl:inverseOf aot:memberOf .
aot:locatedIn a owl:ObjectProperty ;
rdfs:label "located in"@en ;
rdfs:domain aot:Organization ;
rdfs:range aot:Location .
aot:protectedBy a owl:ObjectProperty ;
rdfs:label "protected by"@en ;
rdfs:domain aot:Location ;
rdfs:range aot:Wall .
aot:hasMainCharacter a owl:ObjectProperty ;
rdfs:label "has main character"@en ;
rdfs:domain aot:Work ;
rdfs:range aot:Character ;
owl:inverseOf aot:isMainCharacterOf .
aot:isMainCharacterOf a owl:ObjectProperty ;
rdfs:label "is main character of"@en ;
rdfs:domain aot:Character ;
rdfs:range aot:Work ;
owl:inverseOf aot:hasMainCharacter .
aot:hasPart a owl:ObjectProperty ;
rdfs:label "has part"@en ;
rdfs:comment "Part-whole relation, e.g., TVSeries → Season → Episode."@en ;
rdfs:domain aot:Work ;
rdfs:range aot:Work ;
owl:inverseOf aot:isPartOf .
aot:isPartOf a owl:ObjectProperty ;
rdfs:label "is part of"@en ;
rdfs:domain aot:Work ;
rdfs:range aot:Work ;
owl:inverseOf aot:hasPart .
### ======== DATA PROPERTIES ========
aot:title a owl:DatatypeProperty ;
rdfs:label "title"@en ;
rdfs:domain aot:Work ;
rdfs:range xsd:string .
aot:romanizedTitle a owl:DatatypeProperty ;
rdfs:label "romanized title"@en ;
rdfs:domain aot:Work ;
rdfs:range xsd:string .
aot:startDate a owl:DatatypeProperty ;
rdfs:label "start date"@en ;
rdfs:domain aot:Work ;
rdfs:range xsd:date .
aot:endDate a owl:DatatypeProperty ;
rdfs:label "end date"@en ;
rdfs:domain aot:Work ;
rdfs:range xsd:date .
aot:airDate a owl:DatatypeProperty ;
rdfs:label "air date"@en ;
rdfs:domain aot:Episode ;
rdfs:range xsd:date .
aot:authorName a owl:DatatypeProperty ;
rdfs:label "author name"@en ;
rdfs:domain aot:MangaSeries ;
rdfs:range xsd:string .
aot:publisherName a owl:DatatypeProperty ;
rdfs:label "publisher name"@en ;
rdfs:domain aot:Work ;
rdfs:range xsd:string .
aot:imdbId a owl:DatatypeProperty ;
rdfs:label "IMDb ID"@en ;
rdfs:domain aot:Work ;
rdfs:range xsd:string .