Sina provides an easy way to collect data directly within codes and output them to a common file format. This is accomplished in an object oriented manner through the following classes:
- Curve: represents a 1D curve
- CurveSet: represents an entry in a record's "curve_set"
- DataHolder: a basic container for certain types of information
- Datum: tracks the value and (optionally) tags and/or units of a value associated with a Record
- Document: represents the top-lvevl object of a JSON file conforming to the Sina schema
- File: tracks the location (URI) and mimetype of a file on the file system, plus any tags
- Record: entry in a Document's Record list
- Relationship: represents correlations between records; consists of three parts: a subject, an object, and a predicate
- Run: a subtype of Record corresponding to a single run of an application, as specified in the Sina schema