UseCases/Software: Difference between revisions
Appearance
Fthierygeo (talk | contribs) Created page with "= Use Case: Software =" |
Fthierygeo (talk | contribs) |
||
| Line 1: | Line 1: | ||
= Use Case: Software = | = Use Case: Software (CodeMeta) = | ||
Two research-software items — '''SPARQLing Unicorn QGIS Plugin''' ([[Item:Q6|Q6]]) and '''Academic Meta Tool''' ([[Item:Q7|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''' (<code>equivalent Wikidata property = P178</code>). 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 (<code>PROPERTY_MODE</code>) 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.'' | |||
Latest revision as of 13:17, 14 July 2026
Use Case: Software (CodeMeta)
[edit | edit source]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
[edit | edit source]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
[edit | edit source]- 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
[edit | edit source]- 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
[edit | edit source]- 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
[edit | edit source]- [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
[edit | edit source]- 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.