[sc34wg3] New syntax for (binary) associations
Dmitry
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
>>
>> o:works-for
>> 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:
o:works_for
isa Property;
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"
o:has_employee
isa Property;
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:
john
o:works_for o:TheDreamWorldInc.
o:TheDreamWorldInc
o:has_employee john.
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.
>> john
>> 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:
john
meta:number_of_values 2 @ o:parent, 1 @ o:sister.
Dmitry
More information about the sc34wg3
mailing list