Copyright © 2025-2026 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
この文書はSHACLプロファイリングを定義する。
SHACL、すなわちShapes Constraint Languageは、RDFグラフの構造を記述するための言語である。 SHACLは、検証、推論、ドメインのモデリング、他のエージェントに知らせるための オントロジーの生成、ユーザーインターフェイスの構築、コード生成、データ統合など、 さまざまな目的に使用できる。
SHACLプロファイリングは、SHACLのプロファイル、およびSHACLによるプロファイリングを可能にするために 作成されたSHACL Shapes Constraint Languageの要素を定義する。この文書の範囲は、SHACL Shapesを 含むグラフを含め、RDFグラフのプロファイリングに限定される。
この仕様は、 Data Shapesワーキンググループによって公開されている。このセクションは、公開時点における この文書のステータスを説明する。現在のW3C 公開物およびこの技術報告の最新版の一覧は、 W3C標準および草案 インデックスにある。
この文書は、Data Shapesワーキンググループにより、 勧告 トラックを用いる 最初の公開作業草案として公開された。
最初の公開作業草案としての公開は、 W3Cおよびそのメンバーによる承認を意味しない。
これは草案文書であり、いつでも他の文書によって更新、置換、または廃止される可能性がある。 この文書を進行中の作業以外のものとして引用することは不適切である。
この文書は、 W3C 特許 ポリシーの下で運営されるグループによって作成された。 W3Cは、 当該グループの成果物に関連して行われた あらゆる特許開示の公開一覧 を維持している。このページには、 特許を開示するための手順も含まれている。個人が、 必須クレーム を含むとその個人が信じる特許について実際の知識を有する場合、 W3C特許ポリシー第6節に従って その情報を開示しなければならない。
この文書は、 2025年8月18日版W3Cプロセス文書に準拠する。
この仕様は、SHACL 1.2仕様ファミリーの一部である。それらのより詳しい 導入については、SHACL 1.2概要を参照されたい。
仕様は次のとおりである:
作業草案:
ワーキンググループ・ノート草案:
実装者は、上記仕様への適合レベルを、 SHACL 1.2テストスイート のテストケースに合格することで、部分的に確認できる。 ただし、テストスイートのすべてのテストに合格しても、仕様への完全な適合を意味するものではない。 それは、その実装がテストスイートでテストされた側面に適合していることを意味するにすぎない。
はじめには、プロファイリングの背景概念を示し、この仕様の範囲を述べる。また、 用語定義を提供し、文書の表記規約を説明する。
第2節では、管理のためのSHACLのパッケージ化を扱う。
第3節および第4節では、パッケージ化を基礎として、SHACLによるプロファイリングの2つの主な方式を扱う。
プロファイリングとは、何かの「プロファイル」を作成する行為である。
一般に、英語における何かの「profile」は次のようなものである:
物理的な物体または特徴の輪郭、あるいはその表現
- オックスフォード英語辞典、17世紀以来の語「profile」の用法
データの世界においては、上記と整合する「profile」の派生的な定義は次のとおりである:
要約または抽出
この定義では、英語の語の本質が保持されている。なぜなら、データオブジェクトの、または データオブジェクトからの要約や抽出は、それの輪郭である可能性があるからである。例えば、 3D空間オブジェクトの2D表現や、多数の部分を持つデータセットの統計的 要約などである。
警告: はじめにのこの時点までのプロファイリングの背景は、 The Profiles Vocabularyの更新版へ上流化される可能性がある。
定義上、SHACLはRDFデータを制約する。したがって、 shapes graph に従って妥当なあらゆるデータは、 data graphのプロファイルとなる。ある shapes graph が data graphのすべての要素を検証する場合、結果として得られる妥当なデータは、 data graphの「null」プロファイルとなる。これは、それが元のデータ グラフと同一であることを意味する。
The Profiles Vocabularyは、 仕様の文脈における profileを次のように定義する:
他の仕様の使用について制約、拡張、結合、またはガイダンスや説明を提供する仕様
shapes graphを 「仕様」とみなす場合、 shapes graphに従って妥当なデータが、 検証された data graphのプロファイルであるだけでなく、 shapes graph自体も、 data graphで用いられるデータモデルのプロファイルとして機能する。
この文書では、最適なプロファイリングのためにSHACL情報をどのようにパッケージ化するかを説明し、 これを各SHACL仕様のために作成されたSHACL shapesの パッケージ化によって例示する。
上記セクションの概念を踏まえ、この仕様は次の事項を定義する:
この仕様全体で用いられる用語は、ここで定義されるか、いくつかの 出典のいずれかから採用される。それらの他の出典は次のとおりである:
他の出典から採用された用語は、本文中でその定義にリンクされている。
ここで定義される用語は次のとおりである:
仕様のルールの一部、おそらくはすべてを実装するが、追加のルールを一切実装しない 仕様のプロファイル。
null profileの目的は、プロファイル対象の仕様が実行可能な検証器などの プロファイリング成果物を提供していない場合に、それを提供することである。
SHACL仕様のいずれかによって定義されるRDF/OWLクラスまたはプロパティ。
警告: null profileの定義は、The Profiles Vocabularyの更新版へ上流化される可能性がある。Issue dx-prof/56を参照されたい。
この仕様で用いられる定義済み用語はすべて、索引に一覧されている。
この仕様では、次の名前空間接頭辞定義を用いる:
| 接頭辞 | 名前空間 |
|---|---|
dcterms: |
http://purl.org/dc/terms/ |
ex: |
http://example.com/ns# |
owl: |
http://www.w3.org/2002/07/owl# |
prof: |
http://www.w3.org/ns/dx/prof/ |
rdfs: |
http://www.w3.org/2000/01/rdf-schema# |
role: |
http://www.w3.org/ns/dx/prof/role/ |
sh: |
http://www.w3.org/ns/shacl# |
shpr: |
http://www.w3.org/ns/shpr# |
この仕様では、次のJSON-LDコンテキストを用いる:
{
"@context": {
"dcterms": "http://purl.org/dc/terms/",
"ex": "http://example.com/ns#",
"owl": "http://www.w3.org/2002/07/owl#",
"prof": "http://www.w3.org/ns/dx/prof/" ,
"rdfs": "http://www.w3.org/2000/01/rdf-schema#",
"role": "http://www.w3.org/ns/dx/prof/role/" ,
"sh": "http://www.w3.org/ns/shacl#",
"shpr": "http://www.w3.org/ns/shpr#"
}
}
SHACL語彙自体を定義するグラフのURIは、上記の名前空間と同等であり、
すなわち#を含むことに注意。
例えばowl:importsを介したSHACL語彙への参照には、
#を含めるべきである。
仕様全体を通じて、TurtleおよびJSON-LDのRDFグラフを含む色分けされたボックスが現れる。 ボックスの色とタイトルは、それが shapes graph、 data graph、またはそれ以外のもののいずれであるかを示す。 Turtle仕様断片では、上で与えた接頭辞バインディングを用いる。 ハイライトされる部分を持つのはTurtle仕様だけである。
図内の規約は、このキーによって説明される:
非規範として示されたセクションに加え、この仕様におけるすべての作成ガイドライン、図、例、注記は 非規範である。この仕様におけるそれ以外のすべては規範的である。
この文書におけるキーワードMAY、MUST、MUST NOT、RECOMMENDED、SHOULD、およびSHOULD NOTは、 ここに示すようにすべて大文字で現れる場合に限り、 BCP 14 [RFC2119] [RFC8174] に記述されるとおりに解釈される。
この文書は、プロファイリングを目的として、SHACL Core仕様[shacl12-core]のデータモデルへの 拡張を定義する。
非規範として示されたセクションに加え、この仕様におけるすべての作成ガイドライン、図、例、注記は 非規範である。この仕様におけるそれ以外のすべては規範的である。
ここで規定される構文規則は英語で与えられ、キーワードMAY、 MUST、MUST NOT、RECOMMENDED、 SHOULD、およびSHOULD NOTを用いる。これらは、 ここに示すようにすべて大文字で現れる場合に限り、BCP 14 [RFC2119] [RFC8174]に 記述されるとおりに解釈される。
この仕様の規則に対するデータの適合性主張は、 SHACL Overview仕様[shacl12-overview]の SHACL-SHACL Annexにある SHACL-SHACL Profiling validatorを用いた検証によってテストできる。
SHACLのパッケージ化とは、コンテナー・オブジェクトとの関係において SHACL要素を提示することである。
SHACL要素のグループを 識別し、グループと個々のSHACL要素との関係を知りたい理由は複数ある。 これらの理由には、グループの目的、あるグループの変更が別のグループにどのような影響を与えるか、 そして新しいグループをどのように作成するかを理解したいというものが含まれる。 このために3つのユースケースが明示されている:
上で示したユースケースへの解決策は、sh:ShapesGraphのインスタンスを用いて
SHACL要素をグループ化するなど、
十分に確立された実践に基づく、次の推奨事項をもたらす:
sh:ShapesGraphのインスタンスは、
SHACL要素のインスタンスをグループ化するために
用いるSHOULDsh:ShapesGraphのインスタンスを
rdfs:isDefinedBy述語で示すSHOULDsh:ShapesGraphのインスタンスは、
rdfs:member述語を用いて、そのSHACL要素をメンバーとして示す
SHOULDsh:ShapesGraphのインスタンスは、
sh:ShapesGraphのインスタンスを用いて識別される他のSHACL要素のグループへの依存を、
owl:imports述語で示すSHOULD以下のサブセクションでは、これらの推奨事項をそれぞれ詳述する。
sh:ShapesGraphのインスタンスは、
SHACL要素のインスタンスをグループ化するために
用いるSHOULD。
SHACL要素は、他の多くのRDF定義データと同様に、
OWL 2 Web Ontology Language RDF-Based
Semantics (Second Edition)の
owl:Ontologyクラスのインスタンス内でグループ化されることが多かった。
例えば、Open Geospatial Consortiumの空間RDFデータ向け
GeoSPARQL 1.1標準は、
Turtleファイル内に27個のsh:NodeShapeインスタンスと、ほぼ同数の
sh:PropertyShapeインスタンスを含む
SHACL validator
を提供している。このファイルには、更新日、利用ライセンスなど、検証リソースのメタデータを提示する
owl:Ontologyのインスタンスも含まれている。
この推奨事項はその実践に取って代わるものであり、owl:Ontologyの特殊化されたサブクラスである
sh:ShapesGraphを用いてSHACL要素をグループ化することを推奨する。
これは、曖昧なグループ化オブジェクトを避けるためである。
SHACL要素のインスタンスは、それを定義する
sh:ShapesGraphのインスタンスを、rdfs:isDefinedBy
述語で示すSHOULD。
sh:ShapesGraphインスタンスの使用によって識別されるグループに
SHACL要素を配置する際の一般的な実践は、
RDFファイル内にそれらの要素とオントロジー・インスタンスを単に含めることであった。
これはデータ交換には妥当であるが、交換されたファイルがRDFデータベースに格納される場合、
sh:ShapesGraphインスタンスと、その中で定義される
SHACL要素との関連が失われることがある。
named graphにロードされた場合、
その関連は、オントロジーとSHACL要素をグループ化するnamed graphによって保持される可能性があるが、
これは非意味論的な関連、すなわちグラフ内で直接見えるものではない関連である。
この推奨事項は、SHACL要素の作成者が、 そのSHACL要素が定義されるグループを示す SHOULDことを提案する。RDFにおけるそのようなアサーションの例は次のとおりである:
SHACL 1.2 Coreの 2.5 Syntactic Variations of Shapes and Classesでは、 property shapesは blank nodesとして宣言してもよいが、 グラフ間での再利用性が高まるため、 IRIsとして 宣言することが望ましい、という警告が出されている。 本セクションに従ってshapeに関する情報を含める場合、IRIを用いる SHOULD。
SHACL要素を使用するが、
それを定義しないsh:ShapesGraphのインスタンスは、
rdfs:member述語を用いて、そのSHACL要素を
メンバーとして示すSHOULD
SHACL要素が要素のグループ内で使用されるものの、 そのグループによって定義されていない場合、それはそのグループによって定義されているものとして 示すSHOULD NOTであるため、上記セクションの推奨事項は関係しない。 それらを定義しないグループ内でのSHACL要素の再利用は、Linked Dataの原則 [LDP]に従って 期待され、奨励される。
それを定義しないグループにSHACL要素が含まれることを示すための
rdfs:member述語の使用例、および上記例と同様の
rdfs:isDefinedByの使用例は、次のとおりである:
SHACL要素を
グループ化するために用いられるsh:ShapesGraphのインスタンスは、
sh:ShapesGraphのインスタンスを用いて識別される他のSHACL要素の
グループへの依存を、owl:imports
述語で示すSHOULD。
SHACL検証ツールでは、RDFデータを含むファイルなど、あるコレクションから
SHACL要素を
owl:imports命令によって別のコレクションへインポートすることが確立された実践である。
pySHACL [PYSH]など、多くのSHACL検証エンジンが
これを行っており、この実践は、特定の検証エンジンの動作がそのアサーションから生じることを期待しない場合でも、
あるコレクション/グループから別のものへの依存を示すために推奨される。
SHACLデータ管理にとっても、有用な情報となる可能性が高い。
owl:importsの例は、以下の例のとおりである。
依存関係の含意は、上記4つの推奨事項の使用から導くことができ、これは 動機セクションで示した3つのユースケースに答えるために利用できる。
TODO
data
graphに対して
shapes
graphによって実行された検証アクションの結果を、RDFに永続化する必要があるかもしれない。
その場合、データグラフDGは、述語
shpr:conformsToを用いて、shapeグラフSGに適合しているものとして
示すMAY。この状況では、DGは
sh:DataGraphのインスタンス、SGはsh:ShapesGraphの
インスタンスであると推論される。
このセクションでは、既存のSHACL 1.2のプロファイルがどのように作成されるかを説明し、いくつかの例を示し、 SHACLのさらなるプロファイルをどのように作成するかを示す。
この仕様の公開時点で知られているSHACLのプロファイル一覧、およびコミュニティ管理プロファイルへのリンクについては、 付録Aを参照されたい。
SHACLのプロファイルは、The Profiles Vocabularyを用いて宣言するべきである。 SHACL 1.2のCoreプロファイルの宣言は次のとおりである:
この宣言は、CoreプロファイルをIRI
<http://www.w3.org/ns/shacl/profile/core>で識別し、
それがprof:Profileのインスタンスであること、2015年の元のSHACL公開物のプロファイルであること、
そして仕様と検証器という2つのプロファイル・リソースを持つことを示す。
The Profiles Vocabularyの用語を用いて記述すると、 上でリンクされている各仕様のオンライン文書形式は、SHACL 1.2のプロファイルを構成する多数のリソースの うちの1つにすぎない。この文書は、 Specification —「プロファイルを人間が読める形式で定義する」— というリソース役割を果たし、他のリソースは 他の役割を果たす。SHACLユーザーに特に関心があるのは、各プロファイルの shapes graphであり、 これはValidation —「データのプロファイルへの適合性を検証する方法について指示を提供する」— の役割を果たす。 SHACL 1.2のさまざまなプロファイルは、他のプロファイル・リソース役割を持つ追加リソースを 提供する場合がある。
shapes graph検証リソースは、 SHACL 1.2 Overviewの SHACL-SHACL付録に示されている。
RDFデータをこれらのSpecification Profileのいずれか、または下で定義されるUnion Profileに対して 検証するには、SHACL 1.2 OverviewのSHACL-SHACL付録に一覧されている SHACL-SHACL shapes graphsを用いる。
SHACLのパッケージ化を用いて、プロファイルでサポートするSHACL要素を選択する方法を説明する。
この仕様の公開時点で、上に一覧した仕様それぞれに対する SHACL 1.2のプロファイルが知られている。さらに、すべての仕様プロファイルを組み合わせた union profileも知られている。
計算労力によって定義されたSHACLのプロファイル、およびSHACL UI実装労力によって定義されたSHACLのプロファイルも 知られている。
これらの既知のプロファイルは付録Aに一覧されており、SHACLの将来のプロファイルは、 W3C SHACLコミュニティが管理するリポジトリ https://github.com/w3c/shacl-resourcesに 一覧される予定である。
ここでは、内容の範囲設定に異なる論理を用いるSHACLのその他のプロファイルを示す。
SHACL Profiling 仕様におけるPackaging SHACLおよびProfiles of SHACLの仕組みを示すために、計算的に定義されたSHACLプロファイルを示す。
SHACL 1.2の追加プロファイルは、任意の基準を用いて作成できる。例えば、 OWL 2 Web Ontology Language Profiles (Second Edition)のプロファイルとよく似た形で、特定の計算複雑性に限定されたshape型のみを 実装するSHACL 1.2 Coreのプロファイルを持つことが望ましい場合がある。この場合、 上記のSHACLのパッケージ化セクションで示された仕組みを用いて、 SHACL 1.2 Coreの要素の一部だけを含めるプロファイル定義を作成できる。
SHACL 1.2のプロファイルを作成する際には、現在知られているSHACL 1.2のプロファイル — Specification ProfilesおよびUnion Profile — に従ってプロファイルを識別し提示することが重要である。 それにより、他者による利用を含めて、効果的に使用できるようになる。 SHACL 1.2のプロファイル作成者は、次のことを行うSHOULD:
このセクションでは、SHACLを用いてさまざまな種類のもののプロファイルを作成する方法を説明する。
The Profiles Vocabularyの一般的な プロファイリング用語および要素を、5. SHACLプロファイリング語彙で定義される、より特殊化されたSHACLプロファイリング要素とともに用いる。
The Profiles Vocabularyに合わせて、本仕様では Specification という用語をStandardという用語と同義であるとみなす。
SHACLは、データが既知の Specificationに合致するかどうかを テストするためによく用いられる。そのようなテストに用いられるSHACLが、仕様に含まれるルール以外の ルールを実装しない場合、そのSHACL shapes graphは、その仕様の null profileを作成する。
Shapes Graphが仕様に含まれるルールだけでなく、より多くの、または異なるルールを実装する場合、 それは仕様の(nullではない) profileをテストしていることになる。
Shapes Graph SG1が仕様S1をプロファイリングしている場合、
The Profiles
Vocabularyの特徴付けに従うと:
しかし、SG1は
Validationの役割も果たしているため、
この状況をより完全にThe
Profiles Vocabularyで特徴付けると、
次のようになる:
これは、The Profiles Vocabularyの予期しない使用である。 ここでは、プロファイルが、通常はプロファイルの一部、またはいずれかのリソースによって実行される役割も 果たしており、単一のプロファイル・リソースがすべての役割を果たしているわけではない。 しかしこれは正当であり、概念的なプロファイルが、共通のプロファイリング・リソース役割 — validation — を実行するリソースを示せるようにするというPROFの目的を引き続き達成する。
プロファイル・リソースがSHACL 1.2 Coreを使用しており、 Turtleで利用可能であることを示すために、次の内容を特徴付けに追加することもできる:
SG1が、場合によってはそれらを含む別個の自然言語文書ではなく、
プロファイルの要求事項の規範的表現ともみなされる場合、
prof:hasRoleの値
role:constraintsをそのリソースに適用することもできる。
プロファイルについての別個の自然言語文書が存在しない場合、
prof:hasRoleの値
role:specificationをそのリソースに適用することもできる。ただし、これは最適ではない。
なぜなら、role:specificationは「プロファイルを人間が読める形式で[定義する]」ものとして
規定されており、SHACLは人間が読めるとはいえ、自然言語の散文が想定されているためである。
この推論はどのユースケースに対応するか?
2.8 妥当性の表示に従い、
述語sh:conformsToを用いて、
data
graphの
shapes graphに対する妥当性を示すことができる。
この述語は、The Profiles
Vocabularyで用いられる
[DCTERMS]述語
dcterms:conformsToのサブプロパティである。
図
2に従い、
<DG1> sh:conformsTo <SG1>がある場合、これは
validationによって
Data GraphのShapes Graphへの適合性をテストした後にアサートされた可能性があるが、
次のことを推論できる:
The
Profiles Vocabularyの
dcterms:conformsTo owl:propertyChainAxiom ( dcterms:conformsTo prof:isProfileOf )
という公理に従い、次が与えられた場合、
および
次のことを結論できる
この推論により、仕様のプロファイルおよび仕様自体に対するデータの静的な適合性主張を行うことができる。 これは、これらのものへの適合性を知る必要があるが、継続的に検証できないデータにとって有用である。
セクション内容は、上記の仕様のプロファイリングと重複するため削除された。
SHACLは、RDFデータに対する制約と推論ルールを実装できる言語である。これら2つは、 プロファイル設計者が行いたいことの完全な集合ではない。例えば、プロファイルがなぜ、どのように 作成されたかについての文書を含めたい場合や、拡張スキーマ内で新しいモデル要素 (クラス、述語など)を提供したい場合がある。
SHACLは考えられるすべてのプロファイル部分に使用できるわけではないため、プロファイル設計者は、 プロファイルの全体的な部分集合と、それらを互いにどのように関連付けるかについてのガイダンスを、 SHACL仕様ファミリーの外部の仕様に求める必要がある。 The Profiles Vocabularyが そのために使用されることが期待される。
The Profiles Vocabularyの Resource Role Instancesの語彙を参照すると、 SHACLグラフがプロファイル内で Validationの役割を果たすことは明らかであり、 また、SHACLはOWLがクラスやプロパティを宣言するのと同じようにNode ShapeおよびProperty Shapeを宣言できるため、 Specificationの役割も 果たせる可能性がある。
SHACL shapesは自然にモデルとデータを制約するため、あるもの — 標準または別のプロファイル — をプロファイルがどのように制約するかを示すために用いられる場合、 Constraintsの役割を果たすことができる。
また、SHACL Rulesがあるモデルから別のモデルへデータを変換するために実装される場合、 Mappingの役割を果たすこともできる。
プロファイル階層とは、あるプロファイルが別のプロファイルの特殊化であり、より具体的なプロファイルが
より広いプロファイルから制約を継承する連鎖を形成する配置である。
The Profiles
Vocabularyの規則に従うと、
CがBのプロファイルであり、BがAのプロファイルである場合、
Cに適合しようとするデータは、BおよびAにも適合している場合にのみ
妥当になり得る。
プロファイルに対するデータの適合性を確認するとは、 Validation 役割を持つプロファイル・リソースでデータをテストすることを意味する。
未完成
SHACLを用いて作成される仕様の null profileとは、SHACLを用いてその仕様のルールの一部、 おそらくはすべてを実装するが、他のルールはSHACLで実装しない、その仕様のプロファイルである。
SHACLを用いて仕様のnull profileを作成する主な目的は、SHACL検証によってその仕様への適合性テストを 可能にすることである。この目的が存在するのは、多くのRDFデータモデルが、OWLモデルまたは モデルの自然言語文書のみといったモデル仕様を持つ一方で、SHACL validatorのようなデータ検証の仕組みを 提供していないためである。そのようなモデルの例には、 Data Catalog Vocabulary (DCAT) - Version 3、Schema.org、 The RDF Data Cube Vocabulary、および多くのW3C 標準がある。
仕様のnull profileはSHACL以外の仕組みを用いて作成することもできるが、ここではSHACLの使用のみに 焦点を当てる。
null profileとして機能するRDFデータ向けの非SHACL validatorの例として、 W3CのConstraints of the PROV Data Modelがある。 これは、PROV-O: The PROV Ontologyに従って定式化された来歴データに適用される制約の一覧を提供する。 Constraints of the PROV Data Modelは、PROV-O: The PROV Ontologyおよび 概念的なPROV-DM: The PROV Data Modelで 明示または暗示されたものを超える制約を実装しない。ただし、時間的エンティティの順序付けなど、 モデルが明示的にモデル化していないが適切な使用には必要なものに対するテストを含んでいる。 これらの制約の実装は、SPARQLクエリを実行してRDFデータ検証を可能にするPythonスクリプトとして 作成されている。
仕様のnull profileを作成するための普遍的かつ精密な方法論を与えることはできない。 なぜなら、その作業の性質上、仕様のルールが不正確に定義されている場合があり、そのため、 精密であるSHACLでそれらを特徴付けるために用いる方法も、不正確なルール定義と同様に変化するからである。
他の仕様のnull profileの例については、B. Nullプロファイルの例を参照されたい。
この語彙のすべての要素はSHACL Core語彙のメンバーであり、その名前空間の場所である
http://www.w3.org/ns/shacl#で
RDF直列化が利用可能である。
| RDFクラス: | sh:ShapesGraph |
|---|---|
| 定義元: | SHACL 1.2 Core |
| サブクラス: | owl:Ontology |
| 定義: | shapes graphは、データグラフをshapeに照らして検証できるようにSHACL検証 プロセスに渡される、0個以上のshapeを含むRDFグラフである。 |
| 関連項目: | SHACL 1.2 Core: Shapes Graph |
| 範囲注記: | SHACLプロファイリングの目的では、このクラスは、 SHACL要素をまとめてグループ化するために使用される。 これは第2.3 SHACL 要素のグループの識別に従う。 |
| RDFプロパティ: | owl:imports |
|---|---|
| 定義元: | OWL Web Ontology Language Reference |
| 定義: | 他のオントロジーを所与のオントロジーにインポートするために用いられるプロパティ。 |
| ドメイン: | owl:Ontology |
| 範囲: | owl:Ontology |
| 関連項目: | OWL Web Ontology Language Reference: オントロジーのインポート |
| 範囲注記: | SHACLプロファイリングの目的では、この述語はShapes Graph間の依存関係を示すために使用される。 これは第2.6 グループ依存関係の表示に従う。 |
| RDFプロパティ: | rdfs:member |
|---|---|
| 定義元: | RDF 1.2 Schema |
| 定義: | 主語リソースのメンバー。 |
| ドメイン: | Resource |
| 範囲: | Resource |
| 関連項目: | RDF 1.2 Schema: member |
| 範囲注記: | SHACLプロファイリングの目的では、この述語は、Shapes Graphを、それが使用する各Shapeに関連付けるために使用される。 そのShapeが当該Shapes Graphで定義されているか他所で定義されているかは問わない。 これは第2.5 要素使用の表示に従う。 |
| RDFクラス: | sh:DataGraph |
|---|---|
| 定義元: | SHACL 1.2 Core |
| 定義: | 任意のRDFグラフはdata graphであり得る。 |
| 使用上の注記: |
適合性主張を行いたいRDFグラフを表すために、このクラスを使用する。
例えば、GeoSPARQL 1.1
標準のShapes
Graph(http://www.opengis.net/def/geosparql/validator)に従って
適合性をテストする場合、RDFデータのグラフをData Graphsとして記録する。
|
| 関連項目: | SHACL 1.2 Core: Data Graph |
| 範囲注記: | SHACLプロファイリングの目的では、このクラスは、SHACL関連の 主張を行う対象となるRDFデータを表すために使用される。 |
| RDFプロパティ: | sh:conformsTo |
|---|---|
| 定義元: | SHACL 1.2 Core |
| サブプロパティ: | dcterms:conformsTo
|
| 定義: | 検証が、許可されないレベルの集合のseverity levelを持つ 検証結果を生成しなかった場合、主語は目的語に適合する。 |
| ドメイン: | Data Graph |
| 範囲: | Shapes Graph |
| RDFプロパティ: | sh:validationReport
|
|---|---|
| 定義元: | SHACL 1.2 Core |
| 定義: | 主語に対して存在するValidation Report。 |
| ドメイン: | Data Graph |
| 範囲: | Validation Report |
| RDFクラス: | sh:ValidationReport
|
|---|---|
| 定義元: | SHACL 1.2 Core |
| 定義: | validation reportは、Shapes Graphに対するData Graphの適合性と、すべての 検証結果の集合を報告する検証プロセスの結果である。 |
| 関連項目: | SHACL 1.2 Core: Validation Report |
| RDFプロパティ: | sh:usedShapesGraph
|
|---|---|
| 定義元: | SHACL 1.2 Core |
| 定義: | 主語のValidation Reportは、目的語のShapes Graphを用いて生成された。 |
| ドメイン: | Validation Report |
| 使用上の注記: | version IRI of a Shapes Graphも、このプロパティの目的語として使用できる。 |
| 範囲: | Shapes Graph |
| RDFプロパティ: | sh:conforms |
|---|---|
| 定義元: | SHACL 1.2 Core |
| 定義: | Validation Reportが記述している適合性確認の結果を表す。 |
| ドメイン: | Validation Report |
| 範囲: | boolean |
| 関連項目: | SHACL 1.2 Core: conforms |
| RDFクラス: | sh:Shape |
|---|---|
| 定義元: | SHACL 1.2 Core |
| 定義: | shapeは、特定のノードを対象にすることができる制約の集合である。 |
| 関連項目: | SHACL 1.2 Core: Shape |
| RDFプロパティ: | rdfs:isDefinedBy
|
|---|---|
| 定義元: | RDF 1.2 Schema |
| 定義: | 主語は、テスト対象Data Graphの妥当性を判定する際に目的語を用いた。 |
| ドメイン: | Validation Report |
| 範囲: | Shapes Graph |
| 関連項目: | RDF 1.2 Schema: isDefinedBy |
「conforms to」規則は、Data Graphに関連付けられたValidation Reportが存在し、
そのレポートがShapes Graphが検証に使用されたことを示し、かつsh:conforms
プロパティがtrueを示す場合に、Data Graphが
Shapes Graphに適合していると示すことを可能にする推論規則である。
この推論規則は、sh:conformsプロパティ値のテストを含むため、
OWL property chain axiomとして表現できない。そのため、ここではSPARQL 1.2
Query Language規則とSHACL 1.2 Rules規則の両方として示す。
この付録は、この仕様の公開時点で知られているSHACL 1.2のプロファイルを、 SHACLのプロファイリングセクションに従って定式化して一覧する。 また、この文書が確定した後に追加できるSHACLのプロファイルの非公式レジスターを、 W3CのSHACLコミュニティがどこで管理しているかも示す。
RDFにおける7つのSpecification Profileそれぞれの定義は、ここで利用可能である:
Union Profile定義もRDFで利用可能である:
SHACL 1.2のUnion Profileは、SHACL 1.2仕様シリーズの すべての側面を包含する、SHACL 1.2の概念的な全体である。人間が読める単一のUnion Profile 仕様文書は存在しない — 仕様セクションからリンクされている各文書を個別に読む必要がある — が、単一のvalidationリソースは存在する。すなわち、個々のプロファイルの validation shapes graphをすべて含む shapes graphである。
Union Profileのshapes graphは、 SHACL 1.2 Overviewの SHACL-SHACL付録に示されている。
SHACLのSHACL 1.2 UI profileは、SHACL 1.2 UI仕様向けに実装されるユーザーインターフェイス・コンポーネントとしての 実装の容易さに基づいて選択された、SHACL Core語彙要素のサブセットである。
TODO
SHACLのCD1(「Computationally-Defined #1」)プロファイルは、計算上の単純さに基づいて 選択された、SHACL Core、SPARQL、およびNode Expressions語彙要素のサブセットである。
このCD1プロファイルを定義する理由は2つある:
このプロファイルは、リソースhttp://www.w3.org/ns/shacl/profile/cd1で定義されており、 その一部は次のとおりである:
上で... many skipped membersと示されている箇所には、次を除くSHACL 1.2の
すべてのクラス要素およびプロパティ要素が一覧されている:
blah:BlahBlahblah:OtherBlahTODO
SHACLのPretty Print profileは、検証プロセスによって「pretty」— 読みやすい — エラーメッセージが 生成されるように選択された、SHACL語彙要素のサブセットである。
SHACLのOwl Consistent profileは、shape定義が対象とするクラスおよび述語に関するOWL制約に 違反しないことを保証するために選択された、SHACL語彙要素のサブセットである。
このセクションは非規範である。
この付録には、他の仕様のnull profileの例が含まれる。
このプロファイルは、Basic Geo (WGS84 lat/long) Vocabularyのnull profileである。 このプロファイルの目的は、非常に単純なRDF語彙のnull profileがどのようなものかを示すことである。
TODO - repo内のpos.ttlファイルを参照
このプロファイルは、The Profiles Vocabularyの null profileである。
このプロファイルの目的は、PROFデータ用のSHACLベースの検証器を提供することと、 やや複雑な語彙のnull profileがどのようなものかを示すことの両方である。
このnull profileは、PROFのすべてのOWLルール、およびPROF仕様で述べられているが PROFオントロジーでは実装されていないいくつかのルールを実装する。
TODO
このセクションは非規範である。
ほとんどのRDFベース技術と同様に、SHACLプロセッサーは、さまざまなソースから
組み立てられたグラフを操作する場合がある。一部のアプリケーションは、オープンな
「linked data」(「LD」)アーキテクチャを持ち、組織の信頼ネットワークの外部にあるソースから
RDFトリプルを動的に組み立てる場合がある。
RDFでは誰でも任意のリソースについて文を追加できるため、トリプルがshape定義または
data
graph内のノードの当初意図された意味を変更し、その結果、
誤解を招く結果につながる可能性がある。
これ(および以下)のシナリオに対する保護は、信頼され検証されたRDFソースのみを使用し、
owl:importsおよびsh:shapesGraphを介してグラフが動的に追加される可能性を
排除することで実現可能である。
他の仕様のプロファイルを作成する場合、プロファイル作成者は、 自らの制約がそれらの仕様のルールに違反しないことを保証する必要がある。 いずれかが違反しており、仕様のルールではなくプロファイルのルールのみが、偶然または設計により データ妥当性確認に使用された場合、データが誤って妥当であると計算される可能性がある。 これは偶発的なデータ公開または利用につながり、セキュリティ問題を引き起こす可能性がある。
このセクションは非規範である。
RDF Data Shapesワーキンググループのメンバーを含む多くの人々が、この仕様に貢献した。
TODO
Referenced in:
Referenced in:
Referenced in:
Referenced in: