Help:Schema

From semantic-mediawiki.org
(Redirected from Help:Schema)
Example of a constraint schema

The smw/schema namespace has been introduced12 to allow Semantic MediaWiki or related extensions to store different structured type definition (aka schema).

To create, edit, or modify a page in the smw/schema namespace, the smw-schemaedit user right is necessary.

  • Types contains details about available types and examples
  • Error handling explains how the JSON validation helps minimizes inconsistency and maintenance effort for a schema in the smw/schema namespace

Objective

The objective of the SMW_NS_SCHEMA (aka Schema) namespace is to allow for a structured definition of different schemata where types define the interpreter, syntax elements, and constraints.

The namespace expects a JSON format (or if available, YAML as superset of JSON) as input format to ensure that content elements are structured and a validation_schema (see JSON schema) may be assigned to a type to help enforce requirements and constraints for a specific type.

The following properties are provided to make elements of a schema definition discoverable.

  • Schema type (_SCHEMA_TYPE )
  • Schema definition (_SCHEMA_DEF)
  • Schema description (_SCHEMA_DESC)
  • Schema tag (_SCHEMA_TAG)
  • Schema link (_SCHEMA_LINK)

Registration

Extensibility for new schema types and interpreters is provided by adding a new type to the $smwgSchemaTypes setting.

$GLOBALS['smwgSchemaTypes'] = [
    'FOO_SCHEMA' => [
        'group' => SMW_SCHEMA_FOO_GROUP,
        'validation_schema => __DIR__ . '/data/schema/foo-schema.v1.json',
    ]
];

Available schema types

Technical notes

SMW\Schema
│   │
│   ├─ Schema
│   ├─ SchemaDefinition
│   ├─ SchemaFactory
│   └─ SchemaValidator
│
SMW\MediaWiki
    └─ Content
        ├─ SchemaContent
        ├─ SchemaContentFormatter
        └─ SchemaContentHandler


See also[edit]

References

  1. ^  Semantic MediaWiki: GitHub pull request gh:smw:3019
  2. ^  Semantic MediaWiki: GitHub pull request gh:smw:3431