Skip to topic | Skip to bottom
Home

Tesi
Tesi.DiscussioneDel29Marzo2007r1.3 - 31 May 2007 - 15:06 - LucaFurinitopic end

Start of topic | Skip to actions

Discussione TALL del 29 Marzo 2007

Cose dette durante la discussione

Gli aspetti sintattici e semantici di TALL sono del tutto ortogonali, quindi non bisogna farsi influenzare dalla sintassi per definire la semantica o viceversa.

Bisogna sempre tenere presenti gli scenari d'uso di TALL, ed eventualmente aggiungerne di nuovi man mano che se ne incontrano di possibili nuovi.

Sintassi

Proposta per la sintassi: estendere CSS (nuove proprieta' e nuovi valori)?

Quantificatori

Valori delle proprieta' topologiche: si potrebbero avere dei quantificatori very e quite per aggiungere sfumatore piu' fini rispetto ai valori inizialmente pensati. Ad esempio, per la vicinanza si potrebbe avere very near o quite far (ma very adjacent non avrebbe molto senso ...).

Range

Uno dei problemi della sintassi altamentente sperimentale usata fin'ora riguardava l'ambiguita' di espressioni come similarity = width(15,20).

Significa che consideriamo simili gli oggetti con una larghezza compresa tra 15 e 20, o che tutti gli oggetti devono avere una stessa larghezza che, in piu', deve essere in questo intervallo?

Nuova sintassi: i range si indicano semplicemente indicando una percentuale di tolleranza attorno ad un valore di riferimento; la tolleranza specifica in modo piu' preciso la similarita', il valore di riferimento e' una proprieta' geometrica separata. Ad es: similarity = width(10%) =width= = 17

Semantica

object e group

L'elemento object potrebbe essere facoltativo: i figli di un group potrebbero cosi' essere sia elementi object che contengono proprieta' topologiche, sia direttamente oggetti SVG o FO.

Un oggetto object senza proprieta' continuerebbe comunque ad avere un senso: servirebbe per racchiudere piu' oggetti da considerarsi come un'unica entita'.

Inoltre, object potrebbe essere visto come placeholder generico, ad indicare una forma geometrica (un quadrato, un rettangolo, un cerchio, ...) che non e' stata definita in termini piu' precisi. In altre parole, anche la forma (shape) sarebbe una proprieta' topologica.

Le pagine sono un caso particolare di group con valore di overflow uguale a repeat (o qualcosa del genere), e i cui figli sono le diverse regioni della pagina (header, footer, body, ...). Il meccanismo di repeat deve consentire la possibilita' di definire le caratteristiche delle nuove pagine con la stessa ricchezza di FO, in cui la scelta fra i diversi page-master esistenti viene fatta sulla base di alcune condizioni: posizione (prima pagina, ultima pagina, in mezzo), pari/dispari, vuota/piena.

Priorita' & C.

Ci sono due concetti diversi da non confondere tra loro:

  • c'e' una priorita' intesa come relazione topologica fra oggetti che ha ripercussioni sul loro layout, e che d'ora in poi chiameremo importance (questo oggetto e' piu' importante di quest'altro),
  • c'e una priorita' intesa come prevalenza tra le *proprieta' di uno stesso oggetto, e che chiamiamo priority (la dimensione di questo oggetto e' piu' importante del suo allineamento, quindi l'algoritmo potra' "giocare" in modo abbastanza libero con l'allineamento senza modificare di troppo la dimensione).

Valori numerici: se si mappa normal con 0, si hanno a disposizione tutti i numeri positivi e tutti quelli negativi per definire infiniti livelli di priorita' alta o bassa.

Somiglianze simili

La proprieta' similarity ha come valore la lista delle proprieta' che devono essere simili per gli oggetti figli del group per il quale e' definita.

La lista comprende sia le proprieta' geometriche che quelle topologiche: ad esempio, definire che gli oggetti devono avere una importance simile significa che non ce ne deve essere uno che spicca piu' degli altri.

In particolare, anche la stessa similarity puo' essere nella lista: cio' significa che gli oggetti figli (che saranno a loro volta dei group) dovranno avere lo stesso valore di similarity (o un valore simile) e quindi gli oggetti al terzo livello di profondita' avranno in comune alcune caratteristiche, anche se fanno parte di gruppi diversi.

  • group similarity="similarity"
    • group 1
      • object A
      • object B
      • object C
      • object D
    • group 2
      • object E
      • object F
    • group 3
      • object G
      • object H
      • object I

I valori di similarity dei gruppi 1, 2 e 3 dovranno essere simili, ad esempio saranno tutti e tre width; per cui i vari oggetti A, B, ...., I avranno tutti larghezza simile, anche se magari quelli del primo gruppo sono organizzati in cerchio, quelli del secondo in verticale e quelli del terzo in orizzontale.

Livelli di astrattezza dei valori

I valori delle varie proprieta' possono avere un diverso grado di astrattezza in questa scala (dal piu' concreto al piu' astratto):

  1. unita' di misura geometrica (centimetri, millimetri, pollici, punti, pixel)
  2. unita' di misura relativa (em fa riferimento alla dimensione corrente del font)
  3. percentuale rispetto al valore del contenitore
  4. percentuale (o lunghezza) relativa al canvas
  5. valore topologico

Un paio di dubbi:

[LF] Forse pixel non andrebbe insieme alle altre unita' di misura, dato che dipende dalla risoluzione di output: una dimensione di 80 pixel e' pari a circa un pollice se l'output e' uno schermo (risoluzione tipica 72 o 96 dpi), molto meno se l'output e' un pdf ad alta definizione per la stampa (risoluzione di qualche centinaio di dpi). Quindi forse pixel e' a livello 0.

[LF] Durante l'incontro e' stato detto che non ci devono essere dimensioni "assolute", cioe' senza unita' di misura. Ma in SVG e' possibile definire le dimensioni della viewport (cioe' della porzione visibile del canvas) con numeri puri, e quindi i numeri senza unita' di misura potrebbero quindi riferirsi a questi valori.

Albero delle proprieta' topologiche / geometriche

Prime distinzioni (questo primo elenco non e' stato cambiato)

  • Layout e Skin
  • Relazioni gerarchiche e di pari livello (ipotattiche e paratattiche)
  • ProprietÓ topologiche alte ipotattiche:
    • containment (c is within P)
  • ProprietÓ topologiche alte paratattiche:
    • similarity (a looks like b)
    • priority (a is more important than b)
    • grouping (a is with b)
    • sequencing (a is before/after b)
  • proprietÓ topologiche basse
    • alignment (a has the side or the center in the same position as b)
    • symmetry
    • similaritÓ dimensionale
  • proprietÓ geometriche alte
    • left/right
    • over/below
  • proprietÓ geometriche basse
    • posizione (x0, y0)
    • dimensione (w,h)
    • layout-modifying skin properties (e.g. font-size)

Gerarchia delle proprietÓ topologiche (riorganizzato):

  • grouping
    • similarity
      • size (area?)
      • shape
        • aspect ratio
      • skin (tutte le proprita' che non cambiano il layout: colore, ...)
    • importance
      • size
      • position
        • center/left/right/top/bottom
      • skin
      • existence
    • sequencing (ordine relativo tra gli oggetti di un gruppo)
      • left/right
      • above/below
      • alignment
        • vertical/horizontal
      • approximate alignment
        • vertical/horizontal
      • order (??????)
      • layout
        • column
        • row
        • cell/table
        • circle
        • star
        • triangle
    • proximity
      • weak/strong

Al termine della discussione, non e' ancora ben chiaro il rapporto esistente tra sequencing e layout: quale e' piu' generale dell'altro?

[LF] Un'osservazione che mi e' venuta in mente dopo la riunione: i layout che abbiamo individuato hanno diversi gradi di ortogonalita' rispetto all'allineamento degli oggetti. Dire che abbiamo una lista orizzontale lascia libere tutte le opzioni riguardanti l'allineamento orizzontale tra gli oggetti ma impedisce qualsiasi tipo di alineamento verticale (e viceversa), in un layout tabulare probabilmente sono liberi gli allineamenti in entrambe le direzioni (le "celle" sono dei "contenitori invisibili" dentro cui gli oggetti sono liberi di fluttuare), un layout a cerchio non consente di indicare nessun allineamento senza perdere completamente il suo senso.

Continua in DiscussioneDel31Maggio2007
to top


You are here: Tesi > EditorTALL > DiscussioneDel22Nov2006 > DiscussioneDel29Marzo2007

to top

Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Fabio's Wiki? Send feedback