November 25, 2002
New Hyperobject

I released a new version of hyperobject that allows slot options to be specified with the slot definition rather than the class definition. An example demonstrates the difference in the schema:

Old Version
(defclass person ()
  ((last-name :type :string)
   (first-name :type :string)
   (dob :type integer)
   (addresses))
  (:metaclass hyperobject-class-old)
  (:ref-fields (last-name find-person-by-last-name))
  (:subobjects addresses)
  (:fields last-name first-name (dob format-date))

New Version

(defclass person ()
  ((last-name :type :string :reference find-person-by-last-name)
   (first-name :type :string)
   (dob :type integer :print-formatter format-date)
   (addresses :subobject t))
  (:metaclass hyperobject-class)
  (:print-slots last-name first-name dob))

This is much improved and will simply adding new object representation features.

Posted by kevin at 07:40 AM
November 06, 2002
Hyperobject

During the development of UMLisp, I developed a small object representation scheme designed to support Unified Medical Language System (UMLS) objects. The UMLS is densely relational. A single concept can have thousands of subobjects and related objects. Using an object representation library allowed a simple, unified way to represent relationships between the 30 distinct object types in UMLS.

For my UMLS browser, I needed to print objects in ASCII text, HTML, and XML formats with optional printing of field labels and hyperlinks to related objects. I've packaged this object representation library and have made it freely available. This library is available under a BSD license and can be downloaded from ftp://ftp.b9.com/hyperobject/".

Posted by kevin at 06:56 PM