Now, thinking through my solidarity_economy_initiatives-v0.1.0
schema from this point of view, it seems most of it is already replicating the murmurations_map
fields, sometimes with the same field names and sometimes with different field names.
solidarity_economy_initiatives-v0.10
fields are:
"ld_uri": { "$ref": "../fields/url-v1.json" }, /** required **/
"name": { "$ref": "../fields/name-v1.json" }, /** required **/
"description": { "$ref": "../fields/description-v1.json" },
"website": { "$ref": "../fields/url-v1.json" },
"location": { "$ref": "../fields/location-v1.json" },
"geolocation": { "$ref": "../fields/geolocation-v1.json" },
"org_type_tags": { "$ref": "../fields/org_type_tags-v1.json" }
And murmurations_map-v1
fields are:
"linked_schemas": { "$ref": "../fields/linked_schemas-v1.json" }, /** required **/
"name": { "$ref": "../fields/name-v1.json" }, /** required **/
"urls": { "$ref": "../fields/urls-v1.json" }, /** required **/
"description": { "$ref": "../fields/description-v1.json" },
"mission": { "$ref": "../fields/mission-v1.json" },
"location": { "$ref": "../fields/location-v1.json" },
"geolocation": { "$ref": "../fields/geolocation-v1.json" },
"image": { "$ref": "../fields/image-v1.json" },
"rss": { "$ref": "../fields/rss-v1.json" },
"org_type_tags": { "$ref": "../fields/org_type_tags-v1.json" }
So if a profile wanted to be on the SEA map and the Murmurations map, it would have to name both in linked_schemas
(if only because of the latter schema's requirement), but get by with just one name
, uris
and geolocation
field.
However, if I wanted to say what the website was on the SEA map, I would also need the website
field, even if this duplicates the urls
field.
The org_type_tags
, location
and description
fields are optional, and recognised by both map aggregators.
The solidarity_economy_initiatives-v0.10
schema's ld_uri
would not be interpreted as a website URL by either, despite the field definition being url-v1
, because the name is distinct.
I wonder if it's sensible to redefining any of the fields in solidarity_economy_initiatives-v0.10
which are duplicates of those in murmurations_map-v1
? Specifically: name
, description
, location
, geolocation
, and org_type_tags
. I'm thinking not: I'd be better adding the murmurations_map-v1
as a linked schema in those profiles which need it, only define new and distinct fields in solidarity_economy_initiatives-v0.10
, and only do that when there are no existing schemas to sensibly link to provide them.
In this case, that seems to slim my schema down to just the ld_uri
field and a linked_schema
field. The other fields can still be present in the profiles as before, so long as the murmurations_map-v1
schema is listed in linked_schema
.
Possible snags with this could be:
- I want there to be just one URL, not many, and I want it to be mandatory.
- My
name
, description
and location
fields are (perhaps!) in Gaelic
description
contains HTML markup with some unusual unicode glyphs; and
- The
org_type_tags
are my own categories, using alphanumeric identifiers like "A20"
(These examples are partly based on reality, and partly made up to make a point. In fact I am currently using English terms because the context seems to want it. But some descriptions are not English, some include HTML, and category identifiers are more machine-friendly and canonical, because this avoids language and spelling variance.)
Mixing our profile data with existing profile data could make for a dissonant experience for users of the Murmurations Map Aggregator, because they are built with different assumptions about these fields. Therefore, perhaps it is sensible to define new fields for these in solidarity_economy_initiatives-v0.10
, even if they do duplicate information in the murmurations_map-v1
. I could then add logic to translate terms from Gaelic/identifiers to English (if that is expected) for the Murmurations Map, and to duplicate the website
field into the urls
field, plus any other mapping required.