[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Reply to: [list | sender only]
Re: [ddlm-group] Relationship asmong CIF2, STAR, CIF1 and Python. .
- To: Group finalising DDLm and associated dictionaries <ddlm-group@iucr.org>
- Subject: Re: [ddlm-group] Relationship asmong CIF2, STAR, CIF1 and Python. .
- From: James Hester <jamesrhester@gmail.com>
- Date: Tue, 18 Jan 2011 16:35:01 +1100
- In-Reply-To: <a06240800c957bd6d16ee@192.168.2.102>
- References: <alpine.BSF.2.00.1101120536370.71134@epsilon.pair.com><AANLkTimA8+YXbJ8yS0AtKgFjq9221oMFjR6habn6DsXR@mail.gmail.com><alpine.BSF.2.00.1101120834010.42232@epsilon.pair.com><alpine.BSF.2.00.1101121400400.85750@epsilon.pair.com><alpine.BSF.2.00.1101121556380.31518@epsilon.pair.com><698308.91583.qm@web87015.mail.ird.yahoo.com><alpine.BSF.2.00.1101121845060.90622@epsilon.pair.com><alpine.BSF.2.00.1101131202050.27153@epsilon.pair.com><20110115124309.GC238@emerald.iucr.org><a06240800c957bd6d16ee@192.168.2.102>
There is a persistent misunderstanding of the different roles the various layers in the CIF framework play. CIF2 is a syntax specification for serialising a collection of simple relational database structures. As such, DDL dictionaries are also just relational databases. Programs and people can use the information in the DDL dictionaries to check the validity of data files and dictionaries. The innovation of dREL is to provide a way of describing algorithmic relationships among relational database entries. These algorithms can be translated and used by programs. I hope this description captures the elegant simplicity of the CIF framework. To start to talk about making these databases executable or making the database serialisation protocol a program at best makes very little sense and at worst pollutes the clear demarcation lines between the components. Each component in the framework is optimised for the role it plays, relatively simple to understand (I had thought) and largely insulated from changes in any of the others. Anybody (and I have been among those people) who thinks that dREL should just be replaced by some well-known programming language fails to understand the function that it carries out and the context in which it executes. For instance: (1) dREL is optimised for relational database work, in particular: - dREL has very neat syntactic sugar to allow indexing items between categories using category keys - dREL introduces syntax for looping over categories (2) All dictionary datanames are automatically in scope (3) The dREL method does not have to concern itself with implementation details such as keeping track of which loop packet is currently calculating or throwing error messages. (4) Many features of a fully-blown programming language are not relevant or even dangerous in the dictionary context (5) There is no need for dREL to commit to a particular concrete implementation of the CIF datastructure. Each dREL engine is welcome to optimise as it sees fit and convert the dREL method to one that works with whatever the native CIF datastructure is for a given application. (6) These methods are canonical in that they are going into a dictionary. They should change over time as little as possible, and be as easy as possible to understand and create. What Nick et al did was to take Python, remove language features that were not necessary and add some syntactic sugar. The result is an algorithmic language that elegantly expresses relationships within a relational database with minimum clutter and in a way that is hopefully reasonably accessible to dictionary writers, and didn't commit CIF to a particular language implementation or CIF implementation. Anybody visiting my poster in Osaka would have had a chance to get up close and personal with these issues. I automatically translate dREL methods into Python, inserting print statements and whatnot, and then evaluate those Python chunks *after* making the appropriate variable initialisations. Execution of each method is under control of a master program that determines which method to execute and keeps track of loop packet construction etc. I'll say it again: so far I've seen no sustainable argument for sending CIF2 back to committee, or for adopting Python string handling syntax into CIF2. On Sun, Jan 16, 2011 at 8:16 AM, Herbert J. Bernstein <yaya@bernstein-plus-sons.com> wrote: > At 12:43 PM +0000 1/15/11, Brian McMahon wrote: >>It might be worth remarking (again) that dREL is being developed as a >>canonical methods description language, and not necessarily the runtime >>methods evaluator of choice for future applications. It may be that in >>practice future methods are initially developed and most frequently >>executed directly in Python or some other language. As I see it, the >>goal of CIF and DDL evolution is not to exclude such a possibility. > > If we are trying to be Python friendly and much of dREL is derived > from a Jython implementation, I don't understand why we are not > conforming dREL, DDLm and CIF2 to Python conventions as closely as > possible. > > > > > > > > At 12:43 PM +0000 1/15/11, Brian McMahon wrote: >>On Thu, Jan 13, 2011 at 05:35:21PM -0600, Bollinger, John C wrote: >>> >>> (snip) >>> >>> CIF2 <=> CIF1: >>> To the greatest extent feasible, well-formed CIF1 documents should be >>> well-formed CIF2 documents (modulo a CIF version identification >>> signature) having the same meaning. >> >>Agreed. >> >>> CIF2 <=> STAR: >>> Inasmuch as CIF1 is derived from STAR, I think it appropriate for CIF2 >>> to look first to STAR, including its post-CIF1 development, for new >>> features it may need. Even if CIF2 is not 100% compatible with STAR, it >>> is worthwhile to avoid diverging without compelling reason. >> >>Agreed >> >>> CIF2 <=> Python: >>> I see no particular reason for any formal relationship here beyond >>> Python's role as the indirect inspiration for CIF2's new >>> triple-quote syntax. I am wary of the idea of tying CIF tightly to >>> a particular language. CIF2 documents are not and never will be >>> Python programs. I could imagine embedding Python in CIF or vise >>> versa, but I have seen no evidence to suggest that greater similarity >>> between the two languages' syntax and semantics would benefit efforts >>> such as those. >> >>Agreed. As I mention elsewhere, there is a greater influence on the >>prototype dREL (arising from the initial Jython implementation), and >>the list and table data types doubtless arise from that also. >> >>It might be worth remarking (again) that dREL is being developed as a >>canonical methods description language, and not necessarily the runtime >>methods evaluator of choice for future applications. It may be that in >>practice future methods are initially developed and most frequently >>executed directly in Python or some other language. As I see it, the >>goal of CIF and DDL evolution is not to exclude such a possibility. >> >>Regards >>Brian >>_______________________________________________ >>ddlm-group mailing list >>ddlm-group@iucr.org >>http://scripts.iucr.org/mailman/listinfo/ddlm-group > > > -- > ===================================================== > Herbert J. Bernstein, Professor of Computer Science > Dowling College, Kramer Science Center, KSC 121 > Idle Hour Blvd, Oakdale, NY, 11769 > > +1-631-244-3035 > yaya@dowling.edu > ===================================================== > _______________________________________________ > ddlm-group mailing list > ddlm-group@iucr.org > http://scripts.iucr.org/mailman/listinfo/ddlm-group > -- T +61 (02) 9717 9907 F +61 (02) 9717 3145 M +61 (04) 0249 4148 _______________________________________________ ddlm-group mailing list ddlm-group@iucr.org http://scripts.iucr.org/mailman/listinfo/ddlm-group
Reply to: [list | sender only]
- Follow-Ups:
- Re: [ddlm-group] Relationship asmong CIF2, STAR, CIF1 and Python. . (Herbert J. Bernstein)
- References:
- Re: [ddlm-group] Simon's elide proposal (Herbert J. Bernstein)
- Re: [ddlm-group] Simon's elide proposal (James Hester)
- Re: [ddlm-group] Simon's elide proposal (Herbert J. Bernstein)
- Re: [ddlm-group] Simon's elide proposal (Herbert J. Bernstein)
- Re: [ddlm-group] Simon's elide proposal (Herbert J. Bernstein)
- Re: [ddlm-group] Simon's elide proposal (SIMON WESTRIP)
- Re: [ddlm-group] Simon's elide proposal (Herbert J. Bernstein)
- [ddlm-group] Relationship asmong CIF2, STAR, CIF1 and Python (Herbert J. Bernstein)
- Re: [ddlm-group] Relationship asmong CIF2, STAR,CIF1 and Python. . (Brian McMahon)
- Prev by Date: Re: [ddlm-group] Relationship asmong CIF2, STAR,CIF1 and Python. . . .. .
- Next by Date: Re: [ddlm-group] Relationship asmong CIF2, STAR, CIF1 and Python. .
- Prev by thread: Re: [ddlm-group] Relationship asmong CIF2, STAR,CIF1 and Python. .
- Next by thread: Re: [ddlm-group] Relationship asmong CIF2, STAR, CIF1 and Python. .
- Index(es):