Hello Again!! 🙂
wu-lee Is the only way to register profiles in bulk to write your own script using (for example) the curl command?
You can interact with the API however you like, see: https://app.swaggerhub.com/apis-docs/MurmurationsNetwork/IndexAPI/1.0
Could there be a more standard way added for this, like the option to post a list of URLs to the API?
Yes, that would certainly make life easier - if you wanted to help make this possible we would be eternally grateful 😉
Is there a mechanism for notification of changes to indexed profiles? This is so to allow aggregators to know when to re-crawl the index, or individual profiles, without which they would be forced to poll them at regular intervals.
Nodes return a last_validated timestamp you can use for this, as in this example:
{
"data": [
{
"profile_url": "https://node.site/optional-subdirectory/node-profile.json",
"last_validated": 1601979232403,
"geolocation": {
"lat": 51.509865,
"lon": -0.118092
},
"location": {
"locality": "London",
"region": "Greater London",
"country": "GB"
},
"linked_schemas": [
"example_schema-v1",
"another_example-v1"
]
}
]
}
see https://app.swaggerhub.com/apis-docs/MurmurationsNetwork/IndexAPI/1.0#/Aggregator%20Endpoints/get_nodes
NB: We're planning to update last_validated to last_updated because that seems to make more sense if the node profile has been deleted, which is information the index also stores.
In any case, how often do/should aggregators crawl the index? You might want to suggest some etiquette to follow.
As often as you like right now, but you will want to moderate the frequency with which you crawl the Index depending on how often you think people will be adding and editing node profiles for your schema.
How does the main aggregator know which fields to use for maps? For example, there may be multiple geolocation fields, or none.
There is no "main aggregator", there is the demo aggregator, but that's only a demo. Other people and sites will want to build their own aggregators which use the Murmurations protocol.
The demo (or any aggregator, really) can only plot points on a map if it has geolocation and 'something-to-plot' hence why the test_schema uses the fields name-v1 and geolcation-v1.
But here's where your question reveals some of the specific problems Murmurations tries to solve:
Any geolocation info in a node profile will be the same for every schema which the nodes profile validates against - so the node (person) only has to enter geolocation once, no matter how many schemas (which their profile validates against) require geolocation.
But also, geolocation-v1, the field which is specified in the Lib, has the context of "https://schema.org/GeoCoordinates" which tells you that this is "The geographic coordinates of a place or event." so it's clear what this is.
If you wanted to develop a schema which had 2 or more sets of geographic coordinates you could do so, by creating and naming, and adding context to the new field/s to specify their intended use, adding them to the library, and referring to them in your schema. Or, if you don't think the fields will be much use to other schemas you can also write new fields directly into your schema.
Hope this helps!