Styling class proposal

From: Ryan Lee <ryanlee_at_w3.org>
Date: Fri, 10 Jun 2005 16:06:49 -0400

Apologies for not getting this out sooner, I was on vacation earlier in
the week.

The key difference between this proposal and the 'box model' as we
earlier defined it is that the assumption of containment is removed and
CSS styling instructions are completely left out. What that leaves is a
mechanism for attaching a symbol (what in CSS would end up as a class
name) to an arbitrary part of the graph (e.g., a specific resource) or a
more general aspect of the graph (e.g., all predicates).

The rdfs:resource for all of the following is a string-like datatype
that allows only XHTML class-valid characters. I am using
'fresnel:Transform' to differentiate between :Styles as defined in the
manual and the content transform type things we've been discussing.

# For any resource selected via a group
:groupResourceHook rdfs:domain fresnel:Group .

# For any predicate selected via a group
:groupPropertyHook rdfs:domain fresnel:Group .

# For any object value selected via a graph
:groupValueHook rdfs:domain fresnel:Group .

# For any output label
:labelHook rdfs:domain fresnel:Group .

# For resources selected by a lens
:lensResourceHook rdfs:domain fresnel:Lens .

# For predicates
:propertyHook rdfs:domain fresnel:Transform .

# For values of predicates
:valueHook rdfs:domain fresnel:Transform .

Example Fresnel:

[[[

my:peopleGroup a fresnel:Group ;
   fresnel:groupResourceHook "my-fr-resources"^^fresnel:css-class ;
   fresnel:groupPropertyHook "my-fr-properties"^^fresnel:css-class ;
   fresnel:groupLiteralHook "my-fr-values"^^fresnel:css-class ;
   fresnel:labelHook "my-fr-labels"^^fresnel:css-class .

my:peopleLabelLens a fresnel:Lens ;
   fresnel:lensDomain foaf:Person ;
   fresnel:purpose fresnel:labelLens ;
   fresnel:showProperties foaf:name .

my:peopleLens a fresnel:Lens ;
   fresnel:lensDomain foaf:Person ;
   fresnel:purpose fresnel:defaultLens ;
   fresnel:group my:peopleGroup ;
   fresnel:showProperties ( foaf:name
                            foaf:mbox
                            [ a fresnel:PropertyDetails ;
                              fresnel:property foaf:knows ;
                              fresnel:sublens my:friendsLens ] ) .

my:friendsLens a fresnel:Lens ;
   fresnel:lensDomain foaf:Person ;
   fresnel:group my:peopleGroup ;
   fresnel:showProperties ( foaf:name
                            foaf:mbox ) .

my:knowsTransform a fresnel:Transform ;
   fresnel:transformProperty foaf:knows ;
   fresnel:propertyHook "foaf-knows"^^fresnel:css-class ;
   fresnel:valueHook "foaf-known"^^fresnel:css-class ;
   fresnel:valueSeparator [ fresnel:contentAfter "|" ].

]]]

Example (bloated) XHTML output run through the Fresnel engine in my
head; note that this is actually a containment structure, but that isn't
the only way the output can be done:

<div class="my-fr-resources">
   <div class="my-fr-labels">John Doe</div>
   <div class="my-fr-properties">
      <div class="my-fr-labels">name</div>
      <div class="my-fr-values">
        John Doe
      </div>
   </div>
   <div class="my-fr-properties">
      <div class="my-fr-labels">mbox</div>
      <div class="my-fr-values">
        <div class="my-fr-resources">
           <div class="my-fr-labels">mailto:A_at_...</div>
        </div>
        <div class="my-fr-resources">
           <div class="my-fr-labels">mailto:B_at_...</div>
        </div>
      </div>
   </div>
   <div class="my-fr-properties foaf-knows">
      <div class="my-fr-labels">knows</div>
      <div class="my-fr-values">
        <div class="my-fr-resources foaf-known">
           <div class="my-fr-labels">Jane Doe</div>
           <div class="my-fr-properties">
             <div class="my-fr-labels">mbox</div>
             <div class="my-fr-values">
               <div class="my-fr-resources">
                 <div class="my-fr-labels">mailto:C_at_...</div>
               </div>
             </div>
           </div>
        </div>
        |
        <div class="my-fr-resources foaf-known">
           <div class="my-fr-labels">Alyssa P. Hacker</div>
        </div>
      </div>
   </div>
</div>

-- 
Ryan Lee                 ryanlee_at_w3.org
W3C Research Engineer    +1.617.253.5327
http://simile.mit.edu/
Received on Fri Jun 10 2005 - 20:04:56 EDT

This archive was generated by hypermail 2.3.0 : Thu Aug 09 2012 - 16:40:51 EDT