diff --git a/website/content/tutorials/_index.md b/website/content/tutorials/_index.md index e4ab1cfcf..60862c656 100644 --- a/website/content/tutorials/_index.md +++ b/website/content/tutorials/_index.md @@ -8,8 +8,38 @@ menu: weight: 10 --- -Metaschema is a framework for modeling information into data formats. To start, let us imagine we want to exchange information about computers. How do we model a computer in Metaschema? We start with a metaschema definition. +Metaschema is a framework for modeling information into machine-readable data formats. If we want to build tools to exchange information about computers, how do we model a computer in Metaschema and what are the benefits? + +We start with an empty metaschema definition, like the one below. ```xml - + + +``` + +We write a Metaschema definition in XML. An empty definition like above has a beginning and ending `METASCHEMA` tags. We want to add useful metadata for both developers and Metaschema-enabled tools to consume this definition, like so. + +```xml + + Computer Model + 0.0.1-alpha + computer + http://example.com/ns/computer + +``` + +The metadata above provides useful information to the developer and tools. The `schema-name` is the long-form, descriptive name of the computer model. The `schema-version` is to give the model itself a version number, for either developers or their tools to use. The `short-name` is the shortened form of the `schema-name`, and most importantly the outputs of Metaschema-enabled tools will look for data fields with the name `computer`, not `Computer Model`. The `namespace` is a URI used to identify the model and its parts as belonging to a single scope, like a module name or class name in other data formats and programming languages. + +With a minimal metadata section in place, we will add the first part of the model for the computer, an `assembly` for a computer itself. + +```xml + + Computer Model + 0.0.1-alpha + computer + http://example.com/ns/computer + + + ``` \ No newline at end of file