From: Georges KO
Subject: Rational Rose's "proprietary" file format...
Date: 
Message-ID: <99Dec31.102441gmt+0800.27798@ns.alcatel.com.tw>
    Hello,

    Has anyone looked at Rational Rose's file format ?

    Here is the beginning:

------------------------------8<------------------------------
(object Petal
    version     42
    _written    "Rose 4.5.8163.3"
    charSet     136)

(object Design "Logical View"
    is_unit     TRUE
    is_loaded   TRUE
    quid        "386CDB59038E"
    defaults    (object defaults
        rightMargin     0.250000
        leftMargin      0.250000
        topMargin       0.250000
        bottomMargin    0.500000
        pageOverlap     0.250000
        clipIconLabels  TRUE
        autoResize      TRUE
        snapToGrid      TRUE
        gridX           16
        gridY           16
        defaultFont     (object Font
            size        10
            face        "Arial"
            bold        FALSE
            italics     FALSE
            underline   FALSE
            strike      FALSE
            color       0
            default_color       TRUE)
        showMessageNum  1
        showClassOfObject       TRUE
        notation        "Unified")
    root_usecase_package        (object Class_Category "Use Case View"
.
.
.
------------------------------8<------------------------------

    and it's like this to the end !

    Looks familiar, huh?

    On Rational Web site, we can read:

----------------------------------8<----------------------------------------
Document ID: 7937  
TITLE: RoseForum FAQ - Is the petal file grammer available?
PRODUCT: Rose 98i 
...
QUESTION:
Has anybody developed a petal file parser in java, or is the petal file
grammer available?
 
ANSWER:
The petal file format is proprietary.  Also, it changes every now and then.
The better bet is to use the Rose Extensibility Interface.
 
For more information, contact Rational Software Technical Support.

----------------------------------8<----------------------------------------

    Funny, isn't it?

    The answer should have been: yep, 40 years ago, just add this
patch:

(defun petal-value (petal key)
  (second (member key (cdr (cdr petal)))))

(defun petal-value* (petal keys)
  (if keys
      (petal-value* (petal-value petal (car keys)) 
		    (cdr keys))
    petal))
-- 
 Georges KO, Taipei  Alcatel Telecom Taiwan  ···@alcatel.com.tw / ···@gko.net
                 Decade II, Primidi de Nivose de l'Annee 208 de la Revolution

From: Ray Blaak
Subject: Re: Rational Rose's "proprietary" file format...
Date: 
Message-ID: <m3so0j1qm3.fsf@vault84.infomatch.bc.ca>
Georges KO <···@alcatel.com.tw> writes:
>     Has anyone looked at Rational Rose's file format ?
> 
>     Here is the beginning:
> 
> ------------------------------8<------------------------------
> (object Petal
>     version     42
>     _written    "Rose 4.5.8163.3"
>     charSet     136)
[...]
> 
>     Looks familiar, huh?

Don't be fooled by the parenthesis. It looks like lisp, but is not in any way
lisp. It is just a data format in which parenthesis provide a convenient way to
group things. The "fashionable" version of the format would be in XML. The
actual allowable fields of the "lists" and their values is really what the
grammar would be all about.

Again, using the Rose Extensibility Interface (i.e. talking to Rose via OLE
automation) is a much more robust way of manipulating Rose models -- everything
is already parsed and processed for you.

-- 
Cheers,                                        The Rhythm is around me,
                                               The Rhythm has control.
Ray Blaak                                      The Rhythm is inside me,
·····@infomatch.com                            The Rhythm has my soul.
From: Marco Antoniotti
Subject: Re: Rational Rose's "proprietary" file format...
Date: 
Message-ID: <lwwvprpjal.fsf@parades.rm.cnr.it>
Ray Blaak <·····@infomatch.com> writes:

> Georges KO <···@alcatel.com.tw> writes:
> >     Has anyone looked at Rational Rose's file format ?
> > 
> >     Here is the beginning:
> > 
> > ------------------------------8<------------------------------
> > (object Petal
> >     version     42
> >     _written    "Rose 4.5.8163.3"
> >     charSet     136)
> [...]
> > 
> >     Looks familiar, huh?
> 
> Don't be fooled by the parenthesis. It looks like lisp, but is not in any way
> lisp. It is just a data format in which parenthesis provide a
> convenient way to
> group things. The "fashionable" version of the format would be in
> XML.

Which is a form of S-expr, isn't it? :)

> The actual allowable fields of the "lists" and their values is
> really what the grammar would be all about.
> 
> Again, using the Rose Extensibility Interface (i.e. talking to Rose via OLE
> automation) is a much more robust way of manipulating Rose models --
> everything is already parsed and processed for you.

I believe things should be clarified a little.  The "names" and
"allowed values" are what is really "proprietary" here.

The parsing is trivial since it most likely uses some prepackaged
S-expr-like reader, e.g. lifted from one of the godzillion Scheme
systems out there (unless we are witnessing a bad case of wheel
re-invention).

Cheers

-- 
Marco Antoniotti ===========================================
PARADES, Via San Pantaleo 66, I-00186 Rome, ITALY
tel. +39 - 06 68 10 03 17, fax. +39 - 06 68 80 79 26
http://www.parades.rm.cnr.it/~marcoxa
From: Georges KO
Subject: Re: Rational Rose's "proprietary" file format...
Date: 
Message-ID: <w4dogb7n2yx.fsf@gko.net>
Georges KO <···@alcatel.com.tw> writes:

> (defun petal-value (petal key)
>   (second (member key (cdr (cdr petal)))))

    Oups, it should be:

(defun petal-value (petal key)
    (second (member key petal)))

    Anyway...
From: Frank A. Adrian
Subject: Re: Rational Rose's "proprietary" file format...
Date: 
Message-ID: <_lhc4.55$245.2345@news.uswest.net>
Lisp-like grammars for design interchange have been widely used in CAD, CAE,
and CASE since the early 1980's (if not before).  Most of the first research
IC synthesis tools (not counting early cell-type placement and routing
tools) were done on Lisp systems.

faa

Georges KO <···@alcatel.com.tw> wrote in message
·································@ns.alcatel.com.tw...
>     Has anyone looked at Rational Rose's file format ?