Skip to content

The brew Common Vocabulary

tl;dr – The Common Vocabulary represents brew's data types and corresponds to the icons represented by inputs and outputs of functionals. This is needed in order to ensure that functionals speak the same language.

What is the Common Vocabulary?

In short, the Common Vocabulary (CV) allows brew functionals to use an agreed upon format for various data types to ensure they can communicate with one another.

The brew Common Vocabulary is comprised of a set of data types that define the syntax and semantics of the data that moves through a brew workflow during its execution. Functional developers define the inputs and outputs to and from their functionals in terms of this vocabulary. The Common Vocabulary standardizes data representation reducing the complexity of connecting disparate data sources and types together in one environment.

When building functionals, functional developers abstract the normalization within the functional to ensure these data standards are met. Thus, the end user does not have to deal with the minute details of normalizing things such as timestamps, coordinates, csv vs xls, etc.. This allows an analyst to build coherent workflows very quickly while at the same time allowing developers to integrate new functionals into a common environment where they are guaranteed to work with all of the existing capabilities.

The Common Vocabulary is the foundation of the brew self-service data analytics platform, making interoperability possible while maintaining ease of use for end users.

The Common Vocabulary is represented by a functional's input and output icon(s).

Technical Information

The Common Vocabulary Data Types are the supported data types used in brew Functionals. CV Data Types are a class hierarchy of concrete classes with CV_Super as the abstract super class. The concrete classes are primitive, temporal, Well-Known Text (WKT) or referential data types. The primitive, temporal and WKT classes are direct objects that contain their value (e.g., CV_Integer contains a Long and CV_LineString contains a string representation of a line). The referential classes contains a pointer to the value (e.g., CV_Table contains a Universal Resource Indicator (URI) that points to the table persisted in a database).

Download Table

CV Type Image Description Example String Representation
CV_Any Can be used when any type is able to be connected N/A
CV_Boolean CV_Boolean represents a Boolean value. The String representation is the word true or false TRUE
CV_Box CV_Box is a bounding box representing a rectangular region in order longitude_west latitude_south, longitude_east latitude_north. Note: CV_Box is not a WKT geometry. In GUI map selection to place a box, click inital corner point and drag, release click to place. BOX(-76.98 24, -72.76 26.8)
CV_Circle CV_Circle defines a circle using a center point and a radius distance in meters. The order of the values is longitude (decimal degrees), latitude, and radius in meters. Note: CV_Circle is not a WKT geometry. In GUI map selection to place a circle, click center point and drag, release click to place. CIRCLE(-45.703125 45.251688,1308.09)
CV_Decimal CV_Decimal represents a Rational number. It has the range of a double-precision 64-bit IEEE 754 floating point number. 10.3
CV_Duration CV_Duration represents a span of time. The string representation is ISO-8601 as implemented by JDK 1.8 java.time.Duration (i.e. no year or month units and seconds is the only unit allowed to contain a fractional value). PT30M / -PT30M
CV_Ellipse CV_Ellipse defines an ellipse using a center point latitude (decimal degrees), semi-major axis, semi-minor axis, and orientation angle. Only 2-dimensions is supported. Note: CV_Ellipse is not a WKT geometry. In GUI map selection to place an ellipse, click center point and drag, release click to place. ELLIPSE(76.98 24 100 56 90)
CV_GeometryCollection CV_GeometryCollection represents a WKT Geometry Collection. A Geometry Collection holds an arbitrary set of other WKT geometry types. This implementation only supports the other WKT types defined in the brew common vocabulary set (e.g. cv_polygon, point, etc.). GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))
CV_Integer CV_Integer represents an Integer number 123456
CV_LineString CV_LineString geometry represents a WKT LineString. In GUI map selection to place a LineString, click initial point and click additional points to connect them, click twice on final point to place the LineString. LINESTRING (30 10, 10 30, 40 40)
CV_MultiLineString CV_MultiLineString geometry represents a collection of CV_LineStrings. In GUI map selection to place a MultiLineString, follow the steps for a single LineString as many times as desired. MULTILINESTRING ((10 10, 20 20, 10 40), (40 40, 30 30, 40 20, 30 10))
CV_MultiPoint CV_MultiPoint geometry represents a collection of Points. In GUI map selection to place a Multipoint, click to drop as many points as desired. MULTIPOINT ((10 40), (40 30), (20 20), (30 10))
CV_MultiPolygon CV_MultiPolygon geometry represents a collection of CV_Polygons. In GUI map selection to place a MultiPolygon, follow the steps for a single polygon as many times as desired. MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)), ((20 35, 10 30, 10 10, 30 5, 45 20, 20 35), (30 20, 20 15, 20 25, 30 20)))
CV_Point CV_Point geometry represents a single point. In GUI map selection to place a point, simply click to drop the point. POINT (30 10)
CV_Polygon CV_Polygon geometry specifies a WKT Polygon. In GUI map selection to place a polygon, click on the first point, then as many additional points desired, and again on the first point to close the polygon. POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))
CV_String CV_String is a UTF-8 encoded string. The quick brown fox jumped over the lazy dog.
CV_Table CV_Table represents a table of data as a set of columns and rows. Each column has a data type defined by a Common Vocabulary type such as {string}. N/A
CV_TemporalRange CV_TemporalRange describes a range of time. The start time (left point) and end time (right point) are inclusive. 2020-12-01T00:00:00Z|2020-12-31T23:59:59Z
CV_Timestamp CV_Timestamp represents a specific time and date in the Zulu (UTC) timezone. Upon construction 2014-09-24T18:47:25.912Z
CV_WebResource CV_WebResource is a URL that refers to a network reachable artifact. N/A