We use the terms as explained in TypoScript Syntax, with some modifications:

The section TypoScript parsing differentiates between Object paths, Objects, properties and values.

To reuse the OOP analogy and compare with PHP:

TypoScript Templates PHP classes
property property
object (is defined by / is an instantiation of an object type) object (is defined by / is an instantiation of a class)
object type = complex data type class
simple datatype PHP primitive data type
text = TEXT $text = new Text()

Example 1 (assign value to property in object1:

object1 = OBJECTTYPE1
object1 {
   property = value

Example 2:

# here, object1 is defined as type OBJECTTYPE1
#   "OBJECTTYPE1" is an object type, so is OTHER
object1 = OBJECTTYPE1
object1 {
   object2 = OTHER
   object2 {
      property = value

Note: OBJECTTYPE1 and OTHER are not real object types (as used in TypoScript) and are used here only to illustrate the example.

Is anything on the left side of an assignment, e.g. in Example 1, the variable is property, the full variable path is The variable can be a property with a simple datatype or an "object type".
(= simple variable) A variable with a simple data type. The terms "object" and "property" are mutually exclusive. "Object" and "property" are both "variables".
In the context of TypoScript templates, objects are complex variables and have a complex data type. They contain one or more variables.
The right side of the assignment. It must be of the correct data type.
Data type
Variables usually have a fixed data type. It may be a simple data type (such as a string) or it may be a complex data type (= Object Type).
Simple data type
!= Complex data type. If a variable has a simple data type, it cannot be assigned an object. Hence, it is a property.
Object type
= complex data type. If a variable is an object and thus has a complex data type, it will contain several variables. In example 2 above, object1 has a complex data type, as does object2, but not property. Complex data types are usually spelled in full caps, e.g. CONTENT, TEXT, PAGE etc. The exception is the abstract complex data type cObject from which the data type CONTENT, TEXT etc. are derived.
Object path:
The full path of an object. In the example above object1.object2 is an object path
Variable path
The full path of a variable. In the example above is a variable path.
cObject data type
This is an (abstract) complex data type. Specific cObject data types, such as TEXT, IMAGE etc. are all cObject data types. They are usually used for content elements.
Top level objects
As described in Introduction TypoScript templates are converted into a multidimensional PHP array. You can view this in the TypoScript object browser. Top level objects are located on the top level. Top level objects are for example config, page and plugin.