RDF with neosemantics (n10s)

May 27, 2022

neosemantics (n10s)


準備


以下の材料を用意します。

なお、今回の作業はmacOS/Intelで行っています。

  1. PC
    • Neo4j Desktop
  2. インターネット回線
    • 設定するだけなので繋がればOK

参照先


ドキュメント

https://neo4j.com/labs/neosemantics/4.3/

インストール


Neo4j Desktopのインストール

データベースを作成する

Add LocalDBMS

プラグインのインストール

  1. 作成したデータベースをクリックすると右側に Details が表示される。

  2. Pluginsを選択する。

  3. neosemantics (n10s)のプラグインをインストールします。

Plugin neosemantics

  1. APOCのプラグインも何かと使うのでインストールします。

Plugin APOC

動かしてみましょう


データの確認

https://raw.githubusercontent.com/jbarrasa/datasets/master/rdf/music.ttl

PREFIX music: <neo4j://graph.schema#>
PREFIX ind: <http://neo4j.com/indiv#>

ind:The_Beatles a music:Band ;
    music:name "The Beatles" ;
    music:member ind:John_Lennon , ind:Paul_McCartney , ind:George_Harrison , ind:Ringo_Starr .

ind:John_Lennon a music:Artist ;
    music:name "John Lennon" .

ind:Paul_McCartney a music:Artist ;
    music:name "Paul McCartney" .

ind:Ringo_Starr a music:Artist ;
    music:name "Ringo Starr" .

ind:George_Harrison a music:Artist ;
    music:name "George Harrison" .
(以下略)

プレビュー

データベースに登録しないようにしてデータを見てみましょう。

CALL n10s.rdf.preview.fetch("https://raw.githubusercontent.com/jbarrasa/datasets/master/rdf/music.ttl","Turtle")

インポート(理解しやすくするためにエラー)

CALL n10s.rdf.import.fetch("https://raw.githubusercontent.com/jbarrasa/datasets/master/rdf/music.ttl","Turtle")

エラー

作成するグラフの特性を定義する

まずは、標準値で初期化してみましょう。

CALL n10s.graphconfig.init();
param value
"handleVocabUris" "SHORTEN"
"handleMultival" "OVERWRITE"
"handleRDFTypes" "LABELS"
"keepLangTag" false
"keepCustomDataTypes" false
"applyNeo4jNaming" false
"baseSchemaNamespace" "neo4j://graph.schema#"
"baseSchemaPrefix" "n4sch"
"classLabel" "Class"
"subClassOfRel" "SCO"
"dataTypePropertyLabel" "Property"
"objectPropertyLabel" "Relationship"
"subPropertyOfRel" "SPO"
"domainRel" "DOMAIN"
"rangeRel" "RANGE"

ノードを確認しましょう。

GraphConfigと言うノードが1件作成されます。

ノードのプロパティに値が格納されているのがわかります。

MATCH (n) RETURN n

インポート


CALL n10s.rdf.import.fetch("https://github.com/neo4j-labs/neosemantics/raw/3.5/docs/rdf/nsmntx.ttl","Turtle");

タートル (Turtle)

  • RDFのトリプルは3つで構成されている
    • 主語(Subject)、述語(Predicate)、目的語(Object)
  • タートル
    • トリプル言語の1つ
    • 拡張子は .ttl

Terse RDF Triple Language

検索

ローリング・ストーンズのIDは?

画面に出てきていますが、Cypherで見てみましょう。

MATCH (p:Resource) WHERE p.ns1__name = "The Rolling Stones" RETURN ID(p)

別のデータベースを用意しましょう

  • OWL
    • Web Ontology Language
    • インターネット上のオントロジーを用いたデータ記述言語

データを確認する。 https://raw.githubusercontent.com/neo4j-labs/neosemantics/3.5/docs/rdf/vw.owl

CALL n10s.onto.preview.fetch("https://github.com/neo4j-labs/neosemantics/raw/3.5/docs/rdf/vw.owl","Turtle");
CALL n10s.onto.import.fetch("https://github.com/neo4j-labs/neosemantics/raw/3.5/docs/rdf/vw.owl","Turtle");

Profile picture

Written by Koji Annoura who lives and works in Fukuoka Japan. You should follow them on Twitter