Skip to content

Files

Latest commit

d125b14 · Feb 20, 2020

History

History
97 lines (61 loc) · 3.92 KB

rules.md

File metadata and controls

97 lines (61 loc) · 3.92 KB

検証ルール

ホーム | セットアップ | 使い方 | 設定ファイル | 検証ルール | 開発者向け

rdflintが提供する各検証ルールを紹介します。

検証される具体的なケースは、以下のテストデータが参考になるかも知れません。 https://github.com/imas/rdflint/tree/master/src/test/resources/testValidatorsImpl

文法検証

rdfやturtleファイルの文法が正しいかを検証します。

未定義主語の使用検証

未定義の主語が、述語・目的語として使用されていないかを検証します。

以下の主語がチェックの対象になります。

ー 設定ファイルで指定したデータセットの主語

カスタムクエリ検証

SPARQLを利用したカスタムクエリによるデータ整合を検証します。

検証ルールは、設定ファイルruleで指定します。
検証は以下の流れで実行されます。

  1. targetの指定から、対象ファイルであることを確認する
    対象外であれば終了する
  2. queryで指定されたSPARQLクエリを実行する
  3. 2の実行結果を、変数rsに設定する
    validで指定されたgroovyスクリプトを実行する
    groovyスクリプトのlogのwarnメソッドで、検証NG時のエラーを出力できる

デグレード検証

削除された、SubjectやTripleが無いかを確認して情報を出力します。

比較対象(変更前)の対象ディレクトリを、設定ファイルoriginDirで指定します。

データ型検証

述語に対するリテラルのデータ型の妥当性を検証します。

検証は以下の流れで実行されます。

  1. 同じ述語のリテラルの値全てが、文字列、有理数、整数、自然数のいずれかを判定する
    データの95%以上が含まれる型を、その述語に対する妥当なデータ型とする
  2. 各トリプルに対して、1で求めたデータ型に含まれるかを判定する
    含まれない場合は、検証NGとする

同じ述語に対して、20件以上リテラルが存在しない場合は検証対象になりません。

外れ値検証

数値型データに対して、他のデータと値が離れているデータが無いかを検証します。

検証は以下の流れで実行されます。

  1. 各データ間の距離を測る
  2. 距離が最も近いデータ対から順にデータを結合してクラスタとして扱う
  3. 2を繰り返し、最後に残ったクラスタにデータが1件しか含まれていない場合に、検証NGとする

最後に結合したクラスタ間距離が、その一つ前に結合したクラスタ間距離の3倍以内の場合は検証OKとします。

SHACLによるデータ制約検証

Shapes Constraint Language (SHACL)によって指定された制約に違反していないかを検証します。

Shapes Constraint Language (SHACL) | W3C
https://www.w3.org/TR/shacl/

文字列トリム検証

リテラルの先頭・末尾に半角スペースが存在するデータを検証NGとします。

文字改行コード検証

ファイルが、設定ファイルで指定した文字コード・改行コードで記載されているかを検証します。指定外の文字コード・改行コードで記載されている場合に検証NGとします。

{{site.cookie_consent}}