PolyglotSSSOM 0.1.0
dotnet add package PolyglotSSSOM --version 0.1.0
NuGet\Install-Package PolyglotSSSOM -Version 0.1.0
<PackageReference Include="PolyglotSSSOM" Version="0.1.0" />
<PackageVersion Include="PolyglotSSSOM" Version="0.1.0" />
<PackageReference Include="PolyglotSSSOM" />
paket add PolyglotSSSOM --version 0.1.0
#r "nuget: PolyglotSSSOM, 0.1.0"
#:package PolyglotSSSOM@0.1.0
#addin nuget:?package=PolyglotSSSOM&version=0.1.0
#tool nuget:?package=PolyglotSSSOM&version=0.1.0
PolyglotSSSOM
PolyglotSSSOM is a cross-runtime YAML-metadata-plus-TSV implementation of the Simple Standard for Sharing Ontological Mappings (SSSOM). It is written once in F# and built for .NET, JavaScript, and Python.
The current 0.1.0-alpha.1 line is an implementation prerelease. Its portable
domain model and strict, version-aware TSV/YAML codec are available across all
three target runtimes.
The exact stable-v1.0 and pinned-v1.1 specification sources are documented in
spec/UPSTREAM.md.
Requirements
- .NET SDK 10.0.300 feature band
- Node.js 22 or newer
- Python 3.12 or newer
- uv
The shipped NuGet library targets netstandard2.0; .NET 10 is required only by
the Fable build toolchain.
Build and test
On Windows use build.cmd; on macOS/Linux use ./build.sh.
build.cmd run the shared suite on .NET, Node, and Python
build.cmd BuildAll build/transpile all three libraries
build.cmd Pack create NuGet, npm, and wheel artifacts
build.cmd TestPackages pack and run isolated package-consumer smokes
Generated output is written below artifacts/ and is never committed.
Package identities
- NuGet:
PolyglotSSSOM - npm:
@nfdi4plants/polyglot-sssom - PyPI:
polyglot-sssom(import polyglot_sssom)
All three packages expose the portable mapping-set, mapping, lexical-value,
extension, descriptor, CURIE, diagnostic, and SssomCodec APIs. Optional
scalars remain absent and multivalued slots use empty arrays for zero values.
The codec reads embedded or external metadata, validates v1.0 and the pinned
v1.1 draft, and writes deterministic canonical embedded SSSOM/TSV.
Authoring mappings
The lexical factories cover the common entity-to-entity path without exposing
the complete positional constructors. AddMapping preserves an optional
record ID for general v1.0/v1.1 authoring. AddMappingWithRecordId assigns a
caller-owned native v1.1 ID atomically; PolyglotSSSOM never invents one.
F#:
let document =
SssomDocument.Create(
"https://example.org/mappings",
"https://example.org/license"
)
document.Metadata.EnsurePrefix("ex", "https://example.org/")
document.Metadata.EnsurePrefix("uuid", "urn:uuid:")
let mapping =
Mapping.CreateEntityMapping(
"ex:source",
"skos:exactMatch",
"ex:target",
"semapv:ManualMappingCuration"
)
document.AddMappingWithRecordId("urn:uuid:example", mapping)
let content = SssomCodec.EncodeCanonical document
JavaScript:
const document = SssomDocument.Create(
"https://example.org/mappings",
"https://example.org/license"
);
document.Metadata.EnsurePrefix("ex", "https://example.org/");
document.Metadata.EnsurePrefix("uuid", "urn:uuid:");
const mapping = Mapping.CreateEntityMapping(
"ex:source",
"skos:exactMatch",
"ex:target",
"semapv:ManualMappingCuration"
);
document.AddMappingWithRecordId("urn:uuid:example", mapping);
const content = SssomCodec.EncodeCanonical(document);
Python:
document = sssom.SssomDocument.Create(
"https://example.org/mappings",
"https://example.org/license",
)
document.Metadata.EnsurePrefix("ex", "https://example.org/")
document.Metadata.EnsurePrefix("uuid", "urn:uuid:")
mapping = sssom.Mapping.CreateEntityMapping(
"ex:source",
"skos:exactMatch",
"ex:target",
"semapv:ManualMappingCuration",
)
document.AddMappingWithRecordId("urn:uuid:example", mapping)
content = sssom.SssomCodec.EncodeCanonical(document)
Call Clone() before editing when the imported document must remain available
unchanged for its original round trip. Find, replace, and remove operations use
the stable record_id; full document correctness remains explicit through
SssomCodec.Validate or canonical encoding.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Fable.Core (>= 5.2.0)
- FSharp.Core (>= 10.1.302)
- YAMLicious (>= 1.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on PolyglotSSSOM:
| Package | Downloads |
|---|---|
|
BioFSharp.INSDC.ArcIR
INSDC-specific F1 adapter that maps BioProject, Study, Sample, Experiment, Run, Analysis, Submission, and Receipt records into the target-neutral BioFSharp.ArcIR graph. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0 | 135 | 8/28/2026 |
| 0.1.0-alpha.1 | 74 | 8/26/2026 |
See RELEASE_NOTES.md in the package for the complete release notes.