About — This property on the RO-Crate Metadata Descriptor references the Root Data Entity. In a SoSS+ profile there may be Schemas present for more than one 'flavour' of Root Data Entity with different @type arrays or `@conformsTo` references (or other specializations). #RO-Crate_Metadata_Descriptor.about
Access — Whether this is an open or restricted access license. #prop_ldac:access_DataReuseLicense
Access Control List — When a license has an authorizationWorkflow property with a value of the DefinedTerm AccessControlList this property has a URI value that points to a list of userIDs. #prop_ldac:accessControlList_DataReuseLicense
This is the 'magic' entity that identifies the RO-Crate Metadata Descriptor, which is the root of the graph and the entry point for validation. It must have a @type of RO-Crate_Metadata_Descriptor and its @id must be 'ro-crate-metadata.json'.
There must with the path README.html in the root of the RO-Crate, and it must be described by an entity of type README_Entity with an @id of README.html.
There must with the path README.html in the root of the RO-Crate, and it must be described by an entity of type README_Entity with an @id of README.html.
This is the 'magic' entity that identifies the RO-Crate Metadata Descriptor, which is the root of the graph and the entry point for validation. It must have a @type of RO-Crate_Metadata_Descriptor and its @id must be 'ro-crate-metadata.json'.
diff --git a/masp-profile/profile-crate/profile-documentation.md b/masp-profile/profile-crate/profile-documentation.md
index 8250864..ee17fd1 100644
--- a/masp-profile/profile-crate/profile-documentation.md
+++ b/masp-profile/profile-crate/profile-documentation.md
@@ -1176,7 +1176,7 @@ At least 1 instances of this type MUST be present in the crate.
| -------- | ----------------- | -------- | ----------- | ----- | ----- |
| @type | | Yes | | | CreativeWork |
| about | http://schema.org/about | Yes | This property on the RO-Crate Metadata Descriptor references the Root Data Entity. In a SoSS+ profile there may be Schemas present for more than one 'flavour' of Root Data Entity with different @type arrays or `@conformsTo` references (or other specializations). | Root Data Entity | |
-| @id | | Yes | This is the 'magic' entity that identifies the RO-Crate Metadata Descriptor, which is the root of the graph and the entry point for validation. It must have a @type of RO-Crate_Metadata_Descriptor and its @id must be 'ro-crate-metadata.json'. | Root Data Entity | ro-crate-metadata.json |
+| @id | | Yes | This is the 'magic' entity that identifies the RO-Crate Metadata Descriptor, which is the root of the graph and the entry point for validation. It must have a @type of RO-Crate_Metadata_Descriptor and its @id must be 'ro-crate-metadata.json'. | RO-Crate Metadadata Descriptor Identifier Constraint | |
### Class: README Entity
@@ -1194,7 +1194,7 @@ At least 1 instances of this type MUST be present in the crate.
| Property | Specialization Of | Required | Description | Range | Value |
| -------- | ----------------- | -------- | ----------- | ----- | ----- |
| @type | | Yes | | | MediaObject |
-| @id | | Yes | There must with the path `README.html` in the root of the RO-Crate, and it must be described by an entity of type README_Entity with an @id of `README.html`. | README Entity | README.html |
+| @id | | Yes | There must with the path `README.html` in the root of the RO-Crate, and it must be described by an entity of type README_Entity with an @id of `README.html`. | @id | |
### Class: Root Data Entity
@@ -1223,7 +1223,12 @@ At least 1 instances of this type MUST be present in the crate.
| Property | Specialization Of | Description | Range | Occurs in Domain(s) |
| -------- | ----------------- | ----------- | ----------- | ----------- |
-| @id | | There must with the path `README.html` in the root of the RO-Crate, and it must be described by an entity of type README_Entity with an @id of `README.html`. | README Entity | README Entity |
+| @id | | There must with the path `README.html` in the root of the RO-Crate, and it must be described by an entity of type README_Entity with an @id of `README.html`. | @id | README Entity |
+### Property: @id
+
+| Property | Specialization Of | Description | Range | Occurs in Domain(s) |
+| -------- | ----------------- | ----------- | ----------- | ----------- |
+| @id | | README file must have an @id matching /^readme\.md$/i. | propertyValue_property_CreativeWork_README.id | class_CreativeWork_README |
### Property: About
| Property | Specialization Of | Description | Range | Occurs in Domain(s) |
@@ -1473,7 +1478,7 @@ At least 1 instances of this type MUST be present in the crate.
| Property | Specialization Of | Description | Range | Occurs in Domain(s) |
| -------- | ----------------- | ----------- | ----------- | ----------- |
-| @id | | This is the 'magic' entity that identifies the RO-Crate Metadata Descriptor, which is the root of the graph and the entry point for validation. It must have a @type of RO-Crate_Metadata_Descriptor and its @id must be 'ro-crate-metadata.json'. | Root Data Entity | RO-Crate Metadata Descriptor |
+| @id | | This is the 'magic' entity that identifies the RO-Crate Metadata Descriptor, which is the root of the graph and the entry point for validation. It must have a @type of RO-Crate_Metadata_Descriptor and its @id must be 'ro-crate-metadata.json'. | RO-Crate Metadadata Descriptor Identifier Constraint | RO-Crate Metadata Descriptor |
### Property: Identifier
| Property | Specialization Of | Description | Range | Occurs in Domain(s) |
diff --git a/masp-profile/profile-crate/ro-crate-metadata.json b/masp-profile/profile-crate/ro-crate-metadata.json
index c01bf5d..bfefde2 100644
--- a/masp-profile/profile-crate/ro-crate-metadata.json
+++ b/masp-profile/profile-crate/ro-crate-metadata.json
@@ -1150,12 +1150,25 @@
},
"rdfs:comment": "README file",
"rangeIncludes": {
- "@id": "#README_Entity"
+ "@id": "#property_CreativeWork_README.id"
},
"sh:minCount": "1",
"sh:maxCount": "1",
- "description": "There must with the path `README.html` in the root of the RO-Crate, and it must be described by an entity of type README_Entity with an @id of `README.html`.",
- "value": "README.html"
+ "description": "There must with the path `README.html` in the root of the RO-Crate, and it must be described by an entity of type README_Entity with an @id of `README.html`."
+ },
+ {
+ "@id": "#property_CreativeWork_README.id",
+ "@type": "rdf:Property",
+ "description": "README file must have an @id matching /^readme\\.md$/i.",
+ "rdfs:label": "@id",
+ "rangeIncludes": {
+ "@id": "#propertyValue_property_CreativeWork_README.id"
+ },
+ "domainIncludes": {
+ "@id": "#class_CreativeWork_README"
+ },
+ "sh:minCount": 1,
+ "sh:maxCount": 1
},
{
"@id": "#Root_Data_Entity",
@@ -3354,16 +3367,24 @@
"@id": "#RO-Crate_Metadata_Descriptor"
},
"rdfs:comment": "The RO-Crate Metadata Descriptor",
- "rangeIncludes": {
- "@id": "#Root_Data_Entity"
+ "rangeIncludes": {
+ "@id": "#propertyValue_RO-Crate_Metadata_Descriptor.id"
},
"sh:minCount": "1",
"isPartOf": {
"@id": "#hasSpecializedSchema"
},
"sh:maxCount": "1",
- "description": "This is the 'magic' entity that identifies the RO-Crate Metadata Descriptor, which is the root of the graph and the entry point for validation. It must have a @type of RO-Crate_Metadata_Descriptor and its @id must be 'ro-crate-metadata.json'.",
- "value": "ro-crate-metadata.json"
+ "description": "This is the 'magic' entity that identifies the RO-Crate Metadata Descriptor, which is the root of the graph and the entry point for validation. It must have a @type of RO-Crate_Metadata_Descriptor and its @id must be 'ro-crate-metadata.json'."
+ },
+ {
+ "@id": "#propertyValue_RO-Crate_Metadata_Descriptor.id",
+ "@type": "PropertyValue",
+ "name": "RO-Crate Metadadata Descriptor Identifier Constraint",
+ "description": "Allowed identifier value constraint for RO-Crate Metadadata Descriptor.",
+ "value": "ro-crate-metadata.json",
+ "sh:minCount": 1,
+ "sh:maxCount": 1
},
{
"@id": "ldac:AccessControlList",
@@ -4188,4 +4209,4 @@
"name": "Language Data Commons RO-Crate Profile: Collection"
}
]
-}
\ No newline at end of file
+}
diff --git a/masp-schema/schema-crate/ro-crate-metadata.json b/masp-schema/schema-crate/ro-crate-metadata.json
index a7f9944..c9cdeb0 100644
--- a/masp-schema/schema-crate/ro-crate-metadata.json
+++ b/masp-schema/schema-crate/ro-crate-metadata.json
@@ -1,4 +1,4 @@
-{
+
"@context": [
"https://w3id.org/ro/crate/1.2/context",
{