Skip to content

Commit

Permalink
Update docs
Browse files Browse the repository at this point in the history
  • Loading branch information
NicoLaval committed Oct 9, 2024
1 parent a3beab2 commit 63ae0f0
Show file tree
Hide file tree
Showing 12 changed files with 2,745 additions and 2,665 deletions.
6 changes: 3 additions & 3 deletions docs/blog/2024-10-07-trevas-provenance.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ class FileInstance["sdth:FileInstance"] {

#### Adopted model

The `vtl-prov` module, version 1.6.0, used the following partial model:
The `vtl-prov` module, version 1.6.0, uses the following partial model:

```mermaid
classDiagram
Expand Down Expand Up @@ -101,7 +101,7 @@ classDiagram
VariableInstance --> VariableInstance : sdth_wasDerivedFrom
```

Improvments will come in next weeks.
Improvements will come in next weeks.

#### Tools available

Expand Down Expand Up @@ -134,7 +134,7 @@ flowchart TD

### Inputs

`ds1` & `ds2` metadata
`ds1` & `ds2` metadata:

| id | var1 | var2 |
| :--------: | :-----: | :-----: |
Expand Down
17 changes: 11 additions & 6 deletions docs/blog/2024-10-09-trevas-vtl-21.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,21 @@ tags: [Trevas, 'VTL 2.1']
import useBaseUrl from '@docusaurus/useBaseUrl';
import Link from '@theme/Link';

### News

Trevas 1.7.0 upgrade to version 2.1 of VTL.

This version introduces new operators: `random`, `case` and time operators.
This version introduces two new operators:

- `random`
- `case`

`random` produces a decimal number between 0 and 1.

`case` allows for clearer multi conditional branching, for example:

It also includes corrections, without breaking changes compared to the 2.0 version.
`ds2 := ds1[ calc c := case when r < 0.2 then "Low" when r > 0.8 then "High" else "Medium" ]`

### Implementations
Both operators are already available in Trevas!

`random` and `case`operators are already supported in Trevas 1.7.0
The new grammar also provides time operators and includes corrections, without any breaking changes compared to the 2.0 version.

See the <Link label={"coverage"} href={useBaseUrl('/user-guide/coverage')} /> section for more details.
1 change: 1 addition & 0 deletions docs/docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ module.exports = {
},
blog: {
showReadingTime: true,
onUntruncatedBlogPosts: 'ignore',
},
theme: {
customCss: require.resolve('./src/css/custom.scss'),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,239 @@
---
slug: /trevas-provenance
title: Trevas - Provenance
authors: [nicolas]
tags: [Trevas, provenance, SDTH]
---

import useBaseUrl from '@docusaurus/useBaseUrl';
import Link from '@theme/Link';

### Nouveautés

Trevas 1.6.0 introduit le module VTL Prov.

Ce module permet de produire des métadonnées de lineage à partir de Trevas, basées sur les ontologies RDF : `PROV-O` et `SDTH`.

#### Aperçu du modèle SDTH

```mermaid
classDiagram
class Program["sdth:Program"] {
rdfs:label
}
class ProgramStep["sdth:ProgramStep"] {
rdfs:label
sdth:hasSourceCode
sdth:hasSDTL
}
class VariableInstance["sdth:VariableInstance"] {
rdfs:label
sdth:hasName
}
class DataframeInstance["sdth:DataframeInstance"] {
rdfs:label
sdth:hasName
}
class FileInstance["sdth:FileInstance"] {
rdfs:label
sdth:hasName
}
ProgramStep <-- Program : sdthhasProgramStep
ProgramStep <-- ProgramStep : sdth_hasProgramStep
ProgramStep --> VariableInstance : sdth_usesVariable
ProgramStep --> VariableInstance : sdth_assignsVariable
ProgramStep --> DataframeInstance : sdth_consumesDataframe
ProgramStep --> DataframeInstance : sdth_producesDataframe
ProgramStep --> FileInstance : sdth_loadsFile
ProgramStep --> FileInstance : sdth_savesFile
DataframeInstance --> VariableInstance : sdth_hasVariableInstance
FileInstance --> VariableInstance : sdth_hasVariableInstance
DataframeInstance --> DataframeInstance : sdth_derivedFrom
DataframeInstance --> DataframeInstance : sdth_elaborationOf
FileInstance --> FileInstance : sdth_derivedFrom
FileInstance --> FileInstance : sdth_elaborationOf
VariableInstance --> VariableInstance : sdth_derivedFrom
VariableInstance --> VariableInstance : sdth_elaborationOf
```

#### Modèle adopté

Le module `vtl-prov`, version 1.6.0, utilise le modèle partiel suivant :

```mermaid
classDiagram
class Agent {
}
class Program {
rdfs:label
}
class ProgramStep {
rdfs:label
}
class VariableInstance {
rdfs:label
sdth:hasName
}
class DataframeInstance {
rdfs:label
sdth:hasName
}
Agent <|-- Program
ProgramStep <-- Program : sdth_hasProgramStep
ProgramStep --> VariableInstance : sdth_usesVariable
ProgramStep --> VariableInstance : sdth_assignsVariable
ProgramStep --> DataframeInstance : sdth_consumesDataframe
ProgramStep --> DataframeInstance : sdth_producesDataframe
DataframeInstance --> VariableInstance : sdth_hasVariableInstance
DataframeInstance --> DataframeInstance : sdth_wasDerivedFrom
VariableInstance --> VariableInstance : sdth_wasDerivedFrom
```

Des améliorations arriveront dans les prochaines semaines.

#### Outils disponibles

Les outils de provenance Trevas sont documentés <Link label={"ici"} href={useBaseUrl('/developer-guide/spark-mode/data-sources/sdmx')} />.

#### Exemple

##### Cas d'utilisation métier

Deux jeux de données sources sont transformés pour produire des jeux de données transitoires et un jeu de données final permanent.

```mermaid
flowchart TD
OP1{add +}
OP2{multiply *}
OP3{filter}
OP4{create variable}
SC3([3])
ds_1 --> OP1
ds_2 --> OP1
OP1 --> ds_sum
SC3 --> OP2
ds_sum --> OP2
OP2 --> ds_mul
ds_mul --> OP3
OP3 --> OP4
OP4 --> ds_res
```

### Entrées

`ds1` & `ds2` métadonnées:

| id | var1 | var2 |
| :--------: | :-----: | :-----: |
| STRING | INTEGER | NUMBER |
| IDENTIFIER | MEASURE | MEASURE |

### Script VTL

```vtl
ds_sum := ds1 + ds2;
ds_mul := ds_sum * 3;
ds_res <- ds_mul[filter mod(var1, 2) = 0][calc var_sum := var1 + var2];
```

### Modèle RDF cible

```ttl
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX sdth: <http://rdf-vocabulary.ddialliance.org/sdth#>
# --- Program and steps
<http://example.com/program1> a sdth:Program ;
a prov:Agent ; # Agent? Or an activity
rdfs:label "My program 1"@en, "Mon programme 1"@fr ;
sdth:hasProgramStep <http://example.com/program1/program-step1>,
<http://example.com/program1/program-step2>,
<http://example.com/program1/program-step3> .
<http://example.com/program1/program-step1> a sdth:ProgramStep ;
rdfs:label "Program step 1"@en, "Étape 1"@fr ;
sdth:hasSourceCode "ds_sum := ds1 + ds2;" ;
sdth:consumesDataframe <http://example.com/dataset/ds1>,
<http://example.com/dataset/ds2> ;
sdth:producesDataframe <http://example.com/dataset/ds_sum> .
<http://example.com/program1/program-step2> a sdth:ProgramStep ;
rdfs:label "Program step 2"@en, "Étape 2"@fr ;
sdth:hasSourceCode "ds_mul := ds_sum * 3;" ;
sdth:consumesDataframe <http://example.com/dataset/ds_sum> ;
sdth:producesDataframe <http://example.com/dataset/ds_mul> .
<http://example.com/program1/program-step3> a sdth:ProgramStep ;
rdfs:label "Program step 3"@en, "Étape 3"@fr ;
sdth:hasSourceCode "ds_res <- ds_mul[filter mod(var1, 2) = 0][calc var_sum := var1 + var2];" ;
sdth:consumesDataframe <http://example.com/dataset/ds_mul> ;
sdth:producesDataframe <http://example.com/dataset/ds_res> ;
sdth:usesVariable <http://example.com/variable/var1>,
<http://example.com/variable/var2> ;
sdth:assignsVariable <http://example.com/variable/var_sum> .
# --- Variables
# i think here it's not instances but names we refer to...
<http://example.com/variable/id1> a sdth:VariableInstance ;
rdfs:label "id1" .
<http://example.com/variable/var1> a sdth:VariableInstance ;
rdfs:label "var1" .
<http://example.com/variable/var2> a sdth:VariableInstance ;
rdfs:label "var2" .
<http://example.com/variable/var_sum> a sdth:VariableInstance ;
rdfs:label "var_sum" .
# --- Data frames
<http://example.com/dataset/ds1> a sdth:DataframeInstance ;
rdfs:label "ds1" ;
sdth:hasName "ds1" ;
sdth:hasVariableInstance <http://example.com/variable/id1>,
<http://example.com/variable/var1>,
<http://example.com/variable/var2> .
<http://example.com/dataset/ds2> a sdth:DataframeInstance ;
rdfs:label "ds2" ;
sdth:hasName "ds2" ;
sdth:hasVariableInstance <http://example.com/variable/id1>,
<http://example.com/variable/var1>,
<http://example.com/variable/var2> .
<http://example.com/dataset/ds_sum> a sdth:DataframeInstance ;
rdfs:label "ds_sum" ;
sdth:hasName "ds_sum" ;
sdth:wasDerivedFrom <http://example.com/dataset/ds1>,
<http://example.com/dataset/ds2> ;
sdth:hasVariableInstance <http://example.com/variable/id1>,
<http://example.com/variable/var1>,
<http://example.com/variable/var2> .
<http://example.com/dataset/ds_mul> a sdth:DataframeInstance ;
rdfs:label "ds_mul" ;
sdth:hasName "ds_mul" ;
sdth:wasDerivedFrom <http://example.com/dataset/ds_sum> ;
sdth:hasVariableInstance <http://example.com/variable/id1>,
<http://example.com/variable/var1>,
<http://example.com/variable/var2> .
<http://example.com/dataset/ds_res> a sdth:DataframeInstance ;
rdfs:label "ds_res" ;
sdth:wasDerivedFrom <http://example.com/dataset/ds_mul> ;
sdth:hasVariableInstance <http://example.com/variable/id1>,
<http://example.com/variable/var1>,
<http://example.com/variable/var2>,
<http://example.com/variable/var_sum> .
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
slug: /trevas-vtl-21
title: Trevas - VTL 2.1
authors: [nicolas]
tags: [Trevas, 'VTL 2.1']
---

import useBaseUrl from '@docusaurus/useBaseUrl';
import Link from '@theme/Link';

Trevas 1.7.0 met à niveau VTL en version 2.1.

Cette version introduit deux nouveaux opérateurs :

- `random`
- `case`

`random` produit un nombre décimal entre 0 et 1.

`case` permet de définir des déclarations multiconditionnelles plus claires, par exemple:

`ds2 := ds1[ calc c := case when r < 0.2 then "Low" when r > 0.8 then "High" else "Medium" ]`

Les deux opérateurs sont déjà disponibles dans Trevas !

La nouvelle grammaire fournit également des opérateurs temporels et inclut des corrections, sans aucun changement radical par rapport à la version 2.0.

Voir la section <Link label={"coverage"} href={useBaseUrl('/user-guide/coverage')} /> pour plus de détails.
8 changes: 4 additions & 4 deletions docs/i18n/no/docusaurus-theme-classic/footer.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"copyright": {
"message": " ",
"description": "The footer copyright"
}
"copyright": {
"message": " ",
"description": "The footer copyright"
}
}
24 changes: 12 additions & 12 deletions docs/i18n/no/docusaurus-theme-classic/navbar.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
{
"item.label.Documentation": {
"message": "Dokumentasjon",
"description": "Navbar item with label Documentation"
},
"logo.alt": {
"message": "Trevas logo",
"description": "The alt text of navbar logo"
},
"item.label.Blog": {
"message": "Blog",
"description": "Navbar item with label Blog"
}
"item.label.Documentation": {
"message": "Dokumentasjon",
"description": "Navbar item with label Documentation"
},
"logo.alt": {
"message": "Trevas logo",
"description": "The alt text of navbar logo"
},
"item.label.Blog": {
"message": "Blog",
"description": "Navbar item with label Blog"
}
}
Loading

0 comments on commit 63ae0f0

Please sign in to comment.