Skip to content

Commit 4798fe7

Browse files
# Conflicts: # _data/navigation.yml # _pages/index.markdown
2 parents 8e2fbf0 + a64d3dd commit 4798fe7

14 files changed

+82
-19
lines changed

_data/navigation.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,18 @@ docs:
1111
url: /overview/types
1212
- title: Types (Patterns)
1313
url: /overview/types#patterns
14-
14+
- title: Quick Start
15+
children:
16+
- title: Local Build
17+
url: /build/local
1518
- title: Using the Building Blocks
1619
children:
1720
- title: Finding Building Blocks
1821
url: /use/finding
1922
- title: Reusing schemas
20-
- title: Reusing schemas
21-
url: /use/ftc
23+
url: /use/reusing-schemas
2224
- title: Linked Data / JSON-LD Context
25+
url: /use/linked-data
2326
- title: Creating Building Blocks
2427
children:
2528
- title: Overview

_pages/build/local.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
title: Quick Start - local build
3+
permalink: /build/local
4+
---
5+
6+
7+
## Quick how-to create
8+
9+
1. Install docker
10+
2. Check out any valid Building Block implementation (e.g. [bblocks-examples](https://ogcincubator.github.io/bblocks-examples/))
11+
3. cd to the new directory
12+
4. run build.sh or build.bat if present
13+
- this will access the current build scripts and compile the building block locally
14+
- if not present run the command
15+
```shell
16+
# Process building blocks
17+
docker run --pull=always --rm --workdir /workspace -v "$(pwd):/workspace" \
18+
ghcr.io/opengeospatial/bblocks-postprocess --clean true
19+
```
20+
5. run the view.sh or view.bat to preview the local build
21+
- if not present run
22+
```shell
23+
docker run --rm --pull=always -v "$(pwd):/register" -p 9090:9090 ghcr.io/ogcincubator/bblocks-viewer
24+
```
25+
You can now experiment with the source material - or proceed to [create your own building blocks](../create).
26+
27+
(create a fork if you want to update the the repository so you can submit pull requests. The local build outputs will be ignored automatically on updates.)

_pages/create/index.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@
22
title: How to create Building Blocks
33
permalink: /create
44
---
5-
Building Blocks can be reused by either:
5+
## starting point options:
66

7-
- cut and paste "ready to use" forms from the `build/` directory
8-
- directly reference the artefacts in the `build` directory using the URL pattern specified in the building block
9-
description
7+
1. Create from scratch using a template - see below
8+
2. Fork an existing repository to update or add new building blocks, and generate a Pull Request to submit to the register owner
9+
2. Copy any building block repository and edit `bblocks-config.yaml` and the `_sources/*` to create a new register
1010

11-
## Quick how-to
11+
In all cases follow the [local build process](../build/local) to test before committing to an online repository.
12+
13+
## Quick how-to create
1214

1315
1. Navigate to the [bblock-template](https://github.com/opengeospatial/bblock-template) repository.
1416
2. Click on "Use this template" on GitHub (do not fork this repository, or you will have to manually enable the

_pages/create/metadata.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ permalink: /create/metadata
44
---
55
Building block metadata provides context information about the item in the building blocks register. It is based on [ISO 19135](https://www.iso.org/standard/54721.html), the standard for item registration of geographic information, from which it extracted its six mandatory items (flagged with *). The ISO schema is extended with other properties (in green), which account for things such as the visual representation in the register, item validation or relation with other building blocks.
66

7-
[![building block](/assets/bblock.png)](/assets/bblock.png)
7+
[![building block](../assets/bblock.png)](../assets/bblock.png)

_pages/create/rdf-only.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ permalink: /create/rdf-only
55
Building Blocks can be defined that use RDF only. An RDF building block can:
66

77
1. Define RDF (TTL) examples how to use the Semantic model
8-
2. Apply SHACL Rules to [validate examples](TESTING.md#SHACL)
9-
3. [Perform transforms](TXFORMS.md) and validate results
8+
2. Apply SHACL Rules to [validate examples](validation#shacl-validation)
9+
3. [Perform transforms](transforms) and validate results
1010

1111
Test cases and examples as either TTL or JSONLD will undergo syntax and SHACL validation.
1212

_pages/create/schema.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ this is done in a two-step process:
3939
4040
2. use the `bblocks:://{id}` syntax as href in schema $ref elements.
4141

42-
This means your building block will inherit all json-ld contexts and SHACL rules from the referenced building block automatically and apply during [testing](TESTING.md).
42+
This means your building block will inherit all json-ld contexts and SHACL rules from the referenced building block automatically and apply during [testing](../create/validation).
4343

4444

4545
# Profiling JSON Schemas

_pages/create/structure.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ permalink: /create/structure
55

66
The following image summarizes the general usage of a building block:
77

8-
[![Usage](/assets/usage.png)](/assets/usage.png)
8+
[![Usage](../assets/usage.png)](../assets/usage.png)
99

1010
## Building Block sources
1111

_pages/index.markdown

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@ permalink: /
44
---
55
This is the documentation for OGC Building Blocks, a specification component packaging approach that can be used to **add documentation** to existing specification components, or to assemble specifications cost-effectively using a test-driven approach.
66

7-
This packaging supports testing of examples, and validation using rules inherited from other Building Blocks that are re-used (by aggregation or profiling) to create compatible specifications for specific applications.
7+
![](../assets/bblocks-qr.png)
8+
9+
Building Blocks may be various [types](overview/types) - however the emphasis is semantically annotated schemas for use in OGC API definitions.
810

9-
Building Blocks make various different [types](/overview/types) of specification component accessible in a common, convenient form and registers. A key innovation is support for **semantically annotated schemas**, suitable for use in OpenAPI definitions.
11+
A key application is the [register of OGC Specification Building blocks](https://opengeospatial.github.io/bblocks/register/)
1012

11-
The Building Block documentation framework is the basis of the [register of OGC Specification Building blocks](https://opengeospatial.github.io/bblocks/register/).
13+
This packaging supports testing of examples, and validation using rules inherited from other Building Blocks that are re-used (by aggregation or profiling) to create compatible specifications for specific applications.
1214

13-
OGC BuildingBlocks can be organised into [registers](/overview/registers) for convenience, each repository creating a local register that can be aggregated into another application domain register.
15+
OGC BuildingBlocks can be organised into [registers](overview/registers) for convenience, each repository creating a local register that can be aggregated into another application domain register.
1416

_pages/overview/profiles.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,17 @@ Because many technologies like JSON and RDF are permissive (by default) about ad
2828
Profiles can be designed as separate re-usable sets of constraints that can be reused - for example a time-series of water-quality monitoring observations could be specified as a profile of both a time-series profile of Observations and a water-quality profile for the results of such observations.
2929
In turn the time-series profile could defined as data structure using GeoJSON, or Coverage JSON. The water-quality content requirements could be described using constraints independent of the data structure.
3030

31+
## Profiles for infrastructure compatibility
32+
33+
Profiles can be layered to meet different needs. The typical usage is for applications that are compatible with shared infrastructures, where applications may be designed to interact with other applications, but the supporting infrastructures for these applications may also be designed to interoperate with other infrastructures.
34+
35+
Underlying standards allow reusable software and libraries to be used at all levels.
36+
37+
This can be visualised as a layered model of typical profiles, identifying the types of constraints typically present at each layer.
38+
39+
![Profile layers](profiles.png)
40+
41+
3142
## What forms of constraints are possible?
3243

3344
The **OGC BuildingBlock** model supports a range of possible constraint approaches. The goal is to make such constraints **_machine-readable_** to the extent possible.
@@ -40,7 +51,7 @@ Built-in support is provided for automatic validation of the following forms:
4051
- JSON schema (for JSON examples) for **structure**
4152
- SHACL (Shapes Constraint Language for RDF) for **content** and **logical consistency**
4253

43-
In addition [custom validators](VALIDATORS) can be added to the validation workflow.
54+
In addition [custom validators](../create/validation) can be added to the validation workflow.
4455

4556
Using a JSON-LD context "semantic uplift" of JSON to RDF supports use of SHACL and other forms of validators to
4657

_pages/overview/profiles.png

215 KB
Loading

_pages/use/finding.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Whilst components described as Building Blocks may be referenced by individual s
88

99
The OGC Building Block Framework provides three improved approaches for discovery:
1010

11-
1. [Registers](/overview/registers)
11+
1. [Registers](../overview/registers)
1212
1. [RAINBOW (OGC Knowledge Graph)]()
1313
1. Transparent Dependencies
1414

_pages/use/linked-data.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
title: Linked Data / JSON-LD Context
3+
permalink: /use/linked-data
4+
---
5+
6+
# TBD

_pages/use/reusing-schemas.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
title: Reusing schemas
3+
permalink: /use/reusing-schemas
4+
---
5+
6+
Building Blocks can be reused in several ways:
7+
8+
- if creating a JSON schema based BuildingBlock then use the $ref: bblocks://{block id} to make a JSON schema reference to any building block in the import list [see imports](../create/imports)
9+
- for other [types of Building Blocks](../overview/types) declare as an entry in the dependsOn element of a `block.json` metadata file
10+
- cut and paste "ready to use" forms from the `build/` directory of any building block repository into a some other form of application (not a reusable Building Block itself)
11+
- directly reference the artefacts in the `build` directory using the URL pattern specified in the building block
12+
description (noting this may be affected by changes if a building block is moved from one register to another - bblocks:// references will still work if imports approach is used.)

assets/bblocks-qr.png

16.7 KB
Loading

0 commit comments

Comments
 (0)