On Tunes Distributed Publishing (TDP) (was: Tunes)

Massimo Dentico m.dentico at virgilio.it
Tue Mar 20 21:23:54 PDT 2007


> Massimo, welcome back!

Thanks, Tom.

On 3/20/07, Tom Novelli wrote:
> ...
>
> TDP hasn't gotten the attention it deserves.  Right now it would be
> really nice to have a general mechanism for version control and
> annotations.  I know what I want, but I don't have the answers, so I'm
> looking to someone with more expertise in this area.

I'm certainly NOT an "expert", but I have some proposals.
In what follow there is enough food for eager contributors.

w.r.t. version control: we can find inspiration and ideas in
literature regarding, of course, Version Control Systems (VCS)
and Software Configuration Management (SCM). A couple of
starting point:

  Streamed Lines: Branching Patterns for Parallel Software Development
    http://www.cmcrossroads.com/bradapp/acme/branching/references.html

  Configuration Management with Version Sets
    http://www.infosun.fmi.uni-passau.de/st/papers/zeller-phd/

There are relevant papers & software about synchronization here:

  Unison
    http://www.cis.upenn.edu/~bcpierce/unison/index.html

  Harmony
    http://www.seas.upenn.edu/~harmony/

  Benjamin C. Pierce's Papers
    http://www.cis.upenn.edu/~bcpierce/papers/index.shtml
    ignore any occurrence of "XML", read "tree" instead
    notably:
    - Relational Lenses: A Language for Updateable Views
    - Agreeing to Agree: Conflict Resolution for Optimistically Replicated Data
    - Exploiting Schemas in Data Synchronization
    - A Formal Investigation of Diff3
    - The Weird World of Bi-Directional Programming
    .. and so on.

Other relevant keywords for versioning are distributed DBMS & FS,
disconnected operation/update...

w.r.t. annotations: they are not special, a general mechanism for reference
suffice; a primary-key / foreign-key constraint is a good solution.
The general case (distributed/decentralized) needs more thought.

Joins are not really a problem in this setting, as
usually objected. Hints: AutoJoin, various degrees
of independence from the logical schema, Conceptual Queries, ...

  Ramon Lawrence publications:
    http://people.ok.ubc.ca/rlawrenc/research/publications.html
    as above, ignore "XML"
    - AutoJoin: Providing Freedom from Specifying Joins
    - Querying Relational Databases without Explicit Joins
    - ...

  INFER: A Relational Query Language without the Complexity of SQL
    http://portal.acm.org/citation.cfm?id=1099607

  Autojoin: A Simple Rule Based Query Service for Complex Databases
    http://adsabs.harvard.edu/abs/2003ASPC..295..287G

  No-Schema SQL (NS-SQL): Querying Relational Databases Independent of Schema
    http://www.cs.uiuc.edu/class/fa06/cs511/nssql.pdf

  Conceptual Queries
    http://www.orm.net/pdf/ConceptQueries.pdf

  ...

     me: "please, say 'STOP' here"
you all: "STOP!" (loudly)
     me: "thank you".


> What would TDP look like?  Something like an XML DOM tree, without the
> stupid markup, perhaps?  "Links" would be references to objects,
> ranging in size from single letters to book-length.  But would you
> reference a certain version "frozen in time", or the current version?
> And if it's gone, how would the system try to handle it gracefully?
> And finally, would you store it all in a relational database, or what?
> ....... Just some "food for thought."

Too long to replay here in full. So, only quick shots:

> What would TDP look like?

In the long run a fully distributed/decentralized system (peer-to-peer).

Note that "publishing" is about making public anything, not only text.
It is a special case of migration:

  http://tunes.org/wiki/Migration


> Something like an XML DOM tree, without the stupid markup, perhaps?

Also, without imposing a single, specific, one level structure
("document") to all content.

Think "fragments", "pieces", "chunks" of information that is
possible to re-combine, mix, mashup, transclude, transforme...
in multiple structures.

This because "content" (text, for example) possess structures
at different levels (characters, syllables, words, phrases,
paragraphs, chapters, volumes, tomes, books...). So, the distinction
content vs structure is relative, at least, to a particular level.
(I will use "content" for convenience here, even if I find the
term sloppy).

It is possible, for example, to assemble fragments of text from
different texts (citing & quoting) but is also possible to re-assemble
fragments of the same text in new ways (different structures).

Content, structure or both could be transformed (automatic
summarization, for example).

Meta-text, meta-browsing, tactics... I think this recombinations
and transformations are what Faré had in mind back when he wrote
(pure hermeneutics of Faré... shocking!):

  Tunes Distributed Publishing
    http://tunes.org/Interfaces/tunesvswww.html

Some references:

  NetBook - a data model to support knowledge exploration
    http://www.vldb.org/dblp/db/conf/vldb/Shasha85.html

    Knowledge exploration is the activity of finding out what
    other people have thought about. Normally, people explore
    knowledge by reading books or articles or by talking to other
    people. This paper discusses an alternative approach: a sys-
    tem whose knowledge is in the form of text fragments plus a
    query language to help users access appropriate fragments.
    Drawing primary inspiration from database theory, hypertext
    systems, knowledge representation, and a study of textual
    fragments called fragment theory, the paper describes and
    motivates a data model to support knowledge exploration.


  Towards a more piece-ful world
    http://portal.acm.org/citation.cfm?id=954202

    We envision a world in which we can develop, synthesize,
    adapt, integrate, and evolve software based on high-
    quality, perpetually flexible pieces. New pieces may be
    produced by generation, adaptation of existing pieces, or
    integration of pieces, and this process of "pieceware"
    engineering continues-statically or dynamically-until a
    piece with the desired capabilities and properties is
    synthesized. The pieces themselves may comprise fragments
    of requirements, models, architectures, patterns, designs,
    code, tests, and/or any other relevant software artifacts.


> "Links" would be references to objects,
> ranging in size from single letters to book-length.

Yes (but not really URLs, of course).

> But would you reference a certain version "frozen in time",
> or the current version?

Both. Lets that users choose (this is nothing new, to be honest
-- see wikies).

> And if it's gone, how would the system try to handle it gracefully?

Once published, do not let it gone:

  Resilient bulk data distribution - increasing data
  survivability in volatile peer-to-peer networks
    http://www.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2006/rapporter06/mattsson_andreas_06013.pdf

> And finally, would you store it all in a relational database, or what?

In a Relational DBMS, SQL DBMSs being a bad aproximation.

Nota bene: what I propose has nothing to do with using logic
to model Natural Languages (NLs). Relational Algebra (RA) is
used only for data management purpose, to easy creation and
manipulation of structure while preserving its integrity.
Everything else belongs to upper levels.

As I shown you in a private e-mail, RA can cope with graphs
egregiously. For the curious:

  Maintaining Transitive Closure of Graphs in SQL
    http://www.comp.nus.edu.sg/~wongls/projects/ies-sql/index.html
    Notable, in this paper, the idea of Icremental Evaluation System (IES)
    that increase the expressive power of Relational Algebra.

  Incremental Maintenance of Shortest Distance and Transitive
  Closure in First Order Logic and SQL
    http://e-hrc.net/pubs/abstract/RP-CP-GD-KR-incr-maint-short-dist-trans-clos-logic-sql.htm

See about trees also here:

  http://tunes.org/wiki/KnowOS#Other_papers_on_graphs_and_trees_in_RDBMSs

And if you are comfortable with Python, have a look at this
to avoid SQL:

  Dee - makes Python relational
    http://www.quicksort.co.uk/

A final plus about security:

  [cap-talk] capabilities for databases and database-like systems
    http://www.eros-os.org/pipermail/cap-talk/2005-April/thread.html#3461
  In brief: views = capabilities

This is related to security also, don't be deceived by the title:

  Solving equations in the relational algebra
    http://arxiv.org/abs/cs.LO/0106034


All this is not exactly a "quick shot". What is left?
Oh, mark-up languages. I promise, this will the subject of
another e-mail. (you all: "Oh my....!")


> The existing TDP pages are 99% negative criticism...

Yes, of course. One needs to explain what is wrong with current
solutions before proposing something different.


> I'm really looking forward to your practical suggestions.
> I don't mean to rush you... maybe you could send me a draft
> copy to proofread... :-)

Core ideas are in a so messy state that you would not understand
much of what I have jotted down.


> Seriously, I'm busy enough without this, but I want to get
> the ball rolling.

Well, by now reader's balls are probably turning around
rather quickly. Apology for any such inconvenience...


Regards.

--
Massimo Dentico










More information about the TUNES mailing list