W3C home > Mailing lists > Public > public-openannotation@w3.org > January 2013

Re: Style Issue

From: Robert Sanderson <azaroth42@gmail.com>
Date: Wed, 2 Jan 2013 11:14:17 -0700
Message-ID: <CABevsUEbCc0ZwcxxGk76yzS4kUeC62tcSf6H+9TvmeWqqHM7fA@mail.gmail.com>
To: t-cole3 <t-cole3@illinois.edu>
Cc: public-openannotation <public-openannotation@w3.org>
Looking further, there's the (very old) gss:style predicate:
    http://www.w3.org/2001/11/IsaViz/gss/gssmanual.html#styles

We could use that, which is at least a W3C page if not a recommendation.

Rob






On Wed, Jan 2, 2013 at 11:02 AM, Robert Sanderson <azaroth42@gmail.com>wrote:

>
> Hi Tim,
>
> Many thanks for the feedback!
>
>
> On Wed, Jan 2, 2013 at 10:46 AM, Tim Cole <t-cole3@illinois.edu> wrote:
>
>> I agree with your analysis that the previous solution for style has flaws
>> that need to be addressed.****
>>
>> [...] but I worry a little about the minting of the new property
>> oa:styleClass and thinking about how it will be used.
>>
>
> Agreed. I looked for existing RDF predicates, but didn't find any that
> were appropriate.
>
> **1.       **What are the implications for an annotation serialized in
>> XHTML+RDFa (i.e., where the XHTML class attribute is intrinsically
>> available for styling)? Do we have to mint our own styleClass property? Or
>> could we more simply leverage the existing
>> http://www.w3.org/1999/xhtml:class as the property?
>>
>
> Is that valid RDF? If it is, then I'm (personally) in favor of using it
> instead of inventing our own identical predicate.  While I agree that it's
> possible to use in other XML based contexts, I'd like to be certain it's
> possible to import something defined as an XML attribute into RDF as a
> predicate.
>
>  2.       **The value of a styleClass property of a target or body
>> resource is presumably in almost all cases specific to an individual
>> annotation or finite set of annotations, right?
>>
>
> Yes.  Otherwise we could attach it to the resource directly, but then it
> would be of global scope.  This would become problematic when there was an
> annotation with a style that defined blocks for (say) "Body" and "Target",
> and then two different annotations associate this blocks with the same
> resource.  It could happen when a client has default styling rules it
> applies, and the same client is used to create the two annotations.
>
>
>> So the domain of oa:styleClass will always be (practically speaking)
>> oa:SpecificResource? So you'd almost always use the oa:SepcificResource
>> construction even in the absence of Selector, Scope and State?
>>
>
> Yes. And agreed that this is a shame, compared to the @document url() rule
> construction, but ...
>
>
>>  Probably moot because I can't come up with a practical use case where
>> you'd want to apply style on a target or body that was not an
>> oa:SpecificResource.
>>
> ... it does seem like the appropriate compromise given this point.
>
> Thanks again, and we would welcome any other feedback on this issue!
>
>
> As a logistical point, we intend to make the new draft available to the
> list for further feedback before the end of the week.  We would love to
> then get feedback in order to publish it before the beginning of February,
> and hopefully closer to the middle of January.
>
> Many thanks,
>
> Rob
>
>
> *From:* Robert Sanderson [mailto:azaroth42@gmail.com]
>> *Sent:* Thursday, December 20, 2012 10:15 AM
>> *To:* public-openannotation
>> *Subject:* Style Issue****
>>
>> ** **
>>
>> ** **
>>
>> Dear all,****
>>
>> ** **
>>
>> While writing up the new method of attaching Styles to Annotations, we
>> ran into the following unanticipated issues.  We feel this makes the
>> current solution for style unworkable, and propose a slight modification
>> that should make things easier all round.****
>>
>> ** **
>>
>> Issues:****
>>
>> ** **
>>
>> 1.  Styles reference the resources in the graph by URI, using the CSS
>> @document rule.  While this makes matching easy, it becomes impossible with
>> the republishing method that is recommended in the specification.****
>>
>> ** **
>>
>> For example, a system publishes an Annotation A with an embedded body
>> URN:B.  URN:B is thus the URI that is in the Style.****
>>
>> ** **
>>
>> A second system harvests the Annotation, republishes it at A2, and the
>> body as a web resource at HTTP URI B2.  It should also assert that B2
>> equivalentTo URN:B.  So now the style refers to the equivalent resource,
>> not the body itself and systems will always have to check both.****
>>
>> This isn't the end, however, as this is likely to happen multiple times
>> in a distributed system.****
>>
>> The Style could be updated, but it might be a web resource that is
>> maintained outside of the annotation system and these changes would not be
>> reflected in the copies.  It also relies on consuming systems to understand
>> the content of Styles, which seems above and beyond what they should be
>> expected to do.****
>>
>> ** **
>>
>> ** **
>>
>> 2.  As Styles refer to the URI of the resource, they cannot be re-used
>> across multiple annotations.  This means that there necessarily must be one
>> style per annotation, which is contrary to most uses of CSS and really to
>> the web architecture in general.  So every system that has a style for its
>> annotations must create a new style resource for each annotation, rather
>> than just a default few.****
>>
>> ** **
>>
>> ** **
>>
>> 3.  Following from 2, there is no reason to *not* embed the style if it
>> is tied 1:1 to the Annotation. This defeats the purpose of some of the
>> changes from the first draft, eg to make it a valid CSS resource rather
>> than just the value block.  It also brings up a (lesser)
>> documentation/learning issue that to understand Styles you need to
>> understand the Content in RDF model, which otherwise is not necessary.***
>> *
>>
>> ** **
>>
>> We consider the sum of these issues to be a show-stopper.****
>>
>> Our proposal for how to adapt it is:****
>>
>> ** **
>>
>> 1.  Keep the Style resource a valid CSS document attached to the
>> Annotation, still using oa:styledBy, as in the current proposal.****
>>
>> ** **
>>
>> 2.  Instead of using the complex @document url() rule construction,
>> instead use the more familiar class name construction.****
>>
>> ** **
>>
>> 3.  Have a property in the Annotation graph on the resources to be styled
>> that records the class name.   Systems then match the property to the
>> respective name in the CSS document.****
>>
>> ** **
>>
>> This solves Issue 1 because the property can be reattached easily to the
>> new resource, just like all of the other properties and relationships.  At
>> the same time, we use only basic CSS constructions rather than the CSS
>> Level 3 @document construction.****
>>
>> ** **
>>
>> It solves Issue 2 because the class names can be re-used across multiple
>> annotations.  I also makes it easier to swap styles across a range of
>> annotations -- simply change the referenced CSS resource and they all
>> change, rather than the current method (edit all of the embedded CSS blobs)
>> or the first version (change the references on all of the Specific
>> Resources).****
>>
>> ** **
>>
>> It solves Issue 3 by solving Issue 2, as the style is not tied 1:1 with
>> the Annotation.****
>>
>> ** **
>>
>> Thus:****
>>
>> _:Anno a oa:Annotation ;****
>>
>>   oa:styledBy <Style1> ;****
>>
>>   oa:hasTarget <SpTarget1> ;****
>>
>>   oa:hasBody <Body1> .****
>>
>> ** **
>>
>> <SpTarget1> a oa:SpecificResource ;****
>>
>>   oa:hasSelector <Selector1> ;****
>>
>>   oa:styleClass "red" ;****
>>
>>   oa:hasSource <Target1> .****
>>
>> ...****
>>
>> ** **
>>
>> Where Style1 has the representation:****
>>
>> .red { color : red }****
>>
>> ** **
>>
>> This seems to capture the best parts of the current proposal while
>> solving the issues that have come up with it.****
>>
>> ** **
>>
>> Please let us know any thoughts or comments on this revised approach.****
>>
>> ** **
>>
>> Many thanks,****
>>
>> ** **
>>
>> Rob, Paolo and Herbert****
>>
>>   ****
>>
>
>
Received on Wednesday, 2 January 2013 18:14:46 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 2 January 2013 18:14:47 GMT