Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Things in IPLD on IPFS #777

Open
vorburger opened this issue Jul 21, 2024 · 2 comments
Open

Things in IPLD on IPFS #777

vorburger opened this issue Jul 21, 2024 · 2 comments
Assignees
Labels
format File Formats for I/O

Comments

@vorburger
Copy link
Member

vorburger commented Jul 21, 2024

It may be fun to explore storing Enola's Things on IPFS's IPLD.

This would first require being able to turn an IImmutableThing into the IPLD Data Model. That would enable to create predictable hashes of Things, to be generate CIDs. This will require work to turn any Datatype into one or several predictable 0/1 bits format/s (simplest could be e.g. just toString, and Maps as JSON with sorted keys?).

That would enable e.g. IPLD DAG JSON Codec as an Enola Format.

IPFS IPLD Schemas would need to be an Enola Schema.

Related libraries of possible interest:

@vorburger vorburger added the format File Formats for I/O label Jul 21, 2024
@vorburger vorburger self-assigned this Jul 21, 2024
@vorburger
Copy link
Member Author

vorburger commented Jan 2, 2025

https://ipld.io/tools

https://github.com/ipld/cid-cbor/ ?

https://openengiadina.codeberg.page/rdf-cbor/ but that's not what one would want... It could be a basis, but we would want a utility which transforms IRIs into, either:

  • Special cases such as urn:uuid (et la.) to 37 etc.
  • Else, if Thing exists (with properties), CID of it
  • Otherwise, to CBOR tagged URI (32) or IRI (266)

... IFF such are valid in IPLD (TBC), else string if not CID.

You would want to canonicalize RDF; we may (at least initially) not need a fully "standards compliant" implementation, just what we already have in Enola.

The "IPLD blocks" must include the IRI (as the hash is one way). We COULD postfix IRI with @multibase CID, to "version" them? And have sameAs with & without version. This would help to distinguish different Thing version itérations.

Next Steps:

  1. Play "hands on" with IPLD.. create, link, read (on local IPFS Node)
  2. Implement Enola Thing CBOR format support)
  3. Implement IPLD support

@vorburger
Copy link
Member Author

https://openengiadina.codeberg.page/rdf-cbor/ but that's not what one would want... It could be a basis, but we would want (...)

https://codeberg.org/openEngiadina/rdf-cbor/issues/3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
format File Formats for I/O
Projects
None yet
Development

No branches or pull requests

1 participant