R3DM (Resource-Realization-Reference) in TMDM

Advertise your Wandora project here...

R3DM (Resource-Realization-Reference) in TMDM

Postby athanassios » Wed Jul 10, 2013 2:12 am

I have made several comments on a post from Steve Pepper titled "if we were to redesign Topic Maps based on what we have learnt in the last decade, what would we do differently?". But most important I have proposed a new data model that I call R3DM (Resource/Representation/Reference) data model. I have been experimenting with an example that I would like to share with you as it is depicted in Wandora see my R3DM in TMDM wiki page. My question to the developers of Wandora is how will you model differently these examples, provided that you display the same information, in the present TMDM ?
Last edited by athanassios on Wed Jul 24, 2013 7:23 pm, edited 1 time in total.
athanassios
 
Posts: 47
Joined: Wed Sep 07, 2011 12:16 pm
Location: Greece

Re: R3DM in TMDM

Postby akivela » Thu Jul 18, 2013 2:08 pm

Hi Athanassios

As associations are hyper-edges, it is rather trivial to transform a set of occurrences into a single association. Looking at your first example, Athanassios (p1) is 44 years old and his first name in Greek is Αθανάσιος would turn something like:

Code: Select all
hasProp ( Nassos : Agent, INT : DTYPE, 44 : VAL, NOW : TIME, YR : UNIT )
hasProp ( Nassos : Agent, STR : DTYPE, is-44-years-old : VAL, NOW : TIME, HTML : ENC, EN : LANG )
hasProp ( Nassos : Agent, STR : DTYPE, Αθανάσιος : VAL, FNAM : NAM, HTML : ENC, GR : LANG )
hasProp ( Nassos : Agent, STR : DTYPE, Athanassios : VAL, FNAM : NAM, HTML : ENC, EN : LANG )


Second example, Athanassios (p2) was 1 m high at the age of four is a more problematic as it contains property-pairs that have a strong relation. Thus, we need a multiproperty topic p1:

Code: Select all
hasProp ( Nassos : Agent, p1 : multiproperty )
hasProp ( p1 : multiproperty, STR : DTYPE, was-1m-high : VAL, PAST : TIME, EN : LANG, TXT : ENC )
hasProp ( p1 : multiproperty, STR : DTYPE, at-the-age-of-four : VAL, PAST : TIME, EN : LANG, TXT : ENC )


And third example Athanassios (p1) and Aki (p2) are now taller than 1m

Code: Select all
hasProp ( Nassos : Agent, STR : DTYPE, is-now-taller-than-1m : VAL, NOW : TIME, TXT : ENC, EN : LANG, VAR : Class-instance )
hasProp ( Aki : Agent, STR : DTYPE, is-now-taller-than-1m : VAL, NOW : TIME, TXT : ENC, EN : LANG, VAR : Class-instance )
hasProp ( Nassos : Agent, INT : DTYPE, 100 : VAL, NOW : TIME, cm : UNIT, VAR : Class-Instance )
hasProp ( Aki : Agent, INT : DTYPE, 100 : VAL, NOW : TIME, cm : UNIT, VAR : Class-Instance )


Modeling everything with associations requires that all occurrence values in your model are turned into topics. As your model uses occurrence texts consistently I see this not a problem. Only free text occurrences such as "is now taller tan 1m" look little strange as topics. On the other hand, time value "NOW" and encoding "TXT", for example, turn beautifully a topic.

Kind Regards,
Aki / Wandora Team
akivela
Site Admin
 
Posts: 260
Joined: Tue Sep 18, 2007 10:20 am
Location: Helsinki, Finland

Re: R3DM in TMDM

Postby athanassios » Wed Jul 24, 2013 2:59 pm

akivela wrote:Hi Athanassios
As associations are hyper-edges, it is rather trivial to transform a set of occurrences into a single association. Looking at your first example, Athanassios (p1) is 44 years old and his first name in Greek is Αθανάσιος would turn something like :....


Hi Aki,
perhaps I should make my question more clear. With the latest implementation of Wandora, I would like to view, on your graph panel, an alternative model that ACCURATELY expresses ALL the info that is included in my examples.

Let me start with the first example, of your reply. Wandora does not allow to define a topic with an identifier that uses UTF-8 characters e.g. "Αθανάσιος" and of course you cannot use them as arguments in Associations. You are also missing the type of property, AGE, in the first two associations, Perhaps you would turn that example of yours into something like :.....

Code: Select all
[val03      : VAL = "44"                                @"val3"]
[val04       : VAL = "<p>is 44 years old </p>"            @"val4"]
[val09      : VAL = "Αθανάσιος"                            @"val9"]
[val00      : VAL = "Athanassios"                  @"val0"]

hasProp ( nassos:AGENT, AGE:PROPERTY, INT:DTYPE, val03:VAL, NOW:TIME, YR:UNIT )
hasProp ( nassos:AGENT, AGE:PROPERTY, STR:DTYPE, val04:VAL, NOW:TIME, HTML:ENC, EN:LANG)

hasProp ( nassos:AGENT, FNAM:NAM, STR:DTYPE, val09:VAL, TXT:ENC, GR:LANG)
hasProp ( nassos:AGENT, FNAM:NAM, STR:DTYPE, val00:VAL, TXT:ENC, EN:LANG)


But that requires to express data values as topics and even if we do that, we still need a container to store the value and the only available is the Base Name construct or the Alternative Name. But suppose I want to store the content of a long html document, then I am forced to store that under the Topic Map Name construct. Perhaps there is a more elegant solution with the current implementation. Is there one ?

The second thing I would like to comment on your reply about example 1 is that it does not represent accurately the model of my example 1. You will probably see my point of view if you try to add another observation of age property. e.g.
[valA : VAL = "20"]
[valB : VAL = "<p>was 20 years old </p>"
hasProp ( nassos:AGENT, AGE:PROPERTY, INT:DTYPE, valA:VAL, PAST:TIME, YR:UNIT)
hasProp ( nassos:AGENT, AGE:PROPERTY, STR:DTYPE, valB:VAL, PAST:TIME, HTML:ENC, EN:LANG)
It is not clear that these two realizations represent one observation of the age and the other two another observation. You will also face that problem if you try to visualise example2 but with the two alternative representations, textual AND numeric ON THE SAME GRAPH.

Therefore I think a better model would be
Code: Select all
hasProp (p1:AGENT, a1:AGE)
hasReal (a1:AGE, INT:DTYPE, val03:VAL, NOW:TIME, YR:UNIT)
hasReal (a1:AGE, STR:DTYPE, val04:VAL, NOW:TIME, HTML:ENC, EN:LANG)

hasProp (p1:AGENT, n1:FNAM)
hasReal (n1:FNAM, STR:DTYPE, val09:VAL, TXT:ENC, GR:LANG)
hasReal (n1:FNAM, STR:DTYPE, val00:VAL, TXT:ENC, EN:LANG)


Where you distinguish property observations from property realizations. I think you have started following that kind of modeling when you were forced to use your multiproperty role to express example2. But I think it is far more elegant, expressive, and clear when you use

Code: Select all
hasProp (p1:AGENT, a2:AGE, h1:HEIGHT)
hasReal (a2:AGE,    INT:DTYPE, val07:VAL, PAST:TIME, YR:UNIT)
hasReal (a2:AGE,    TXT:DTYPE, val08:VAL, PAST:TIME, STR:ENC, EN:LANG)
hasReal (h1:HEIGHT, INT:DTYPE, val05:VAL, cm:UNIT)
hasReal (h1:HEIGHT, TXT:DTYPE, val06:VAL, STR:ENC, EN:LANG)


and finally look at the beautiful shape of the graph and the clear sharing of the property for the two agents p1, p2 at example3

Code: Select all
hasProp (p1:AGENT, h2:HEIGHT)
hasProp (p2:AGENT, h2:HEIGHT)
hasReal (h2:HEIGHT, INT:DTYPE, val01:VAL, NOW:TIME, cm:UNIT)
hasReal (h2:HEIGHT, TXT:DTYPE, val02:VAL, NOW:TIME, STR:ENC, EN:LANG)


All these and the ltm code can be found at my web site for the R3DM at
http://neurorganon.org/mw/index.php?title=R3DM_in_TMDM

In case you manage to visualize the above in a more elegant, expressive, accurate way, I will be happy to examine your alternative on a Wandora Graph panel please.

Kind regards
athanassios
 
Posts: 47
Joined: Wed Sep 07, 2011 12:16 pm
Location: Greece


Return to Use cases

Who is online

Users browsing this forum: No registered users and 2 guests