Năm 2018, tôi đã xây dựng một mô hình mạng lưới để xác định nên đầu tư thời gian của mình vào đâu trong cộng đồng công nghệ Iowa. Mô hình này đã phát triển lên khoảng 10.000 yếu tố – bao gồm các công ty, tổ chức, cá nhân, thành phố và mức độ kết nối. Tôi đã sử dụng chỉ số trung tâm eigenvector để xác định các nút mà tôi chưa kết nối nhưng có độ kết nối cao với các phần khác của mạng lưới. Điều này đã ảnh hưởng đến các quyết định thực tế: tôi gia nhập ban điều hành TAI, khám phá ra các cộng đồng mà tôi không hề biết đến, và so sánh sự khác biệt về mật độ giữa Des Moines và các hệ sinh thái ven biển.

Mô hình đó đã để lại ấn tượng sâu sắc trong tôi. Trong những năm làm việc tại Brale, các đồ thị quan hệ điều hướng lực (force-directed relationship graphs) liên tục xuất hiện – lập bản đồ mối liên hệ giữa các nhà phát hành, tài sản và các kênh phân phối, kết nối các nhà điều hành chương trình với các blockchain mà họ vận hành. Mỗi lần như vậy, ai đó lại tái tạo ngôn ngữ trực quan. Màu sắc này có ý nghĩa gì? Đường kẻ dày tượng trưng cho điều gì? Hình dạng nào phân biệt một công ty với một cá nhân hay một sự kiện? Những quyết định này được đưa ra mới mẻ trong mỗi dự án. Người tiếp theo mở biểu đồ phải phân tích ngược lại toàn bộ trước khi có thể hiểu nội dung.

Năm ngoái, CSF (Commons Stablecoin Format) đã tiêu chuẩn hóa cách chúng ta vẽ các luồng vốn. Chỉ cần dán thông số kỹ thuật vào một mô hình ngôn ngữ lớn (LLM), yêu cầu một luồng vốn theo định dạng "stablecoin", và nó sẽ tuân thủ định dạng đó mọi lúc. Tôi muốn điều tương tự cho các đồ thị quan hệ. Vì vậy, tôi đã viết Graphing Standard Format – GSF – một bộ quy tắc nhỏ định nghĩa cách loại dữ liệu quyết định hình dạng, cách trọng số quyết định kích thước, và cách mức độ mật độ kiểm soát thông tin được tiết lộ.

Đây là mạng lưới của tôi, được hiển thị theo định dạng GSF:

mật độ
GSF v0.5.2

Hình tròn là con người. Hình chữ nhật bo tròn là tổ chức. Hình tam giác là sự kiện – khác biệt với các công ty tổ chức chúng. Hình thoi là địa điểm. Hình lục giác là khái niệm. Hình viên thuốc là hệ thống. Nhấp vào bất kỳ nút nào để xem thẻ hồ sơ của nó. Chuyển sang chế độ Trung bình để xem màu sắc. Bạn không cần phải quyết định bất kỳ điều gì trong số đó. GSF đã làm điều đó.

Dưới đây là video hướng dẫn cách sử dụng GSF lần đầu tiên. Nó hoạt động khá tốt!

GSF và CSF

CSF GSF
Kết quả Sơ đồ trình tự Mermaid Biểu đồ quan hệ D3
Câu trả lời Giá trị chuyển từ A sang B như thế nào, theo thứ tự Những gì tồn tại và cách chúng được kết nối
Bản chất Theo thời gian, theo thứ tự các bước Cấu trúc, không theo thời gian
Các cấp độ Nhẹ / Trung bình / Nặng Nhẹ / Trung bình / Nặng

Cả hai đều triển khai các nguyên tố lớp giá trị giống nhau: ValueType, TransferType, Exchange. Một điểm mất mát khi chuyển từ CSF sang GSF là thứ tự chuỗi, vì đồ thị là phi thời gian.

Tiêu chuẩn

GSF tóm tắt các quy tắc cho việc trực quan hóa – chứ không phải chính bản thân việc trực quan hóa. Khi được sử dụng, điều này có nghĩa là bạn xác định những gì cần hiển thị và định dạng sẽ xử lý cách hiển thị nó. Cơ sở tham chiếu vẫn nhất quán giữa các dự án.

Ba điều:

  • GSF là bộ quy tắc. Không bao giờ được trực quan hóa.
  • Một tập dữ liệu là một {view, nodes, links} một thực thể tuân thủ GSF. Đây là đối tượng được hiển thị.
  • Một trình hiển thị sử dụng các quy tắc cùng với bộ dữ liệu để vẽ hình ảnh.

Bốn nguyên tố cơ bản. Tất cả những gì trình hiển thị cần:

  1. Mối quan hệ – một liên kết giữa chính xác hai thực thể. Các liên kết tạo nên đồ thị.
  2. Loại – bộ phân loại định tính. Quyết định hình dạng và màu sắc.
  3. Biến – bộ chứa chi tiết. Chứa mọi thứ mà loại không chứa.
  4. Trọng số – đại lượng định lượng. Quyết định kích thước và chiều rộng.

Quy tắc mã hóa: giá trị so với các giá trị. Giá trị định lượng duy nhất (một con số, được truyền trong weight) quyết định kích thước và chiều rộng. Các giá trị định tính (danh mục, trạng thái, nhãn) quyết định hình dạng, màu sắc, cách nhóm và nội dung hiển thị khi di chuột qua.

Một lựa chọn thiết kế đáng chú ý: các loại mối quan hệ là các chuỗi mở. Không có danh sách đóng. Một tập dữ liệu định nghĩa bất kỳ loại nào mà nó cần – biểu đồ của tôi ở trên sử dụng founder, cofounder, spinout, và operates, không có loại nào trong số đó có trong thông số kỹ thuật. Nó hiển thị tốt. GSF sửa lỗi mã hóa (cách các loại trở thành hình dạng và màu sắc), chứ không phải từ vựng (những loại nào bạn được phép sử dụng).

Mật độ

Cùng một thang đo như CSF. Mức độ chi tiết và màu sắc mà trình hiển thị thể hiện:

  • Nhẹ – đen trắng. Hình dạng biểu thị loại, kiểu đường biểu thị lớp mối quan hệ (đường liền = giá trị, đường gạch ngang = dữ liệu, đường chấm = dẫn xuất), độ dày biểu thị độ lớn, đầu mũi tên biểu thị hướng. Không có màu. Sẵn sàng in.
  • Trung bình – thêm màu sắc dưới dạng lớp phủ, chú thích và các biến khi di chuột qua.
  • Đậm – bản ghi đầy đủ. Tất cả các biến, điểm cuối chuyển đổi, khả năng mở rộng.

Một quy tắc: Chế độ Nhẹ phải đọc được ở chế độ đen trắng. Màu sắc không bao giờ là tín hiệu duy nhất.

Định dạng

Một liên kết cần source, destination, và type. Mọi thứ khác đều là tùy chọn:

{
  "format": "gsf",
  "version": "0.5.2",
  "renderer": "d3-force",
  "view": { "level": "light", "hops": 1, "focus": ["Person A"] },
  "links": [
    { "source": "Person A", "destination": "Person B", "type": "message" }
  ]
}

Đối với đồ thị lớp giá trị, các đối tượng điểm cuối mang value_typetransfer_type ở mỗi bên. Khi chúng khác nhau, điều này báo hiệu một sự trao đổi – và via đặt tên cho bên trao đổi:

{
  "format": "gsf",
  "version": "0.5.2",
  "renderer": "d3-force",
  "view": { "level": "heavy", "hops": 1, "focus": ["Brale"] },
  "nodes": [
    { "id": "Sender", "type": "org" },
    { "id": "Brale", "type": "org", "variables": { "sub_type": "exchange" } },
    { "id": "Recipient Wallet", "type": "system", "variables": { "sub_type": "wallet" } }
  ],
  "links": [
    {
      "source": { "id": "Sender", "value_type": "USD", "transfer_type": "wire" },
      "destination": { "id": "Recipient Wallet", "value_type": "USDC", "transfer_type": "solana" },
      "type": "transfers_via",
      "via": "Brale",
      "weight": 1000,
      "variables": { "exchange": "USD -> USDC", "rate": 1.0 }
    }
  ]
}

Cách sử dụng

Dán tệp gsf-0.5.2.json vào một mô hình ngôn ngữ lớn (LLM) và yêu cầu nó chuyển đổi tài liệu nguồn thành bộ dữ liệu GSF. Nó luôn tuân theo định dạng này – giống như CSF. llm_instructions khối trong thông số kỹ thuật được thiết kế để máy móc có thể xử lý trực tiếp. Kiểm tra kho lưu trữ GSF để lấy phiên bản mới nhất.

Tiêu chuẩn này là mã nguồn mở: github.com/benmilne-com/standards/gsf. Hãy sao chép, sử dụng và đóng góp.

Cấu trúc là miễn phí.