- From: Markus Lanthaler <markus.lanthaler@gmx.net>
- Date: Wed, 12 Oct 2011 16:34:23 +0200
- To: "'Gregg Kellogg'" <gregg@kellogg-assoc.com>
- Cc: "'Olivier Grisel'" <olivier.grisel@ensta.org>, "'Linked JSON'" <public-linked-json@w3.org>
Sorry for the late reply.. I wasn't online for a couple of days. > If the processing rules basically call for substituting a @context IRI > with the content of the @context block at the referenced document, then > requiring the processor to re-order the array so that referenced > contexts are processed before in-line seems un-natural. In reality, I > think this is an academic concern, and we can state that best practice > is to process the contexts (remote or local) in the order listed. That would be acceptable for me even though I don't really like the fact that remote documents overwrite local settings as this is a source of hard-to-debug errors (remote documents can change). Just stating that it is a best practice is not enough though. If we would like to do it that way, we should specify it to enforce consisting processing. We also have to mention how recursions are (or should be) handled. If we would enforce that remote inclusions have to be listed first (just as in CSS @import statements) it would be easy to see that rules in the context itself override rules in the imported contexts. If that imported context was already loaded we could safely ignore it. > CSS does not define an order except in most-specific to least specific, > in-tag or in-document before loaded (AFAIR). JSON does specify an > order. That's not true. CSS [1] has quite strict rules: - In CSS 2.1, any @import rules must precede all other rules - Cascading order [...] Sort according to importance and origin [...] Sort rules with the same importance and origin by specificity of selector [..] Finally, sort by order specified: if two declarations have the same weight, origin and specificity, the latter specified wins. Declarations in imported style sheets are considered to be before any declarations in the style sheet itself. > In reality, I would expect that there would only be two entries, a > remote and a local, but test cases could check for multiple remote and > multiple local with order-dependent definitions. If we don't specify that limit there will be more. [1] http://www.w3.org/TR/CSS2/cascade.html -- Markus Lanthaler @markuslanthaler
Received on Wednesday, 12 October 2011 14:34:55 UTC