Jump to content

UseCases/Software

From Federated Objects
Revision as of 13:17, 14 July 2026 by Fthierygeo (talk | contribs) (Use Case: Software)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Use Case: Software (CodeMeta)

Two research-software items — SPARQLing Unicorn QGIS Plugin (Q6) and Academic Meta Tool (Q7) — modelled with a CodeMeta ↔ Wikidata crosswalk.

What we mean by federation here

This is the Task Force's "reference source / reference ontology" case: reuse Wikidata's ontology for everything generic, and keep your own vocabulary only where the domain needs it.

  • Reuse Wikidata (8 fields): instance of, developer, programmed in, license, version, DOI, source repository, website — mapped to wd:P31 / P178 / P277 / P275 / P348 / P356 / P1324 / P856.
  • Own properties (5 fields with no Wikidata equivalent): development status, continuous integration, README, build instructions, code sample type — taken from CodeMeta.

Why a Wikibase ecosystem, not Wikidata alone

  • CodeMeta captures software metadata that Wikidata has no property for. In the Task Force's own words this is a "driver for a split": extra data on an item where no relevant property is in Wikidata.
  • Instead of forking silently, we create local properties and record their Wikidata equivalent (equivalent Wikidata property = P178). The local vocabulary stays aligned with Wikidata and does not drift.
  • Result: Wikidata's shared ontology plus your domain extension, in one queryable graph.

How it works technically

  • Predicates are local properties → the model works on any Wikibase, even without the Federated Properties feature.
  • A switch (PROPERTY_MODE) writes each mapped fact local, federated (wd:P…), or both side by side — the direct "with vs. without federation" comparison, on the same item.
  • Item values reference Wikidata concepts (value federation): developer → wd:Q…, programmed in → wd:Q28865 (Python).

What to watch out for

  • Prevent drift / splits. Always map a local property to its Wikidata equivalent (we use a string property "equivalent Wikidata property"). This is the Task Force's anti-drift point made concrete.
  • Label conflicts. A local instance of collides with the built-in P1 → reuse the existing property, do not create a duplicate.
  • url datatype is blocked → repository / website are stored as string (not clickable until url is unblocked).
  • Identifier discipline. Full URIs for Wikidata values; local Q/P numbers stay local (no collision with Wikidata).

TODOs

  • [Flo] Replace illustrative CodeMeta values (development status, README, CI) with real ones.
  • [Flo/devs] Unblock url so repository / website / CI become proper links and IRIs.
  • [Flo] Decide the policy per instance: local-only vs. local+federated.
  • [Flo] Extend the crosswalk to more CodeMeta fields as needed.

What would matter most for federation

  • An official local↔Wikidata mapping property (equivalent property) that the software honours in queries and RDF would make this pattern first-class.
  • Reuse of the Wikidata ontology with short lag and completion, to keep instances aligned and prevent drift.

See also: UseCases/Ogham — the "statements on entities from another Wikibase" case.