Skip to content

Research - Format of messages from different messaging apps

TODO

  • To Sort
    • Why can't Nostr events be embedded in one another or link to one another
      • Nostr Events can be made of IPLD DAG-JSON
    • Nostr events can technically reply to more than one post at once

Schema Research

Example JSON Structure

Raw Memes

{
    "meme":{
        "title" : STRING,
        "type" : STRING,
        "text":{
          "body":"Hello World",
          "entity_mentions": null
        },
        "metadata" : {

        }
        ...
    }
}


{
    "hash" : MEME_CID,
    "signature_type" : STRING,
        // [Ed25519](../f4a2bcb6-51c5-42ba-9f95-b08a0e5a4730) 
        // [secp256k1](../1a437e92-1bcb-47d0-9475-5bd61d86f59b)
        // [TLS](../017fa480-0484-452c-9144-3b34b3ad6c37)
        // [PGP](../5df9b58c-313a-42ac-a127-c48bcb1d8bcb)
        // [Age software](../fb4bc5ab-ea80-4856-a0ba-f2396175a226)
    "signature" : STRING
}

{
    "hash" : MEME_CID,
    "tokens" [
        TRANSACTION_HASH_CID
    ],
    "signature" : STRING
}

Memelets / Attachments / Files


{
    "memelet" : [
        "linked_CIDs" : [CID, CID]
        "raw_meme" : CID
        ...
    },
        "reply_to" : []
    ]
}

Memelets should attach context to each linked_CID Isn't that the job of the content The content may be in some obscure type not easily understood Well we have the additional key value store that can link to the CID, for example we can have a file name and stuff Well we want to give context for why the CID is linked in the first place Well what do we link? The key value store is good enough, though it may be worth thinking of back links Well we want a graph, so the CID in the attachments should also be a key and have a list of attachments. We can use Cytoscapejs

Edges

Edges are just a memelet, possibly with a special content type

Collective Tagging / Ontology Management

Tags are CID's or Key's like a UUID from a IPNS data store that are supposed to be self referencing. They can be embedded within a memelet or memebase that gives them context but they are supposed to be self contained.

This requires an Ontology, so first you must create an ontology in order to create a tag. Then when you use the tag it has to reference where on the ontology it belong. What happens when a tag is deleted from an Ontology. Just give a big warning saying that is should be transformed or as as a DNS CNAME Record The Ontology should be seen as an append only list, of course with the capping idea. Oh I guess we can still do raw #hashtags by just providing a CID of the hashtag raw.

What about using an ontology to link stuff, for example taking a concept applying a wiki tag, then linking to actual wikis? Well that should be a memelet, or a series of memelets summarized at the end.

Shouldn't these ontologies be linked together just like memes can? Ontologies are just meme sets that are self referencing. Maybe we should use a different term if we.

Wait can't Ontologies just be really big memelets?

Well we have the constraint that memelet's can't hold more than 144 meme references. Similar to how npm packages can't hold more than 800 packages.

Oh so the way Tags are supposed to work is that they need to be recursive CID's. Which themselves can be a CID. So reference a meme embedded within a memelet embedded in a memelet. This is the same as referencing a book, then a page, then a paragraph.

So Ontologies are more a cultural thing than a hard coded concept?

Exactly, they don't need special types beyond the recursive CID and the culture of trying to maintain the core memelet as self referential.

So Ontologies need to be an IPNS link, then a CAR file?

How do you list contents of CAR file?

Well if you have an ontology it should be self contained right?

Yes but what about working with Python and stuff? DAG-JSON is much better used.......

We can produce a DAG-JSON file and it can have a hard coded key -CID paid for all its contents as a CAR file so it can more easily be downloaded.

So the story here is a user should have a series of ontologies available to them and web pages can contain their own ontologies. Ontologies can be thought of as javascript packages.

Raw Hashtag

{
    "reference_CID" : "",
    "raw_hashtag" : ""
}

Ontology, must be recursively hashed signature chain

Root of Ontology

{
    "tag": {
    },
    ""
}

Node of Ontology

Edge of Ontology


Tag from Ontology

{
    "": {
    }
}

Message Features

  • Text Meme
    • ID
    • Hash
    • Sender
    • Timestamp
    • Crypto Signature
    • Content Type
      • For Example, Text, Tiddlywiki, Markdown, HTML
    • Raw Content
    • Tag People and Entities
    • Tags in General
    • Key Value Metadata
      • Tiddlywiki Has This
  • Additional Meme Types
    • Attachments
      • UUID
      • Filename
      • File Extension
      • File Blob
    • URLs
      • URL
        • CID of URL
      • Image
      • Description
    • Tweets / Threads / Collections / Memelets
      • Replies
      • Just have a tag the references the previous post, hopefully two posts and does a synthases
    • Read Recites
      • Who cares right now
    • Slash Commands, gRPC