RDFlib : RDF 작업을 위한 python 라이브러리
💡 RDFlib 에는 RDF/XML, Turtle, N-Triples 및 JSON-LD와 같은 RDF 직렬화에 대한 구문 분석기/직렬 변환기가 포함되어 있음
이 작업을 할 때가 한창 엘리멘탈 영화가 인기많던 시절이라, 4가지 원소에 대해서 그래프를 생성했었다.
자세한 설명은 아래 내용을 참고
전체 code
## 라이브러리
from rdflib import Graph
from rdflib.namespace import RDF, RDFS, Namespace, OWL
## Graph 타입의 g 객체 생성
g=Graph()
## IRI를 원하는 키워드로 쓸 수 있도록 bind를 사용, g에 저장
g.bind("disney", Namespace("http://disney_elemental.com/"))
## 기본이 되는 IRI를 리턴하는 함수
def get_namespace() -> Namespace:
return Namespace("http://disney_elemental.com/")
## class 타입의 객체 5가지를 생성 ex) 원소, 불, 물, 공기, 흙
g.add((get_namespace().elemental, RDF.type, OWL.Class))
g.add((get_namespace().fire, RDF.type, OWL.Class))
g.add((get_namespace().water, RDF.type, OWL.Class))
g.add((get_namespace().air, RDF.type, OWL.Class))
g.add((get_namespace().earth, RDF.type, OWL.Class))
## class 객체 간의 관계 설정 (include)
g.add((get_namespace().include, RDF.type, OWL.ObjectProperty))
g.add((get_namespace().include, RDFS.domain, get_namespace().elemental))
g.add((get_namespace().include, RDFS.range, get_namespace().fire))
g.add((get_namespace().include, RDFS.range, get_namespace().water))
g.add((get_namespace().include, RDFS.range, get_namespace().air))
g.add((get_namespace().include, RDFS.range, get_namespace().earth))
## owl 형식으로 g 그래프 저장
g.serialize("./elemental.owl")
code 설명
Class 객체 간의 관계 설정 후 그래프 저장
아래의 그림은 relation을 포함해 생성한 그래프를 그림으로 표현한 것
🚩 참고하면 좋은 사이트 🚩