[comp.object] **** Neutral Representation Language ****

siping@cathedral.cerc.wvu.wvnet.edu (Siping Liu) (02/13/90)

We are working on a project cooperatively among several
universities and companies. Different
object-oriented knowledge representation languages are used
by different groups, such as C++, Objective C, KEE, LASER
(similar to KEE), etc. The problem is that we need to define a
neutral representation language used as a media so that
different representations can be easily translated from each other.

Has anybody done this kind of work before? What are
the requirements we should consider at the beginning? Any references?
Any help will be highly appreciated.

Thank you for your attention.

siping@cerc.wvu.wvnet.edu

siping@cathedral.cerc.wvu.wvnet.edu (Siping Liu) (02/16/90)

I posted a question a few days ago about the "Neutral Representation Language".
Here are replies I have got. Thanks to all of the concerns.

--------------------------------------------------------------------------

From sdm@cs.brown.edu Tue Feb 13 03:47:03 1990
Return-Path: <sdm@cs.brown.edu>
Received: from cs.brown.edu by cerc.wvu.wvnet.edu (4.1/SMI-4.0)
	id AA25805; Tue, 13 Feb 90 03:47:01 EST
Received: from norton.cs.brown.edu by cs.brown.edu (4.1/SMI-4.0)
	id AA20177; Tue, 13 Feb 90 03:44:35 EST
Date: Tue, 13 Feb 90 03:44:22 EST
From: sdm@cs.brown.edu
Message-Id: <9002130844.AA04557@norton.cs.brown.edu>
To: siping@cathedral.cerc.wvu.wvnet.edu
Subject: **** Neutral Representation Language ****
Status: RO

My thesis research involves developing an internal representation for
software systems such that multiple views can share a common
representation.  For broad classes of views, this implies being able to do
at least partial mappings between views.

The project you described in your posting to comp.lang.c++ sounds similar
to mine.  I would be very interested in hearing more about what you are
doing, who is involved, etc.  My experience has been that there is not a
lot of work being done in this field, but interest seems to be on the
rise.

Scott Meyers
sdm@cs.brown.edu

--------------------------------------------------------------------------

From pwd%computer-lab.cambridge.ac.uk@NSFNET-RELAY.AC.UK Tue Feb 13 07:11:37 1990
Return-Path: <pwd%computer-lab.cambridge.ac.uk@NSFNET-RELAY.AC.UK>
Received: from RELAY.CS.NET by cerc.wvu.wvnet.edu (4.1/SMI-4.0)
	id AA26106; Tue, 13 Feb 90 07:11:34 EST
Received: from nsfnet-relay.ac.uk by RELAY.CS.NET id aa03681; 13 Feb 90 5:59 EST
Received: from sun.nsfnet-relay.ac.uk by vax.NSFnet-Relay.AC.UK 
           via Janet with NIFTP  id aa05614; 13 Feb 90 11:27 GMT
Received: from webb.cl.cam.ac.uk by gnnt.Cl.Cam.AC.UK id aa10834;
          13 Feb 90 11:23 GMT
Date:    13 Feb 90 11:23:44 GMT (Tuesday)
To: Siping Liu <@NSFNET-RELAY.AC.UK:siping@cathedral.cerc.wvu.wvnet.edu>
From: Peter Dickman <pwd%computer-lab.cambridge.ac.uk@NSFNET-RELAY.AC.UK>
Subject: Re: **** Neutral Representation Language ****
Message-Id: <2812361024-pwd@uk.ac.cam.cl.webb>
Status: RO

You could try looking into the way that distribution is handled in various
languages - this involves packaging up complex data into a flattened form
for transmission & then reconstituting things at the far end. Where the
target is a heterogeneous system the 'network-representation' could then
be said to be 'neutral'.

Of course, your requirements are likely to be greater than is usually the
case since you'll be wanting to pass class descriptions (& implementations?)
via this language - so whatever you get will have to be _more_ powerful &/or
richer than all of your target class description (implementation?) languages.

If no-one can help out with a more direct reference, try looking at the
Xerox Courier stuff & follow up references from there (whatever you
eventually find is likely to have (referenced something that)* referenced 
Courier).

I hope that this is of some (slight) help,

      -- Peter

+-----------------------------------------------------------------------------+
| Phone: +44 223 33 4718    Fax: +44 223 33 4678     E-Mail: pwd@cl.cam.ac.uk |
+-----------------------------------------------------------------------------+
| Post:  Computer Lab, New Museums Site, Pembroke St, Cambridge, CB2 3QG   UK |
+-----------------------------------------------------------------------------+


--------------------------------------------------------------------------

From hcx1!brad@uunet.UU.NET Wed Feb 14 17:31:07 1990
Return-Path: <hcx1!brad@uunet.UU.NET>
Received: from uunet.uu.net by cerc.wvu.wvnet.edu (4.1/SMI-4.0)
	id AA13427; Wed, 14 Feb 90 17:31:05 EST
Received: from hcx1.UUCP by uunet.uu.net (5.61/1.14) with UUCP 
	id AA22979; Wed, 14 Feb 90 17:25:12 -0500
Received: from hcx2.SSD.CSD.HARRIS.COM by SSD.CSD.HARRIS.COM (4.0/HARRIS-4.1)
	id AA22558; Wed, 14 Feb 90 09:36:22 EST
Received: by hcx2.SSD.CSD.HARRIS.COM (4.0/HCX-2.2)
	id AA04008; Wed, 14 Feb 90 09:36:17 EST
Date: Wed, 14 Feb 90 09:36:17 EST
From: brad@SSD.CSD.HARRIS.COM (Brad Appleton)
Message-Id: <9002141436.AA04008@hcx2.SSD.CSD.HARRIS.COM>
To: siping@cathedral.cerc.wvu.wvnet.edu
Subject: Re: **** Neutral Representation Language ****
Newsgroups: comp.object,comp.ai,comp.lang.c++
In-Reply-To: <382@cerc.wvu.wvnet.edu.edu>
Organization: Harris Computer Systems, Fort Lauderdale, FL
Cc: 
Status: RO

In article <382@cerc.wvu.wvnet.edu.edu> you write:
>
>We are working on a project cooperatively among several
>universities and companies. Different
>object-oriented knowledge representation languages are used
>by different groups, such as C++, Objective C, KEE, LASER
>(similar to KEE), etc. The problem is that we need to define a
>neutral representation language used as a media so that
>different representations can be easily translated from each other.
>
>Has anybody done this kind of work before? What are
>the requirements we should consider at the beginning? Any references?
>Any help will be highly appreciated.
>
>Thank you for your attention.
>
>siping@cerc.wvu.wvnet.edu

I dont know if anyone has done this work before in the area of 
OOPL <-> OOPL translation but it has been tackled quite often in
the CAD/CAM world. Various CAD/CAM programs use various file 
formats and mathematical representations and many wanted each 
program to be able to exchange data with the others. Many companies
(such as Schlumberger Technologies CAD/CAM Division) have created 
their own neutral data format language. The US Gov't created 
something called IGES (I think it stands for Internat'l Graphics
Exchange Standard).

Although the base problem itself is not OOPL translation, many of 
the same concerns arise for the Neutral Data Format language. Also,
certain CAD/CAM object representations bear a significant resemblance
to certain OOP entities/methods. Enough (IMHO of course) to make it
worth your while to read about some of the efforts that went into 
creating IGES (or other Neutral Data Format Languages).

Unfortunately, I dont know exactly what journals etc.. these atricles
are in, I can only suggest that you check out some academic CAD/CAM 
publications (something which may not have seemed useful at first).
Good Luck! Id been interested in hearing about what you come up with.
--
-- 
   Brad Appleton               "... and miles to go before I sleep."
  ___________________________________________ ____________________________
   Harris Computer Systems Division, MS 161  |  brad@ssd.csd.harris.com
   2101 West Cypress Creek Road              |  {uunet,novavax}!hcx1!brad
   Fort Lauderdale, FL 33309 USA             |  Phone: (305) 973-5007
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     DISCLAIMER: The opinions expressed here are my own; they in no way
                 reflect the opinion or policies of Harris Corporation.


--------------------------------------------------------------------------

From sdm@cs.brown.edu Thu Feb 15 02:25:44 1990
Return-Path: <sdm@cs.brown.edu>
Received: from cs.brown.edu by cerc.wvu.wvnet.edu (4.1/SMI-4.0)
	id AA17234; Thu, 15 Feb 90 02:25:38 EST
Received: from norton.cs.brown.edu by cs.brown.edu (4.1/SMI-4.0)
	id AA25785; Thu, 15 Feb 90 02:22:57 EST
Date: Thu, 15 Feb 90 02:22:43 EST
From: sdm@cs.brown.edu
Message-Id: <9002150722.AA06701@norton.cs.brown.edu>
To: siping@cerc.wvu.wvnet.edu
Subject: Neutral Representation Language
Status: R

>  We don't know much about works done in this aera. From
>  your mail, I have an impression that your work is dealing
>  with different views of ONE entity and the views are
>  represented most likely in one language. I guess that is
>  slightly different with our requirement. 

>From my perspective, what you call a language is what I call a view.  In
the most abstract sense, a particular program written in C, in Ada, or in
Fortran has three views: the C view, the Ada view, and the Fortran view.
In other words, a language is just a way of presenting a particular
software system to you -- the language per se isn't important as far as the
software system itself is concerned.  There are lots of other views, too:
data flow views, petri net views, statechart views, SADT views, branch test
coverage views, etc.  The goal of my research is to come up with a
representation for software systems that will provide at least some support
for each of these kinds of views.  The holy grail of this kind of research
is a representation into which any language can be mapped and from which we
can map to any language.  Needless to say, I'm not trying to achieve that.
What I am trying to achieve is a representation that supports broad classes
of views, e.g., control flow and data flow at various levels of
abstraction.

>  What we need to
>  do is to analyze features of individual languages and design
>  a representation which can easily cover
>  all of these features, either directly or indirectly.

The simple way to do this is just to make a catalog of all the features
offered by each language, then create a representation that offers the
union of all the features you cataloged.  Mapping from any given language
into the representation is then entirely trivial.  Unfortunately, mapping
from the representation back to a language may be quite complicated.  For
example, what do you do if language A supports parallelism and language B
doesn't?  When you translate A into your internal representation, the
parallelism is still directly represented (because of the union-of-features
approach), but how do you translate into language B?  In general, the
back-mapping problem is what makes the whole representation problem
difficult, and it's why the union-of-features approach simply sweeps the
problem under the rug.

My approach is to try to identify the fundamental semantic notions in
programming, and to then provide direct support for those notions in an
internal representation.  The idea is that any view (language) can then be
translated into the representation with more or less difficulty, but any
program that is so translated can then be faithfuly executed.  Back-mapping
is still a difficult task, but my hope is that it's eased somewhat by
limiting the number of semantic notions in the representation, the reason
being that by having only a limited number of notions, it's not too
difficult to cover all the cases when you do the mapping.  Furthermore,
because the internal representation can faithfully execute any program,
partial mappings are useful.  In the example above, if A has parallelism
and B doesn't, then the mapping from the internal representation for A's
program is partial into B's view, but everything in B's view is faithful to
A, and you can still watch the program run using the A view (but you'll be
missing certain things pertaining to the parallelism).

My project is biased toward an interactive multi-user multi-view
programming environment, in which modifications to a system made in one
view are immediately visible in all affected views, and this doesn't sound
like one of your requirements.  On the other hand, you sound like you'll
really want total mappings between views (langauges), which is a hard hard
problem, as the example with parallelism above indicates.

>    Have you finished your thesis? I'd appreciate it if you can e-mail
>  me your thesis or maybe just an abstraction of it and other
>  references.

I plan to officially propose my thesis this spring, probably in May.  Right
now the only publication on it is the paper I wrote for the last COMPSAC.
If you don't have access to the proceedings (Orlando, September 1989), I'd
be happy to send you a copy of the paper, either electronically (LaTeX) or
hardcopy.  The paper is over a year old now, so it's rather out of date,
but it gives a good overview of the main features of my approach, and it's
got some relevant references for you.  I also have a paper that should
appear in IEEE Software sometime next year on different integration
mechanisms in interactive software development environments, but that
sounds like it would be less relevant to the kind of work you're doing.

I'd be interested in hearing more about your project, and I'd like to be
kept up-to-date on your progress, if that's possible.  As I said before, I
don't think there's been too much work in this area, but I think interest
is on the rise, especially in concjunction with the increasing interest in
graphical languages (views).

Scott


--------------------------------------------------------------------------

From sumax!rrogers@beaver.cs.washington.edu Thu Feb 15 21:20:50 1990
Received: from beaver.cs.washington.edu by cerc.wvu.wvnet.edu (4.1/SMI-4.0)
	id AA25964; Thu, 15 Feb 90 21:20:47 EST
Received: by beaver.cs.washington.edu (5.61/7.0)
	id AA18577; Thu, 15 Feb 90 18:17:15 -0800
Return-Path: <sumax!rrogers@beaver.cs.washington.edu>
Received: by sumax.UUCP (smail2.5)
	id AA25621; Thu, 15 Feb 90 18:01:23 pst
Date: Thu, 15 Feb 90 18:01:23 pst
From: MainToad <sumax!rrogers@beaver.cs.washington.edu>
Message-Id: <9002160201.AA25621@sumax.UUCP>
To: siping@cathedral.cerc.wvu.wvnet.edu
Subject: Re: **** Neutral Representation Language ****
Newsgroups: comp.object,comp.ai,comp.lang.c++
In-Reply-To: <382@cerc.wvu.wvnet.edu.edu>
Organization: Seattle University, Seattle, WA
Cc: 
Status: RO



One of the professors here at SU has been doing some work on what sounds like
the perfect thing for you:



>From spector Mon Feb  5 18:43:26 PST 1990 Thu Jan 26 14:40:32 PST 1989
Article 76 of seattleu.general:
Path: sumax!spector
>From: spector@sumax.UUCP (Mitchell Spector)
Newsgroups: comp.object,seattleu.general,seattle.general,pnw.general
Subject: Seattle University Colloquium
Message-ID: <1227@sumax.UUCP>
Date: 5 Feb 90 20:00:01 GMT
Reply-To: spector%sumax.UUCP@beaver.cs.washington.edu (Mitchell Spector)
Distribution: pnw
Organization: Seattle University, Seattle, WA
Lines: 33
Xref: sumax comp.object:877 seattleu.general:76 seattle.general:494 pnw.general:278


    Seattle University Computer Science and Software Engineering Colloquium


			Prof. Garry Kampen

			of Seattle University

			will speak on

			Mathematical Foundations of Object Modelling

			Wednesday, February 7, at 3:30 p. m.

			Engineering Building, Room 305


Prof. Kampen will discuss object modelling, his research goals in this area, 
and his current attempt to develop a broad-spectrum graphic notation for 
object-oriented conceptual modelling.  The focus of the talk is on the formal 
mathematical definition of the notation.  The mathematics is simple, requiring 
only a knowledge of elementary set theory, but there is an interesting twist: 
what might be called object-oriented mathematics.

--
Mitchell Spector
Dept. of Computer Science and Software Engineering
Seattle University
Seattle, WA 98122
(206) 296-5510
E-mail: spector%sumax.uucp@beaver.cs.washington.edu



The graphic notation mentioned is the part you're probably interested in.  It
looks like it would be pretty simple to go from the notation to the declarationsin whatever OOPL you happen to be working with.

--------------------------------------------------------------------------