개인적으로 매일 아침 9시에 어떤 사이트에 새글이 올라왔는지를 보여주는 원페이지 목록 메일을 받게 된다. 이 메일은 수십개의 하이퍼링크들이 그 안에 존재하고 있고, 사용자가 목록의 타이틀을 보다 호기심이 생기는 타이틀이 있으면 그 타이틀을 클릭하여 원문이 있는 사이트로 이동을 하게 된다. 이 글에서는 이러한 하이퍼링크를 얘기하는게 아니라 그 이면의 구조화된 데이터를 통해 정보를 획득하고 가공하는 과정을 살펴보려고 한다. 지난 글에서 RDF 데이터를 HTML에 임베딩하기 위해 RDFa를 사용한다고 했었다. 사실 각각의 하이퍼링크를 따라 웹페이지를 열어보면 그 안에 RDFa로 구조화시킨 정보들이 존재한다. 우선 데보션의 메일 2일치분을 수집하여 그 안에 있는 하이퍼링크 목록을 추출한다. 목록이 준비되면 RD..
사이퍼를 통해 데이터를 생성해보도록 하겠다. 데이터 생성은 CREATE 구문을 통해 생성할 수 있는데 노드와 관계를 생성할 수 있다. 먼저 노드를 생성하는 쿼리를 살펴보도록 한다. 1. 단일 노드 생성 CREATE () 2. 단일 노드 생성 (변수 입력) CREATE (n) 3. 다중 노드 생성 (변수 입력) CREATE (n), (m) 4. 노드 생성시 레이블(Person) 입력 CREATE (n:Person) 5. 노드 생성시 프로퍼티(name:'Tom') 입력 CREATE (n{name:'Tom'}) 6. 노드 생성시 레이블(Person) 과 프로퍼티(name:'Alice') 입력 CREATE (n:Person{name:'Alice'}) 7. 노드 생성 후 생성한 노드 반환 CREATE (n{nam..
사이퍼(Cypher)는 Neo4j에서 사용하는 선언형 그래프 질의어이다. Property Graph 모델에 기반을 두며, 노드와 엣지(사이퍼에서는 관계, relationship이라고 한다.)의 표준 그래프 요소들이 주요 concept가 되고, 이들이 레이블(label)과 프로퍼티(property)을 가질 수 있다. 노드들은 0개 이상의 레이블이 있을 수 있는 반면, 각 관계는 정확히 하나의 관계형(relationship type)이 있다. 노드와 관계 또한 0개 이상의 프로퍼티가 있으며 여기에서 프로퍼티는 사이퍼 자료형에서 문자열 키와 일부 값의 키-값 바인딩으로 되어 있다. Cypher의 구조적인 형태를 다시 정리해보면 구성요소는 아래와 같다. 노드(Nodes) Id Label 노드에 대한 개념 혹은 ..
Neo4j는 그래프 데이터베이스 관리 시스템으로 네이티브 그래프 저장 및 처리 기능을 갖춘 ACID를 준수하는 트랜잭셔널 데이터베이스이다. Neo4j는 자바로 구현되어 있으며 이를 활용하기 위해서는 HTTP 엔드포인트를 사용하거나 바이너리 볼트(bolt) 프로토콜을 사용할 수 있다. 사용언어는 Cypher Query Language를 사용하고 있기 때문에 Cypher 언어를 알아야 할 필요가 있다. Neo4j는 Enterprise Server, Community Server, Neo4j Desktop 등 중에서 다운로드 받아 사용할 수 있는데 여기서는 커뮤니티 서버를 설치하도록 한다. 참고로 4.x 버전과 3.x 버전은 차이가 있다. 4버전은 OpenJDK 11을 사용하고 3버전은 8을 사용하기 때문에 ..
- Total
- Today
- Yesterday
- cypher
- RDF 변환
- 그래프 데이터베이스
- Linked Data
- TDB
- 지식 그래프
- stardog
- RDF
- Neo4j
- Knowledge Graph
- 트리플 변환
- 사이퍼
- 장고
- neosemantics
- pyvis
- 타임리프
- property graph
- networkx
- 온톨로지
- TBC
- sparql
- 스프링부트
- rdfox
- django
- Ontology
- TopBraid Composer
- 트리플
- 지식그래프
- Thymeleaf
- LOD
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |