[sc34wg3] New syntax for (binary) associations
db3000 at mac.com
Thu Feb 7 00:49:41 EST 2008
On 6-Feb-08, at 4:41 AM, Robert Barta wrote:
> On Sun, Feb 03, 2008 at 01:24:52PM -0500, Dmitry wrote:
>> I like the idea of explicit "Property" definitions
>> isa Property;
>> tm:subject_role o:Employee @ o:is-employed;
>> tm:object_role o:Employer @ o:is-employed.
>> Explicit properties allow to have a compact syntax for binary
>> associations + some new interesting possibilities:
> Woohie, you may have broken the world record on the number of semantic
> levels squeezed into 4 lines. I see instance data, modelling and
> meta-modelling here.
> Is the above meant as the RDF pendant to
> o:works-for a rdfs:property;
> owl:inverseOf o:is-employed .
> o:works-for rdfs:domain ???? .
> o:works-for rdfs:range ???? .
Not really. It means that we introduce a new subject which is an
"association from a perspective of one of the role players"
We can define the property "o:work-for" as:
tm:subject_role o:Employee @ o:is-employed;
tm:object_role o:Employer @ o:is-employed.
And we also can define the property "o:has_employee"
tm:subject_role o:Employer @ o:is-employed;
tm:object_role o:Employee @ o:is-employed.
Now we can have a bidirectional (!) mapping between CTM "block
form" and traditional TMDM-based form of representing associations.
We can assert things like:
In both cases we will get the same association (after interpretation
of the "block syntax"):
o:is-employed(o:Employer : o:TheDreamWorldInc, o:Employee : john)
When we need to go back from TMDM level representation to CTM "block
syntax" (or Ruby, Python, Perl, C#, Java, ..... object), we can
leverage the same property definitions.
>> meta:unknown o:works_for;
> I don't understand. This is supposed to say "john works for something
> unknown"? But how does the above scoping take care that the
> employer/employee stuff is correct? It could also say "something works
> for john"?
Property is "subject-centric". We make a "function" out of a
"relationship" by anchoring one of the roles.
>> meta:known_all o:parent.
> 'meta' being on what meta-meta level? :-) What did you try to
> accomplish here?
We assert here that the set of values for property "o:parent" is
"closed", we know "everything".
We also can assert something like this:
meta:number_of_values 2 @ o:parent, 1 @ o:sister.
More information about the sc34wg3