Styling using ISO15926 Part templates and SVG/CSS?
Posted: Tue Aug 05, 2014 12:12 pm
The Geometry SIG have a need to apply presentation style to the geometry defined by templates used in the exchange of ISO15926 Part 7 (via Part8) information. It was not deemed by the group in the interests of the ISO15926 community to define a template specific way of defining presentation styles. In preference the Geometry SIG would like to use well known styling definitions from W3C standards expressed in template roles to facilitate rapid development and wider acceptance of the exchange of geometry using ISO15926. In particular the Geometry SIG felt that it would not be beneficial to declare all styling terms in the RDL such as available fonts, colours and line style options which are already well defined in W3C standards.
Proposal
The Geometry SIG proposes that the following structures are used for styling Geometry in Part 7/8
The object being styled (Geometry/Symbol/Label/Individual) will be related to an instance of ClassOfInformationPresentation. This is analogous to a css class. The ClassOfInformationPresentation is then defined as having a style which takes the same form as an inline css declaration in SVG.
For example :-
References
SVG Specification : http://www.w3.org/TR/SVG
SVG Styling : http://www.w3.org/TR/SVG/styling.html
SVG style attribute : http://www.w3.org/TR/SVG/styling.html#StyleAttribute
SVG Styling properties : http://www.w3.org/TR/SVG/propidx.html
Proposal
The Geometry SIG proposes that the following structures are used for styling Geometry in Part 7/8
The object being styled (Geometry/Symbol/Label/Individual) will be related to an instance of ClassOfInformationPresentation. This is analogous to a css class. The ClassOfInformationPresentation is then defined as having a style which takes the same form as an inline css declaration in SVG.
For example :-
Code: Select all
<!-- PolyLine -->
<owl:Thing>
<rdf:type rdf:resource="&tpl;CanonicallyParameterisedPolylineTemplate" />
<tpl:hasClassified rdf:nodeID="PL1"/>
<tpl:hasVertexListOfPolyline rdf:parseType="Collection">
<owl:Thing rdf:nodeID="MSP5" />
<owl:Thing rdf:nodeID="MSP6" />
<owl:Thing rdf:nodeID="MSP7" />
<owl:Thing rdf:nodeID="MSP8" />
</tpl:hasVertexListOfPolyline>
</owl:Thing>
<!-- Relationship between PolyLine and style class -->
<owl:Thing>
<rdf:type rdf:resource="&tpl;PresentationOfThing"/>
<tpl:hasObject rdf:nodeID="PL1"/>
<tpl:hasPresentation rdf:nodeID="MyEquipmentLayerStyle"/>
</owl:Thing>
<!-- Style Class definition -->
<owl:Thing rdf:nodeID="MyEquipmentLayerStyle">
<rdf:type rdf:resource="&pt2:ClassOfInformationPresentation"/>
</owl:Thing>
<owl:Thing>
<rdf:type rdf:resource="PresentationDetails"/>
<tpl:hasObject rdf:nodeID="MyEquipmentLayerStyle"/>
<tpl:valStyle>stroke:#123456; fill:#123456;</tpl:valStyle>
</owl:Thing>
References
SVG Specification : http://www.w3.org/TR/SVG
SVG Styling : http://www.w3.org/TR/SVG/styling.html
SVG style attribute : http://www.w3.org/TR/SVG/styling.html#StyleAttribute
SVG Styling properties : http://www.w3.org/TR/SVG/propidx.html