Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ def main(grid: Grid, context: Context) -> None:
pyproject_path="/absolute/path/to/your-app/pyproject.toml", # absolute!
app_name="My federated run",
author={"name": "Your Name", "orcid": "https://orcid.org/0000-0000-0000-0000"},
license="https://spdx.org/licenses/MIT.html",
license="http://spdx.org/licenses/MIT",
) as tracker:
result = strategy.start(
grid=grid,
Expand Down Expand Up @@ -164,7 +164,7 @@ as absolute paths.
| `pyproject_path` | recommended | Path to your app's `pyproject.toml`. **Use an absolute path.** Default: `"pyproject.toml"` |
| `app_name` | no | Human-readable name for the crate's root dataset |
| `author` | no | `"Name"` or `{"name": ..., "orcid": ..., "affiliation": ...}` — becomes a `Person` entity (ORCID as `@id`) |
| `license` | no | License for the crate root, e.g. an SPDX URL `"https://spdx.org/licenses/MIT.html"` |
| `license` | no | License for the crate root, e.g. an SPDX URL `"http://spdx.org/licenses/MIT"` |
| `agent` | no | Who executed the run, same format as `author`. Defaults to the author |

### Semantic metric identifiers
Expand Down Expand Up @@ -204,7 +204,7 @@ The crate's `@graph` contains, linked together:
| `./` | `Dataset` | Root: name, author, license, `conformsTo` the FL profile, `mentions` the run |
| `#fl-run` | `CreateAction` | The run: `agent`, `startTime`/`endTime`, `actionStatus`, instrument/object/result |
| `#flower` | `SoftwareApplication` | Flower with its installed version |
| `#framework-*` | `SoftwareApplication` | Every declared dependency (minus an infrastructure deny-list): `softwareRequirements` = the declared version spec, `softwareVersion` = the actually-installed version |
| `#framework-*` | `SoftwareApplication` | Every declared dependency (minus an infrastructure deny-list): `softwareRequirements` = the declared version spec, `version` = the actually-installed version |
| `#fl-strategy` | `SoftwareApplication` | The aggregation strategy with its hyperparameters as `PropertyValue`s |
| `#param-*` | `PropertyValue` | Run configuration inputs (the action's `object`) |
| `#metric-*` | `PropertyValue` | Final-round metrics, attached to the output model (with `propertyID` when mapped) |
Expand Down
70 changes: 48 additions & 22 deletions examples/quickstart-pytorch/ro-crate-metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,19 @@
{
"@id": "./",
"@type": "Dataset",
"author": {
"@id": "https://orcid.org/0009-0000-0000-0000"
},
"conformsTo": {
"@id": "https://esciencelab.org.uk/federated-learning-ro-crate-profile/federated-learning-profile.html"
},
"author": [
{
"@id": "https://orcid.org/0009-0000-0000-0000"
}
],
"conformsTo": [
{
"@id": "https://esciencelab.org.uk/federated-learning-ro-crate-profile/federated-learning-profile.html"
Comment thread
elichad marked this conversation as resolved.
},
{
"@id": "https://w3id.org/ro/wfrun/process/0.6"
}
],
"datePublished": "2026-06-10T10:25:49+00:00",
"description": "RO-Crate describing a federated learning run captured with flwrCrate.",
"hasPart": [
Expand All @@ -20,9 +27,11 @@
"@id": "metrics_log.json"
}
],
"license": {
"@id": "https://spdx.org/licenses/MIT.html"
},
"license": [
{
"@id": "http://spdx.org/licenses/MIT"
}
],
"mentions": [
{
"@id": "#fl-run"
Expand All @@ -42,13 +51,26 @@
},
{
"@id": "https://esciencelab.org.uk/federated-learning-ro-crate-profile/federated-learning-profile.html",
"@type": "CreativeWork",
"name": "Federated Learning RO-Crate profile v0.1"
"@type": [
"CreativeWork",
"Profile"
],
"name": "Federated Learning RO-Crate profile",
"version": "0.1"
},
{
"@id": "https://w3id.org/ro/wfrun/process/0.6",
"@type": [
"CreativeWork",
"Profile"
],
"name": "Process Run Crate",
"version": "0.6"
},
{
"@id": "https://spdx.org/licenses/MIT.html",
"@id": "http://spdx.org/licenses/MIT",
"@type": "CreativeWork",
"name": "https://spdx.org/licenses/MIT.html"
"name": "http://spdx.org/licenses/MIT"
},
{
"@id": "https://orcid.org/0009-0000-0000-0000",
Expand All @@ -59,24 +81,24 @@
"@id": "#flower",
"@type": "SoftwareApplication",
"name": "Flower",
"softwareVersion": "1.30.0",
"url": "https://flower.ai/"
"url": "https://flower.ai/",
"version": "1.30.0"
},
{
"@id": "#framework-torch",
"@type": "SoftwareApplication",
"name": "PyTorch",
"softwareRequirements": "==2.8.0",
"softwareVersion": "2.8.0",
"url": "https://pytorch.org/"
"url": "https://pytorch.org/",
"version": "2.8.0"
},
{
"@id": "#framework-torchvision",
"@type": "SoftwareApplication",
"name": "TorchVision",
"softwareRequirements": "==0.23.0",
"softwareVersion": "0.23.0",
"url": "https://pytorch.org/vision/"
"url": "https://pytorch.org/vision/",
"version": "0.23.0"
},
{
"@id": "#strategy-param-arrayrecord-key",
Expand Down Expand Up @@ -156,7 +178,9 @@
}
],
"description": "Federated aggregation strategy (flwr.serverapp.strategy.fedavg).",
"name": "FedAvg"
"name": "FedAvg",
"url": "https://flower.ai/",
"version": "1.30.0"
},
{
"@id": "final_model.pt",
Expand All @@ -179,11 +203,13 @@
}
],
"description": "Final global model produced by the federated learning run.",
"encodingFormat": "application/octet-stream",
"name": "Final aggregated model"
},
{
"@id": "metrics_log.json",
"@type": "File",
"contentSize": "1511",
"description": "Per-round training and evaluation metrics, plus federation details (participant/supernode counts and configuration) for the whole run.",
"encodingFormat": "application/json",
"name": "Per-round metrics and federation log"
Expand Down Expand Up @@ -265,7 +291,7 @@
"@id": "https://orcid.org/0009-0000-0000-0000"
},
"description": "Run using strategy FedAvg (flwr.serverapp.strategy.fedavg), 3 rounds.",
"endTime": "2026-06-10T10:25:49.281661+00:00",
"endTime": "2026-06-10T10:25:49+00:00",
"instrument": [
{
"@id": "#flower"
Expand Down Expand Up @@ -309,7 +335,7 @@
"@id": "metrics_log.json"
}
],
"startTime": "2026-06-10T10:25:00.091740+00:00"
"startTime": "2026-06-10T10:25:00+00:00"
}
]
}
2 changes: 1 addition & 1 deletion examples/quickstart-pytorch/server_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ def main(grid: Grid, context: Context) -> None:
pyproject_path="/absolute/path/to/quickstart-pytorch/pyproject.toml",
app_name="Quickstart PyTorch (demo)",
author={"name": "Ali Faizollah", "orcid": "https://orcid.org/0009-0000-0000-0000"},
license="https://spdx.org/licenses/MIT.html",
license="http://spdx.org/licenses/MIT",
) as tracker:
result = strategy.start(
grid=grid,
Expand Down
Loading
Loading