I am the creator of SensorML, an international standard for 
describing sensor systems and processes surrounding the act of 
measurement. Fo more info on SensorML chack out: 
http://vast.uah.edu/SensorML

I am also a newcomer to the RelaxNG Forum. I have looked over the 
archive of messages so I hope that I'm not bringing up issues that 
have already been discussed.

A bit of background on my thoughts:

(1) SensorML is defined in XML Schema (i.e. xsd) but is a very 
general framework for defining sensors and processes. We rely heavily 
on "soft-typing" for creating profiles and XML Instances (i.e., we 
don't derive new elements when restricting but rather depend on 
references to terms defined in online disctionaries and ontologies.

(2) We greatly prefer RelaxNG for creating profiles (i.e. 
restrictions) in SensorML in order to define various reusable sensor 
components, sensor systems, and process models. Why? XML Schema is a 
bitch to derive profiles through restriction, and RelaxNG provides 
more flexibility and a much nicer transition between Schema and 
Instances.

(3) Thus we have created a RelaxNG version of SensorML as well as 
having begun experiementing with creating profiles for components and 
process models. These can be found at:

http://vast.uah.edu/svn/vast/RelaxNG-v1.0/

So here are my questions:

(1) We sort of feel that the division between XML Schema and XML 
Instances is too solidly defined. That is, we have the need to begin 
creating profiles in which we define the general rules as well as 
some of the value for properties. There may be several such 
profile "steps" before an instance is ultimately defined.

For example, we might wish to create a profile from the general 
SensorML schema that first defines the rules for any type of 
thermometer (ie. defines appropriate properties to include, etc). A 
manufacturer might then wish to further restrict this profile to 
include some of the values for these properties plus perhaps add some 
additional properties (if allowed by the thermometer profile). 
Finally the user might wish to add the final information for a 
particular thermometer (e.g. serial number, location, etc.) such that 
all options are now removed and we can in in essence output an XML 
instance. Thus, in this scenario, the division between schema and 
instance begins to blur.

RelaxNG seems to be much better suited for this. Has anyone else 
considered this approach as a viable direction for XML and an 
application of RelaxNG?

(2) We wish to have an editor for helping us create these profiles. 
The general SensorML rng schema uses many references (i.e. ref 
properties) within the schema, as will many of the profiles. It would 
be very nice to have an editor where we could ask the editor to 
resolve a particular reference so that we could maybe include values 
or other restrictions to that section within the profile. Do you know 
of any RelaxNG editors that allow that and which handle editing with 
this philosophy?

(3) I know that the RelaxNG philosophy views inheritance as a bad 
thing, but is there any way to validate that a profile is a valid 
restriction of an existing rng schema?

Thanks. Sorry for such a long request.
Mike Botts


Reply via email to