[sc34wg3] New syntax for (binary) associations

Dmitry db3000 at mac.com
Thu Feb 7 12:41:37 EST 2008


 
On Thursday, February 07, 2008, at 05:21AM, "Lars Heuer" <heuer at semagia.com> wrote:
>Hi Dmitry,
>
>> We can define the property "o:work-for" as:
>[...]
>> And we also can define the property  "o:has_employee"
>[...]
>> Now we can have a bidirectional (!)  mapping between CTM "block
>> form"  and traditional TMDM-based form of representing associations.
>
>But how is that different from defining a template (in the CTM
>context)?
>
>    def works-for($employee, $employer)
>        o:works-for(o:Employee: $employee, o:Employer: $employer)
>    end
>
>    def has-employee($employer, $employee)
>        works-for($employee, $employer) # Calling the "works-for"
>                                        # template with flipped vars
>    end
>
>    john works-for(o:TheDreamWorldInc).
>
>    o:TheDreamWorldInc has-employee(john).

Properties are a universal mechanism that can be used for many purposes. One of them is mapping from TMDM representation to "nice" CTM representation. RDF mapping is another one. Mapping to object oriented languages is also simplified with properties. Properties can simplify TMCL and TMQL. 

With TMQL(not in the current version, in theory) , for example, it would be possible to use  paths like this:

 "john/o:works_for"

With TMCL (not in the current version, in theory), for example,  properties can be used for setting constraints( I use "[]" for nested topic descriptions):

o:Person
   tc:property  [
        tc:type o:works_for;
        tc:card_min 0;
        tc:range o:Organization
   ].

With properties and nested topic descriptions I do not see necessity in CTM templates (as they are defined now).

Dmitry


More information about the sc34wg3 mailing list