Open4
null field/optional field の挙動に関する調査
省略できたり null
突っ込んでも動いたり、かと思えば Expression 中では null
持ちのフィールドとして参照できなかったりわからんちん
入力オブジェクト
- ユーザーは
null
値を持つフィールドを省略可能 - ユーザーが指定するつもりのないフィールドに
null
値を明示的に入れても許容される - Expression 中では
null
値を持つフィールドとして参照できなければならない - cwltool の場合、入力パラメーターにないフィールドも許容される
- non-null でもエラーにならず、警告も出ない
- 仕様としては未定義のはず
- Note: 内部的には
SaladMapSchema
で定義される
File
や Directory
などの CWLType の各種フィールド
- ユーザーはフィールドを省略可能 (e.g.,
nameroot
) - ユーザーが
null
値を明示的に入れても許容される- 処理系としては指定されなかったものとして扱われる
- Expression 中では指定されなかったフィールドは参照できてはならない?
- 対応する仕様がなさそう
- conformance test:
listing_requirement_none
(v1.1 以降)
- cwltool の場合、extension field 以外の未定義のフィールドも許容される
- 警告は表示される
- 仕様的には未定義?
- extension field の場合、
null
を入れても許容される- Expression 中では
null
値を持つフィールドとして参照できなければならない?
- Expression 中では
- Note: 内部的には
SaladRecordSchema
で定義される
SchemaDefRequirement
などで定義したユーザー定義型
- ユーザーはフィールドを省略可能
- ユーザーが
null
値を明示的に入れても許容される- 処理系としては指定されなかったものとして扱われる
- Expression 中では指定されなかったフィールドも参照できなければならない
- 対応する仕様がない?
- conformance test:
param_evaluation_noexpr
- cwltool の場合、extension field 以外の未定義のフィールドも許容される
- 警告も出ない
- 逆にフィールドが足りない場合、実行時にエラーになる
- Expression からも参照できる。いいのか?
- 仕様的には未定義?
- extension field の場合、
null
を入れても許容される- Expression 中では
null
値を持つフィールドとして参照できなければならない? -
$namespaces
がない場合は警告が表示される (値がnull
でも同様)
- Expression 中では
- Note: 内部的には
SaladMapSchema
で定義される
CommandLineTool
など、CWLType 以外のデータ型
- ユーザーはフィールドを省略可能
- ユーザーが
null
値を明示的に入れても許容される- 処理系としては指定されなかったものとして扱われる
- 文法的に Expression 中で指定されることはない
- cwltool の場合、extension field 以外の未定義のフィールドがあるとエラー
- 値が
null
でもエラーになる - 仕様的には未定義?
- 値が
- extension field の場合、
null
を入れても許容される - Note: 内部的には
SaladRecordSchema
で定義される
分類方法がよろしくない気がする
フィールドの値が null
/フィールド自体が存在しないを区別するケースは今のところ Expression 内以外にはなさそう。
Extension fields (RDF) ではどうなる?