neosemantics (n10s)
準備
以下の材料を用意します。
なお、今回の作業はmacOS/Intelで行っています。
- PC
- Neo4j Desktop
- インターネット回線
- 設定するだけなので繋がればOK
参照先
ドキュメント
https://neo4j.com/labs/neosemantics/4.3/
インストール
Neo4j Desktopのインストール
データベースを作成する
Add LocalDBMS
プラグインのインストール
-
作成したデータベースをクリックすると右側に Details が表示される。
-
Pluginsを選択する。
-
neosemantics (n10s)のプラグインをインストールします。
- 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");