FEP-0837: Federated Marketplace

Updating the proposal: #318 - FEP-0837: Support donations - fediverse/fep - Codeberg.org

Following the discussion in another topic, arbitrary quantities has been allowed to support donations. I also added a sequence diagram (can be previewed at feps/0837/fep-0837.md at main - silverpill/feps - Codeberg.org).

1 Like

Update: #620 - FEP-0837: Update proposal - fediverse/fep - Codeberg.org

I added a context file for FEP-888d, now we can do this:

"@context": [
  "https://www.w3.org/ns/activitystreams",
  "https://w3id.org/fep/0837"
]

Plus some purely editorial changes.

2 Likes

@lynnfoster Is there a recommended property for indicating the “status” of an Agreement? Suppose it is completed in N stages:

  1. Agreement created
  2. Stage 1 completed.
  3. 

  4. Stage N completed.
  5. Exchange fully completed, agreement closed.

I’d like to send an activity every time a stage is completed. Preferably an Update:

{
  "type": "Update",
  "object": {
    "type": "Agreement",
    "stipulates": "..."
    "status": "Stage 2 completed"
  }
}

By the way: the link to rules definition is not working in https://www.valueflo.ws/specification/all_vf.html#Agreement

Thanks @silverpill !

There isn’t a status on Agreement. The thinking is you can derive the nuances of that by looking at the Commitments and fulfilling EconomicEvents, plus finished flags.

Are you thinking that will be useful while the Agreement is being negotiated, or while it is being fulfilled, or both?

And are you thinking free-form text?

Anyhow, if you would like a status, we can add it to the FEP, and see how it goes for people. Or even just add it to any app that wants it. We wouldn’t add it to VF without some actual use to test it out.

P.S. The rules link certainly is not working, thanks!

1 Like

I think it may be useful in both cases, but right now I am interested in providing progress indicators for the fulfillment phase.

I think it might also be a structured data, i.e. an object with multiple properties.

1 Like

Maybe it will be preview:

{
  "type": "Agreement",
  "preview": {
    "type": "Note",
    "name": "Stage 2 completed"
  }
}

Let’s think about what statuses might be useful.

What there is right now in VF:

  • While people are creating the Agreement, there isn’t really anything. In my experience, people create them basically all at once, so the Agreement and all Commitments. (like Alice transfer 1 used bike to Bob, Bob transfer $20 to Alice) You wouldn’t see just one of those commitments out there during this process (it’s a unit of work) - but there’s nothing saying it has to happen that way.
  • Once an EconomicEvent has been recorded as fulfilling a Commitment, then the Agreement is in progress.
  • When a Commitment is marked finished then nothing more is expected on that Commitment (although it doesn’t mean that the Commitment was completely fulfilled).
  • When all Commitments are marked finished then the Agreement is complete (again doesn’t mean everything was fulfilled as expected, but you can see what was fulfilled).

Sounds like you are thinking a user-defined status? I don’t have experience with preview but it sounds different. Would that persist as a status, or be more for an immediate display on a message? Or I could see where you might be going with something like a note update that you want to communicate, like “Almost ready to send, should be in the next couple days”. But maybe that is just the already proposed blend of social (AS) and economic (VF) communications?

Should we also think about more defined states that might be needed?

An exchange is rarely atomic, payments and deliveries often take time and may consist of multiple steps. These steps vary depending on the use case.

For now I just need a progress indication mechanism for my application (not for the FEP). preview is different but it’s close enough and I don’t want to introduce a new property.

1 Like

Ah you’re writing something, looking forward to that!

>An exchange is rarely atomic, payments and deliveries often take time and may consist of multiple steps. These steps vary depending on the use case.

Very true.

1 Like

Introducing minimumQuantity: #693 - FEP-0837: minimumQuantity - fediverse/fep - Codeberg.org

The “Implementations” section now includes Mitra (it’s not a new one, I implemented federated payments there at the same time this proposal was published).

2 Likes

One thing that I don’t like about FEP-0837 is how resources are described. Currently we describe them using the resourceConformsTo property, which value is an URI.

In the Proposal example, the primary intent is “bicycle” (https://www.wikidata.org/wiki/Q11442) and the reciprocal intent is “US dollar” (https://www.wikidata.org/wiki/Q4917).

I think implementers may want to point to an ActivityPub object, such as Image representing a bicycle, instead of a Wikidata page.

@lynnfoster can we use resourceConformsTo for this? Maybe there is a better property?

I agree. Here are some other options for Intent resource-related properties: name, image, imageList, note (sort of a duplicate of the as:content above but could have a detailed discription of the resource), resourceClassifiedAs. Offers/requests are the loosest and least understood as regards identifying resources. Some mutual aid kinds of apps just have a description and that’s it. I also do think an image would be good.

To at least partially clarify resourceConformsTo and resourceClassifiedAs, the first refers to the lowest level resource type needed to completely identify the resource in the use case, which might be more like “Schwinn bicycle model xyz123 blue” (or not). Using wikidata is misleading, which is our fault, as we use that as shorthand in VF examples. resourceConformsTo points to ResourceSpecification, which is actually defined within VF, so might not even be a uri. Wikidata could be more appropriate for resourceClassifiedAs, which for offers/requests could use an agreed upon taxonomy or set of categories for matching/search, or just tags, pretty loose depending on the app, and can be multiple. But still, it depends on the use case, and we don’t have a good understanding yet of the formality that people will want to coordinate their resource specifications (resourceConformsTo) across networks or the public, even just limited to marketplace type apps.

1 Like

i think i was describing my simple interpretation of my VF. (i didn’t know what VF was, and i’m still trying to catch up on the whole economicEvent of VF atm)

the comment i had was basically trying to keep a copy of the object of the proposal activity to the Night to the appropriate copy of THE.

this copy of the object is intended to be frozen in time at the creation of the proposal activity to avoid race condition.

anyhow
 let me read more about VF


1 Like