Styling using ISO15926 Part templates and SVG/CSS?

Moderators: Keith Willshaw, Andrew Prosser and Adrian Laud
Post Reply
Message
Author
Andrew.Prosser

Styling using ISO15926 Part templates and SVG/CSS?

#1 Post by Andrew.Prosser »

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 :-

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

HansTeijgeler
Posts: 283
Joined: Sun Jan 22, 2012 10:02 pm

Re: Styling using ISO15926 Part templates and SVG/CSS?

#2 Post by HansTeijgeler »

Here is the code as I think it should be:

Code: Select all

<!-- Style Class declaration -->
<dm:ClassOfInformationPresentation rdf:about="MyEquipmentLayerStyle">
	<rdf:type rdf:resource="&owl;Class"/>
</dm:ClassOfInformationPresentation>

<!-- Style Class definition -->
<tpl:PresentationDetails rdf:about="T07184c90-212f-11e4-8c21-0800200c9a66">
	<rdf:type rdf:resource="&owl;Thing"/>
	<tpl:hasObject rdf:resource="MyEquipmentLayerStyle"/>
	<tpl:valStyle>stroke:#123456; fill:#123456;</tpl:valStyle>
</tpl:PresentationDetails>

<!-- PolyLine declaration -->
<geom:CanonicallyParameterizedPolyline rdf:about="PL1">
	<rdf:type rdf:resource="&owl;Class"/>
</geom:CanonicallyParameterizedPolyline>

<!-- Relationship between Polyline and style class -->
<tpl:PresentationOfThing rdf:about="Tb9001f50-212f-11e4-8c21-0800200c9a66">
	<rdf:type rdf:resource="&owl;Thing"/>
	<tpl:hasObject rdf:resource="PL1"/>
	<tpl:hasPresentation rdf:resource="MyEquipmentLayerStyle"/>
</tpl:PresentationOfThing>

<!-- Polyline definition -->
<tpl:CanonicallyParameterisedPolylineTemplate rdf:about="T5f259160-212d-11e4-8c21-0800200c9a66">
	<rdf:type rdf:resource="&owl;Thing"/>
	<tpl:hasClassified rdf:resource="PL1"/>
	<tpl:hasVertexListOfPolyline rdf:parseType="Collection">
		<rdf:Description rdf:about="MSP5"/>
		<rdf:Description rdf:about="MSP6"/>
		<rdf:Description rdf:about="MSP7"/>
		<rdf:Description rdf:about="MSP8"/>
	</tpl:hasVertexListOfPolyline>
</tpl:CanonicallyParameterisedPolylineTemplate>

</rdf:RDF>
I want to draw your attention to template DefinitionOfShapeOfClassOfIndividual (http://www.15926.org/templatespecs/CL-SHAPE-06.xml) that Duhwan Mun and myself developed in order to be able to link the world of ClassOfIndividual with the world of geometry.
DefinitionOfShapeOfIndividual (http://www.15926.org/templatespecs/IN-SHAPE-03.xml) is the counterpart for the definition of the shape of an individual physical object. In case you are interested in these templates, please contact Duhwan for implementation details.

Post Reply