Google Mail Calendar Documents Reader Web more »
Recently Visited Groups | Help | Sign in
Google Groups Home
CORRELATIVE.REUSE
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  10 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Follow-up To:
Add Cc | Add Follow-up to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers that you hear
 
eppick77  
View profile   Translate to Translated (View Original)
 More options 14 Oct, 16:30
From: eppick77 <eppic...@yahoo.com>
Date: Wed, 14 Oct 2009 08:30:25 -0700 (PDT)
Local: Wed 14 Oct 2009 16:30
Subject: CORRELATIVE.REUSE
Martin,

Could you explain this new command a bit more?  I want to make sure
that if I were to put that in that it would not cause the dictionary
items that I have now to stop working properly.

Thanks


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message, you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Martin Phillips  
View profile   Translate to Translated (View Original)
 More options 14 Oct, 17:10
From: "Martin Phillips" <martinphill...@ladybridge.com>
Date: Wed, 14 Oct 2009 17:10:42 +0100
Local: Wed 14 Oct 2009 17:10
Subject: Re: CORRELATIVE.REUSE

Hi Eugene,

The CORRELATIVE.REUSE setting of the OPTION command was added at release 2.9-7 but not documented until 2.9-8 because we wanted to confirm with the user that requested it that we had it correct (which we did).

As we will see below, part of the original problem may turn out to be that QM executes correlatives in a different way from Pick systems.

The precise behaviour of correlatives is not very well documented in any of the mv systems. We based our implementation on information extracted from documentation for PI/open, UniVerse, D3, mvBase and several training packages from Malcolm Bull.

There is frequent reference in these documents to the use of the R qualifier after a data item to imply an operation equivalent to use of the REUSE() function in QMBasic. Using the horrors of an F-correlative as my example, I might have something like
   F;'~';1;:
to prefix the content of field 1 with a tilde. This is equivalent to use of a QMBasic expression
   CATS('~', @RECORD<1>)

But, what if field 1 is multivalued? According to many of the mv correlative documents, I must amend my correlative to be
   F;'~'R;1;:
which is equivalent to
   CATS(REUSE('~'), @RECORD<1>)

So far, all is ok. Now let's say that I want my correlative to return the record id (which is always single valued) followed by a tilde and then the content of multivalued field 1. It looks as though I need to write
   F;0;'~';1
but I somehow need to insert an R option that will be applied to the result of the first concatenation. The language doesn't have a way to do this.

I suspect that the underlying problem is that QM converts correlatives to the equivalent multivalued functions of QMBasic. From talking with the user who raised this issue, it seems that Pick systems execute the correlative multiple times, once for each value in the multivalued data whereas QM executes the composite expression just once, handling the multivalues internally. In most cases, there is no difference between these two approaches.

Pondering on this leads to a question... What does the R option actually do in Pick? If the expression is evaluated many times, it doesn't appear to be needed. Nothing in any of the documentation we have here explains what actually happens.

The solution that we came up with that appears to work in all cases is to add the CORRELATIVE.REUSE option which causes all correlative operators to behave as though the R option was present, even those like my double concatenation where there is nowhere in the expression syntax to insert the R. It was suggested that we should make this behaviour standard but, just in case there is some case where it would have undesireable effects, we made it an option.

QM has never guaranteed 100% compatibility with Pick or any other system but we aim to make migration easy. We have many users who have migrated from Pick style systems over the last few years and this is the first time this incompatibility has come up. We discussed various solutions with the user and decided that the new OPTION setting was the best. Only time will tell. I suggest that you only enable this setting if you have correlatives that are not working because of the problem described above. Then there is no risk of anything else going wrong.

Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message, you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
eppick77  
View profile   Translate to Translated (View Original)
 More options 14 Oct, 17:15
From: eppick77 <eppic...@yahoo.com>
Date: Wed, 14 Oct 2009 09:15:50 -0700 (PDT)
Local: Wed 14 Oct 2009 17:15
Subject: Re: CORRELATIVE.REUSE
Martin,

Thanks for the detailed explanation.  I could not tell exactly what it
was doing from the documentation.

Eugene

On Oct 14, 12:10 pm, "Martin Phillips" <martinphill...@ladybridge.com>
wrote:


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message, you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
sdavmor  
View profile   Translate to Translated (View Original)
 More options 14 Oct, 21:29
From: sdavmor <sdav...@systemstheory.net>
Date: Wed, 14 Oct 2009 13:29:14 -0700
Local: Wed 14 Oct 2009 21:29
Subject: Re: CORRELATIVE.REUSE

Impressive.  A very sensible and well thought-out solution.
--
Cheers, SDM -- a 21st Century Schizoid Man
Systems Theory music project: <www.systemstheory.net>
on MySpace: <www.myspace.com/systemstheory>
on GarageBand: <www.garageband.com/systemstheory>
on Last FM: <www.last.fm/music/Systems+Theory>
on CDBaby: CDBaby <www.cdbaby.com/all/systemstheory>
get "Codetalkers" *free* at <www.mikedickson.org.uk/codetalkers>
NP: nowt

    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message, you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Tony G  
View profile   Translate to Translated (View Original)
 More options 15 Oct, 04:07
From: "Tony G" <wosclx...@sneakemail.com>
Date: Wed, 14 Oct 2009 20:07:37 -0700
Local: Thurs 15 Oct 2009 04:07
Subject: RE: CORRELATIVE.REUSE

> From: sdavmor
> Impressive.  A very sensible and well thought-out solution.

Did that one line of comment really require 92 lines of quotes?

Feeling very crochety at the moment,
T


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message, you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Martin Phillips  
View profile   Translate to Translated (View Original)
 More options 15 Oct, 09:26
From: "Martin Phillips" <martinphill...@ladybridge.com>
Date: Thu, 15 Oct 2009 09:26:56 +0100
Local: Thurs 15 Oct 2009 09:26
Subject: Re: CORRELATIVE.REUSE
Hi all,

> Did that one line of comment really require 92 lines of quotes?

> Feeling very crochety at the moment,

Please do not include the whole of a lengthy post in each reply. The whole
point of a Google group is that you can look back at past contributions to
the thread. Include just enough to indicate what point you are replying to.

Re the CORRELATIVE.REUSE option, we have also placed a new item in the QM
KnowledgeBase that includes much of the same text as the response posted
yesterday. Ideas for new topics that are perhaps inappropriate for the main
manuals are always welcome.

Martin Phillips, Ladybridge Systems.


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message, you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
eppick77  
View profile   Translate to Translated (View Original)
 More options 15 Oct, 15:16
From: eppick77 <eppic...@yahoo.com>
Date: Thu, 15 Oct 2009 07:16:40 -0700 (PDT)
Local: Thurs 15 Oct 2009 15:16
Subject: Re: CORRELATIVE.REUSE
Martin,

I would love to see an article on how to do object oriented
programming in QM.

Eugene

On Oct 15, 4:26 am, "Martin Phillips" <martinphill...@ladybridge.com>
wrote:


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message, you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Martin Phillips  
View profile   Translate to Translated (View Original)
 More options 15 Oct, 15:37
From: "Martin Phillips" <martinphill...@ladybridge.com>
Date: Thu, 15 Oct 2009 15:37:14 +0100
Local: Thurs 15 Oct 2009 15:37
Subject: Re: CORRELATIVE.REUSE
Hi Eugene,

> I would love to see an article on how to do object oriented
> programming in QM.

Sounds like it could be a big article!

I will see if we can construct something out of materials we already have.

Martin Phillips, Ladybridge Systems Ltd


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message, you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
pschellenbach  
View profile   Translate to Translated (View Original)
 More options 15 Oct, 16:22
From: pschellenbach <p...@asent.com>
Date: Thu, 15 Oct 2009 08:22:36 -0700 (PDT)
Local: Thurs 15 Oct 2009 16:22
Subject: Re: CORRELATIVE.REUSE
Hi Martin -

Having worked with some of the original R83 A/F code when doing
consulting for some of the old Pick licensees, I can confirm that
indeed the correlative / conversion is evaluated repeatedly for multi-
values (and sub-values I think). Initially the value counter is set to
1 and the function is executed. Any attribute references are scanned
to the current value count and only that value is processed. If the
current value of the attribute reference being processed is terminated
by a value-mark character (indicating another value to come) a flag is
set and after the current iteration has completed, the value counter
is incremented and the whole thing is repeated. If an attribute
reference has a trailing "R", the scan to the current multi-value is
skipped and the attribute is treated as a repeating single-valued
operand. Constants are always repeated. The process repeats until the
execution terminates without the flag set.

Thanks,

Peter Schellenbach


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message, you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Martin Phillips  
View profile   Translate to Translated (View Original)
 More options 15 Oct, 16:33
From: "Martin Phillips" <martinphill...@ladybridge.com>
Date: Thu, 15 Oct 2009 16:33:53 +0100
Local: Thurs 15 Oct 2009 16:33
Subject: Re: CORRELATIVE.REUSE
Hi Peter,

Thanks for a concise description of what happens. This is not quite what we
do but we are probably close enough. There may be the odd correlative that
needs modification but they should be rare. It has taken several years of
migrations to encounter the first one.

Martin Phillips, Ladybridge Systems Ltd


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message, you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google