はじめに
先々週から始めてver. 0.16を使っていたが、OpenJDK 8がオフィシャルサポートされていない(テストが不充分)ということもあり気になっていた。先週Grakn LabsのMichellangero Bucciさんとお話しした際に「出来たら早めに0.17系に上げた方がいいよ」というアドバイスもあったので0.17系を再インストールする事にした。お話ではサンプルやドキュメントも結構力入れて直したらしい。
実際やってみると、インストールはしくじるポイントが無いので問題なく出来たが、PoCで作っていたオントロジーのロードでエラーが出たり、テストクエリがはじかれたりと案外往生したのでそのあたりを纏めておく。どうもユーザー要望で文法的には結構先祖がえりしたみたい。結構な割合のドキュメント(ほとんど)は元の文法に沿っていたので、これで整合性が取れた事になる。(ポジティブに取れば)
今回検証したバージョンは、今日時点で最新の0.17.1。
オントロジー関連
いずれもエラーが相変わらず分かりにくいので、知ってないとツラい。ちなみに以下の3つ以外は検知されなかったが、rule等もっと複雑な定義をしているとそちらに影響が出ているかも知れない。
insertがDefineに変更
0.16ではオントロジーもデータもinsertでの定義だったが、これがオントロジーはdefineに変わった
insert
product sub entity
has name
plays product-to-coverage
plays product-to-limit;
define
product sub entity
has name
plays product-to-coverage
plays product-to-limit;
relationがrelationshipに変更
condition-coverage sub relation
relates condition-to-coverage
relates coverage-to-condition;
condition-to-coverage sub role;
coverage-to-condition sub role;
condition-coverage sub relationship
relates condition-to-coverage
relates coverage-to-condition;
condition-to-coverage sub role;
coverage-to-condition sub role;
resourceがattributeに変更
coverage_type sub resource datatype string;
coverage_type sub attribute datatype string;
graql(クエリ)関連
クエリは残念ながらまださほど複雑なものを0.16で試せていなかったので、下記以外にもあるかも知れない。(幸いクエリの方はエラーが分かり易い)
selectがgetに変更
match
$coverage isa coverage has name $coverage_name;
$benefit isa surgery_benefit has name $benefit_name;
($coverage, $benefit);
select $coverage_name, $benefit_name;
match
$coverage isa coverage has name $coverage_name;
$benefit isa surgery_benefit has name $benefit_name;
($coverage, $benefit);
get $coverage_name, $benefit_name;
おわりに
今回は単純な変更かも知れないけど、えらい大胆な先祖がえりで「大丈夫か?」と思わせなくもないが、これ以外にもたくさん改善は入っており頑張ってるので引き続き応援したいと思う。