Hệ thống quản trị tri thức (hypertext)

KMS  viết tắt của Knowledge Management System- hệ thống quản trị tri thức, là một hệ thống siêu truyền thông (hypermedia) thế hệ thứ 2, hệ thống nguyên bản  được tạo ra như là sự kế thừa cho giai đoạn đầu của hệ thống ZOG (một trong các hệ thống siêu văn bản sớm được phát triển tại đại học Carnegie Mellon trong suốt thập niên 70). Hai trong số các nhà nghiên cứu chính của ZOG, Donald McCracken và Rob Akscyn đã thành lập các hệ thống tri thức vào năm 1981 và bắt đầu nghiên cứu chuyên sâu về KMS như một sản phẩm phụ của ZOG, tại viện khoa học máy tính Đại học Carnegie Mellon
Mục đích của KMS là để cho nhiều người dùng hợp tác trong việc tạo và chia sẻ thông tin trong phạm vi lớn, chia sẻ các siêu văn bản, và ngay từ đầu, KMS đã được thiết kế như một hệ thống đa người dùng thật sự.
Là một không gian hệ thống siêu truyền thông, KMS được dự định để đại diện cho tất cả các dạng của 'kiến thức hiện hữu' minh bạch như các bài thuyết trình, tài liệu, cơ sở dữ liệu, và chương trình phần mềm, cũng như các dạng thông thường của hình thức liên lạc điện tử (thư điện tử, bản tin công cộng, blog).
Phần tử trung tâm trong mô hình dữ liệu KMS là các trang có kích thước màn hình (được gọi là "khung") được kết nối với nhau bởi các đường link. Người dùng được cung cấp các tùy chọn để có thể (bất kỳ lúc nào) chuyển đổi giữa chế độ xem của một khung hình đơn (phù hợp cho các sơ đồ hướng ngang, kích thước lớn) hoặc chế độ xem hai trang xếp kề song song (thích hợp cho hai trang có kích thước dọc).
Các khung luôn cố định-kích thước, có nghĩa là sự cuộn trang là không cần thiết. Mô hình khung là không gian thay vì dựa trên ký tự, do đó văn bản, đồ họa và hình ảnh luôn có thể được đặt ở bất kỳ đâu trong khung, thậm chí chồng chéo nhau. Nói cách khác, không gian trống trong khung thực sự biểu thị không gian, không phải (như trong nhiều trình soạn thảo văn bản) chỉ là thiếu nội dung. Vì các nhà thiết kế cảm thấy rằng cuộn trang là không tối ưu nên các khung được cố định trong kích thước thanh cuộn trang được chọn thay vì các tập hợp lớn hơn như các tài liệu và chương trình được cấu trúc như các cấu trúc phân cấp (hoặc thường là các mạng lưới) của các nút hypermedia. Tính linh hoạt này có thể giúp tạo một tài liệu, tìm kiếm, chạy các chương trình bắt đầu từ một cây chứa các khung, các cây này có thể bắt đầu ở bất cứ khung nào.
Trong KMS, các liên kết là một chiều và được nhúng trong các khung. Chúng có thể đi từ bất kỳ mục văn bản, điểm, thực thể đồ hoạ hoặc hình ảnh nào trong khung nguồn đến bất kỳ khung đích nào. Ngoài ra, để liên kết, các mục khung cũng có thể có các hành động, cho phép sử dụng để kích hoạt các chương trình mở rộng chức năng nội tại của hệ thống.
Sự khác biệt chính giữa KMS và  thực tiễn web hiện tại là sự phân biệt giữa các mục thông thường và "Mục chú thích" (các mục văn bản được bắt đầu bằng ký tự "@"). Các mục chú thích có nghĩa là ngoại vi hoặc siêu cấp, so với phần còn lại của nội dung, làm cho nó dễ dàng (và rõ ràng) như nội dung thông thường so với chỉ ghi chú cho chính mình hoặc nhận xét của người khác (bao gồm các chương trình). Các mục chú thích có liên kết do đó có ý nghĩa là tham chiếu chéo tùy ý và do đó không được nhìn thấy bởi người dùng, và đặc biệt là các tác nhân, như là một phần của cấu trúc phân cấp của siêu văn bản.
Một sự khác biệt lớn giữa KMS và thực tiễn web hiện tại là loại bỏ một chế độ soạn thảo riêng biệt. Chức năng điều hướng và chỉnh sửa luôn có sẵn trực tiếp và người dùng có thể chỉnh sửa bất kỳ khung nào mà họ có quyền. Các tác giả thậm chí có thể tự bảo vệ các khung không bị chỉnh sửa vô ý. Các phiên bản cũ hơn của khung được lưu trong danh sách liên kết 'comet-like' để người ta có thể xem lịch sử (và thời gian đã bỏ ra) cho bất kỳ khung riêng lẻ nào (và thường hơn là các khung trong bất kỳ cây nào).
Cuối cùng, KMS chứa một ngôn ngữ lập trình kịch bản (tương tự như JavaScript) cho phép các nhà phát triển và người dùng mở rộng hệ thống vượt ra ngoài chức năng hiện tại của nó. Để phù hợp với triết lý của KMS về 'Mọi thứ trong một khung' (ví dụ, con trỏ, khuôn mẫu, v.v., được biểu diễn dưới dạng khung) cho nên các chương trình cũng được thể hiện dưới dạng thứ bậc của các khung; KMS tự động đọc và giải thích chỉ những khung chương trình cần thiết trong thời gian chạy (runtime).
KMS ban đầu được viết bằngPascal và ngôn ngữ lập trình C, có khoảng 300.000 dòng lệnh trong một kích thước. Một bản cập nhật dựa trên Java hiện đại hơn cho KMS (được gọi là "Expeditee") đang được phát triển tại Khoa Khoa học Máy tính của Đại học Waikato ở New Zealand, bởi Rob Akscyn, một trong những nhà phát triển ban đầu của KMS.