Issues for Mailing list of the Robotic Localization Service (RLS) Revision Task Force

To comment on any of these issues, send email to rls-rtf@omg.org. (Please include the issue number in the Subject: header, thusly: [Issue ###].) To submit a new issue, send email to issues@omg.org.

List of issues (green=resolved, yellow=pending Board vote, red=unresolved)

List options: All ; Open Issues only; or Closed Issues only

Issue 16173: Parent class of Architecture::DirectSymbol and Architecture::SymbolRef
Issue 16174: Inconsistency in structure of Symbolic and Numeric Value for Position class
Issue 16175: Relation between Architecture::MobileDatum and Architecture::InStream
Issue 16176: Parent class of Architecture::MobileOperation
Issue 16177: Description on symbolic extension
Issue 16178: Representation of identity coordinate axis
Issue 16179: Multiplicity of Architecture::WeightedModel
Issue 16180: Architecture::Matrix
Issue 16182: Operations for Architecture::ErrorElement
Issue 16183: Operation for Architecture::SymbolicIdentityCRS
Issue 16184: CRS definition for pose information
Issue 16185: Definition of don't-cares
Issue 16186: Obtaining configuration of Interface::Stream instances
Issue 16187: Axis definition for polar coordinate system
Issue 16189: Multiplicity of Architecture::WeightedModel.weight
Issue 16190: Usage of Architecture::StaticRelativeCRS
Issue 16191: Description of UniformGaussian class
Issue 16192: Typo in Parameter class definition
Issue 16193: Source/destination type of ErrorTypeOperation
Issue 16194: Frequency attribute in StreamAbility
Issue 16195: Relation between DataMappingOperation and ElementSpecification
Issue 16196: InStream & OutStream
Issue 16197: C++ PSM arguments
Issue 16198: Service::connect() confusion
Issue 16199: Ambiguity in InterfaceBase parameters
Issue 16200: The usage of ParameterValue class is not clear
Issue 16201: Specifying data formats
Issue 16202: Ambiguity in CRS usage
Issue 16203: Auto configuration between RoLo Service modules
Issue 16204: Confusion in StreamAbility::dataFormat and StreamAbility::dataSpec
Issue 16205: Parent of Service class
Issue 16206: Obligation of AttributeSet::attrs & AttributeSet::def
Issue 16207: Type of InterfaceBase::get/setParameterValues() argument in C++ PSM
Issue 16208: Formal definition of XML
Issue 16209: Architecture::Ability usage

Issue 16173: Parent class of Architecture::DirectSymbol and Architecture::SymbolRef (rls-rtf)

Click here for this issue's archive.
Source: Shibaura Institute of Technology (Mr. Takeshi Sakamoto, sakamoto(at)globalassist.co.jp)
Nature: Uncategorized Issue
Severity:
Summary:
In Figure7.3-Identity Information, classes Architecture::DirectSymbol and Architecture::SymbolRef for representing symbolic values are defined as subclasses of ISO19111::IO_IdentifiedObjectBase. However, ISO19107::DirectPosition, ISO19107::GM_PointRef, which are the counterparts for numeric values are defined as 'DataType' and are not subclass of ISO19111::IO_IdentifiedObjectBase, thus leading to inconsistent definitions.
Also, Architecture::Position class (Figure7.8-RoLo Architecture) is defined to be able to hold either a symbolic value (Architecture::SymbolicPosition) or a numeric value (ISO19107::GM_Position). However, while Architecture::SymbolicPosition inherits ISO19111::IO_IdentifiedObjectBase, ISO19107::GM_Position does not, thus showing inconsistency. 


Resolution: As Architecture::Position class is inherited from ISO19111::IO_IdentifiedObject, there shall be small requirements for these classes to hold identity information by itself. Modify Architecture::DirectSymbol, Architecture::SymbolRef and Architecture::SymbolicPosition definitions as not to be subclass of IO_IdentifiedObjectBase.
Revised Text: see pages 6 through 8 of dtc/2011-06-10
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Issue 16174: Inconsistency in structure of Symbolic and Numeric Value for Position class (rls-rtf)

Click
here for this issue's archive.
Source: Shibaura Institute of Technology (Mr. Takeshi Sakamoto, sakamoto(at)globalassist.co.jp)
Nature: Uncategorized Issue
Severity:
Summary:
In Figure 7.10 - RoLo Architecture, Position class is defined to hold both symbolic and numeric values. While Symbolic Position class for holding symbolic values is derived from IO_IdentifiedObjectBase [ISO19111], numeric values are held by GM_Position [ISO19111] class which is not derived from IO_IdentifiedObject. Thus there is an asymmetry in the two definitions.


Resolution: See issue 16173 for disposition
Revised Text:
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Issue 16175: Relation between Architecture::MobileDatum and Architecture::InStream (rls-rtf)

Click
here for this issue's archive.
Source: Shibaura Institute of Technology (Mr. Takeshi Sakamoto, sakamoto(at)globalassist.co.jp)
Nature: Uncategorized Issue
Severity:
Summary:
In Figure 7.1 - Relative and Mobile coordinate reference system, Architecture::InStream and Architecture::MobileDatum are related as composition. However, as Architecture::InStreamcan exist by itself, the relation shall be weaker. Possibly modify Architecture::MobileDatum to use InStream (directed assotiation).


Resolution:
Revised Text:
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Discussion:
Here, MobileDatum.inStream is owned by MobileDatum, not referred, As this
InStream belongs to the datum. Therefore, using composition is suitable.
Disposition: Closed, no change


Issue 16176: Parent class of Architecture::MobileOperation (rls-rtf)

Click
here for this issue's archive.
Source: Shibaura Institute of Technology (Mr. Takeshi Sakamoto, sakamoto(at)globalassist.co.jp)
Nature: Uncategorized Issue
Severity:
Summary:
In Figure 7.2 - Mobile CRS operations, Architecture::MobileOperation is defined as a subclass of ISO19111::CC_Transformation. However, it may be better to define as a subclass of much general ISO19111::CC_SingleOperation. (Note: ISO19111::CC_CoordinateOperation is not appropriate as a parent class as if we did so, Architecture::MobileOperation  cannot be elements of ISO19111::CC_ConcatenatedOperation instances). 


Resolution:
Revised Text:
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Discussion:
First, ISO19111::CC_ConcatenatedOperation is defined to hold a sequence of
ISO19111::CC_CoordinateOperation, thus the candidate to change
Architecture::MobileOperation’s parent class can be
ISO19111::CC_CoordinateOperation, not just CC_SingleOperation.
However, ISO19111::CC_Transformation which is the parent class of
Architecture::MobileOperation in RLS 1.0 is defined as ‘A coordinate operation
through which the input and output coordinates are referenced to different
datums.’ [ISO19111] As Architecture::MobileOperation maps between mobile
CRS and static CRS or between mobile CRS and different mobile CRS, the
current inheritance relationship is appropriate.
Disposition: Closed, no change


Issue 16177: Description on symbolic extension (rls-rtf)

Click
here for this issue's archive.
Source: JARA (Mr. Shuichi Nishio, nishio(at)ieee.org)
Nature: Uncategorized Issue
Severity:
Summary:
The following description on symbolic extension may be insufficient (in P.19, third paragraph):
"The actual coordinate value holding structure in GIS standard [ISO19107] only allows numeric values as coordinate value elements. Thus, similar structures in use with symbolic values are also defined."


Resolution:
Revised Text:
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Discussion:
The description seems to be sufficient.
Disposition: Closed, no change


Issue 16178: Representation of identity coordinate axis (rls-rtf)

Click
here for this issue's archive.
Source: Shibaura Institute of Technology (Mr. Takeshi Sakamoto, sakamoto(at)globalassist.co.jp)
Nature: Uncategorized Issue
Severity:
Summary:
When identities are to be limited to finite set of values, such as a set of predefined symbols or discrete numerical values, how can this be represented? 


Resolution: Define a new class Architecture::SetCoordinateSystemAxis for representing axis with finite set of values. In addition, for convenience, add two frequently used axes StringSetCoordinateSystemAxis and IntegerSetCoordinateAxis.
Revised Text: see pages 13 - 15 of dtc/2011-06-10
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Issue 16179: Multiplicity of Architecture::WeightedModel (rls-rtf)

Click
here for this issue's archive.
Source: JARA (Mr. Shuichi Nishio, nishio(at)ieee.org)
Nature: Uncategorized Issue
Severity:
Summary:
In Figure 7.6 - RoLo Error, multiplicity of Architecture::WeightedModel for Architecture::LinearMixtureModel is defined as "1..*". However, as there may be cases that no model exists, it is better to define it as "0..*". 


Resolution: Concerning also issue 16189 where the multiplicity of weight attribute in Architecture::WeightedModel is raised, we perform the following modifications: 1) Define a new Architecture::Model class which is derived from Architecture::PositionElement. Although no attributes or methods added here, this class is for representing probability distributions or models, with a position in the space and error distribution. 2) Modify Architecture::WeightedModel class to be derived from Architecture::Model class and remove the posElem attribute (this is not necessary any more due to its parent class-). Thus, only models with weights are represented by the WeightedModel class and thus the ‘weight’ attribute is left as mandatory. 3) Modify Architecture::LinearMixtureModel class to aggregate Architecture::Model instances instead of Architecture::WeightedModel, so that when the weight in the models shall not be specified. the Model class instance shall be used. At the same time, modify the multiplicity of the ‘models’ attribute as “0..*.” Also, add some description in the definition of LinearMixtureModel class to indicate how the aggregation of non-weighted models shall be interpreted.
Revised Text: see pages 17 - 19 of dtc/2011-06-10
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Issue 16180: Architecture::Matrix (rls-rtf)

Click
here for this issue's archive.
Source: JARA (Mr. Shuichi Nishio, nishio(at)ieee.org)
Nature: Uncategorized Issue
Severity:
Summary:
In Figure 7.8 - RoLo Error, Architecture::Matrix is defined as a subclass of IO_IdentifiedObjectBase. However, as it is quite unlikely that instances of this class requires to be identified, it is better to define it as a DataType.


Resolution: Change Architecture::Matrix to a DataType and remove inheritance from IO_IdentifiedObjectBase [ISO19111].
Revised Text: see page 21 oof dtc/2011-06-10
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Issue 16182: Operations for Architecture::ErrorElement (rls-rtf)

Click
here for this issue's archive.
Source: Shibaura Institute of Technology (Mr. Takeshi Sakamoto, sakamoto(at)globalassist.co.jp)
Nature: Uncategorized Issue
Severity:
Summary:
In Figure 7.10- RoLo Data Operation, no operation is defined for Architecture ::ErrorElement , except Architecture ::DataMappingOperation. Some operation for transforming error information, as Architecture ::PositionElementOperation for Architecture ::PositionElement, is necessary. 


Resolution:
Revised Text:
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Discussion:
ErrorElement relies on PositionElements, thus an operation only over
ErrorElements cannot be defined. Operation over ErrorElements are handled by
DataOperation as a whole.
Disposition: Closed, no change


Issue 16183: Operation for Architecture::SymbolicIdentityCRS (rls-rtf)

Click
here for this issue's archive.
Source: Shibaura Institute of Technology (Mr. Takeshi Sakamoto, sakamoto(at)globalassist.co.jp)
Nature: Uncategorized Issue
Severity:
Summary:
CRS for symbolic systems are defined in Figure 7.3 - Identity Information as extension to ISO19111. Operations specific to these CS/CRS are missing.


Resolution:
Revised Text:
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Discussion:
In the definition of ISO19111::CC_CoordinateOperation, source
(+coordOperationFrom) and target (+coordOperationTo) domains for conversion
are defined to be ISO19111::SC_CRS, which does not limit its axis to be defined
over numerical values. Thus, ISO19111::CC_CoordinateOperation can be used
for Architecture::SymbolicIdentityCRS and its derivatives. Note that, although
ISO19107::DirectPosition defines its attribute +coordinate as
Sequence<Number> and refers to ISO19111::SC_CRS, ISO19111::SC_CRS or
ISO19111::CC_CoordinateOperation does not depend on
ISO19107::DirectPosition
Disposition: Closed, no change


Issue 16184: CRS definition for pose information (rls-rtf)

Click
here for this issue's archive.
Source: JARA (Mr. Shuichi Nishio, nishio(at)ieee.org)
Nature: Uncategorized Issue
Severity:
Summary:
Explicit CRS definition for pose information is necessary. Especially, the relation between pose CRS and position CRS and its semantics shall be defined

Resolution: In ISO 19111 which RLS is based on, relation between CRSs is defined by using datums and transformations. In this sense, in order to represent pose information, we need to define a new datum. However, we found that generally this is not appropriate as identifying pose is tightly related to its associated position. In the original idea of CSs and CRSs in ISO 19111, CSs implicitly hold transformations that can in most cases be identified trivially. However, when extending this to pose, the necessary transformation becomes not so trivial and thus a much explicit mean for specifying the associated transformation, in combination with ‘position’ transformation, becomes necessary. Moreover, it is only a special case that position and pose information (or transformations) are mathematically independent, i.e., where transformations for position and pose can be defined separately. Therefore, position and pose information shall be represented in combination inseparable from each other. One way is to represent position/pose as a generalized position which is a set of parameters for a transformation that defines a mapping from the base CRS to the resulting position/pose. In this sense, what is called a CS or CRS shall be represented as a transformation ,and coordinate values which we normally call ‘position’ are parameters for the transformation. (for detailed discussion, see [Noda2010]) [Noda2010] Itsuki Noda, Shuichi Nishio, Takashi Tsubouchi, Takeshi Sakamoto and Satoshi Tadokoro, "Mathematical Framework for Localization Information Coordinate Reference System for Robotics", in Proc. of Int. Workshop on Standards and Common Platform for Robotics 2010 (SCPR 2010), 2010. This notion is mathematically much rigid. However, it requires complete reconstruction of the ISO 19111 which RLS is based on. As this is not something to be discussed here, here we propose a much modest modifications. In the future, this shall be discussed in ISO/TC 211. Followings are the modified points: - Add non-normative reference - Add background description (section 7.3 – Architecture Package) - Add two classes (PoseType and PositionPoseCRS) in Architecture Package - Define frequently used pose types - Modify section 7.4.1 – Common Data Format to use the defined pose types and remove figures/descriptions that also appear in previous description - Modify C++ PSM accordingly
Revised Text: see pages 26 - 33 of dtc/2011-06-10
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Issue 16185: Definition of don't-cares (rls-rtf)

Click
here for this issue's archive.
Source: JARA (Mr. Shuichi Nishio, nishio(at)ieee.org)
Nature: Uncategorized Issue
Severity:
Summary:
Classes and objects for using don't' cares are defined in Figure 7.9 - Don't-care classes and objects. However, it may be better to define the subclasses of Architecture::DontCare as DataType, as instances of these classes will be treated as constants

Resolution:
Revised Text:
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Discussion:
The intention is to use only the don’t-care objects, the constants, and not the
classes. The classes are for clearly indicating the nature of don’t-care objects.
Thus, no changes are necessary.
Disposition: Closed, no change


Issue 16186: Obtaining configuration of Interface::Stream instances (rls-rtf)

Click
here for this issue's archive.
Source: JARA (Mr. Shuichi Nishio, nishio(at)ieee.org)
Nature: Uncategorized Issue
Severity:
Summary:
The Interface::StreamAbility instance obtainable from Interface::Stream denotes the ability of each Interface::Stream instance. However, there is no method for obtaining how each instance is configured. Such a method is necessary.


Resolution:
Revised Text:
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Discussion:
Interface::InterfaceBase.getParameterValues() can be used to show configurable
parameters. Thus, no changes are necessary.
Disposition: Closed, no change


Issue 16187: Axis definition for polar coordinate system (rls-rtf)

Click
here for this issue's archive.
Source: Shibaura Institute of Technology (Mr. Takeshi Sakamoto, sakamoto(at)globalassist.co.jp)
Nature: Uncategorized Issue
Severity:
Summary:
ISO19111::CS_PolarCS is to be used for representing polar coordinate systems. However, no specific axis is defined for this coordinate system. 


Resolution:
Revised Text:
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Discussion:
ISO19111::CS_CoordinateSystemAxis can be used for ISO19111::CS_PolarCS.
However, the definition of CS_CoordinateSystemAxis is too limited to GIS usage
and not appropriate for robotics usage. The definition shall be modified in future,
not in RLS, but in the ISO19111.
Disposition: Closed, no change


Issue 16189: Multiplicity of Architecture::WeightedModel.weight (rls-rtf)

Click
here for this issue's archive.
Source: Shibaura Institute of Technology (Mr. Takeshi Sakamoto, sakamoto(at)globalassist.co.jp)
Nature: Uncategorized Issue
Severity:
Summary:
In Figure 7.6 - RoLo Error, multiplicity of Architecture: WeightedModel.weight is fixed to "1". However, in some cases, such as representing result of simple Monte-Carlo sampling, weights may be unnecessary (equal to 1/N), so the multiplicity shall better be specified as optional ("0..1"). 


Resolution: See issue 16179 for disposition
Revised Text:
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Issue 16190: Usage of Architecture::StaticRelativeCRS (rls-rtf)

Click
here for this issue's archive.
Source: Shibaura Institute of Technology (Mr. Takeshi Sakamoto, sakamoto(at)globalassist.co.jp)
Nature: Uncategorized Issue
Severity:
Summary:
The use of 'base' and 'dataSpec' attribute in Architecture::StaticRelativeCRS is not clear.


Resolution:
Revised Text:
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Discussion:
This is actually on attributes in StaticRelativeDatum, not in StaticRelativeCRS. As
in issue 16184, when we see CRSs as realization of transformations and datums
as set of transformation parameters, the description in the StaticRelativeDatum
class table becomes much clearer. Thus, the description here shall be sufficient.

Disposition: Closed, no change


Issue 16191: Description of UniformGaussian class (rls-rtf)

Click
here for this issue's archive.
Source: Shibaura Institute of Technology (Mr. Takeshi Sakamoto, sakamoto(at)globalassist.co.jp)
Nature: Uncategorized Issue
Severity:
Summary:
The note in Table 7.35 - UniformGaussian class says "Dimensions of the cov attribute derived from class Gaussian shall all be equal to 1. That is, nRow = nCol = 1." However, as a covariance matrix is diagonal from its definition, the number of rows/columns shall be more than one (starting from two). 


Resolution:
Revised Text:
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Discussion:
Being a covariance matrix does not limit the number of rows/columns to be larger
than one. Moreover, this definition of UniformGaussian is necessary to make its
definition consistent with much general Gaussian class.
Disposition: Closed, no change


Issue 16192: Typo in Parameter class definition (rls-rtf)

Click
here for this issue's archive.
Source: Shibaura Institute of Technology (Mr. Takeshi Sakamoto, sakamoto(at)globalassist.co.jp)
Nature: Uncategorized Issue
Severity:
Summary:
In table 7.80 - Parameter class, the type of 'isConfigurable' attribute is denoted as 'Bool' but this shall be 'Boolean'.


Resolution: Modify the type of isConfigurable attribute in Parameter class definition as “Boolean”.
Revised Text: see page 41 of dtc/2011-06-10
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Issue 16193: Source/destination type of ErrorTypeOperation (rls-rtf)

Click
here for this issue's archive.
Source: Shibaura Institute of Technology (Mr. Takeshi Sakamoto, sakamoto(at)globalassist.co.jp)
Nature: Uncategorized Issue
Severity:
Summary:
In Figure 7.5 - RoLo Error Type and in Table 7.28 - ErrorTypeOperation class, only 'source' (ErrorType) and 'target' (ErrorType) attributes are defined. However, these attributes are parameters for determining the type of conversion operation, and the actual Element-s to be converted shall as well be specified.


Resolution:
Revised Text:
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Discussion:
This is OK, as these are classes for representing RoLo error conversion
algorithms and not the actual operations.
Disposition: Closed, no change


Issue 16194: Frequency attribute in StreamAbility (rls-rtf)

Click
here for this issue's archive.
Source: Shibaura Institute of Technology (Mr. Takeshi Sakamoto, sakamoto(at)globalassist.co.jp)
Nature: Uncategorized Issue
Severity:
Summary:
In Figure 7.19 - RoLo Service and in Table 7.91 - StreamAbility class, the 'frequency' attribute of StreamAbility is marked as optional. However, it is not clear in what way the module behaves when the frequency attribute is omitted. Also, as for the dataSpec attribute, don't-care shall be defined for dataFormat and frequency attributes to indicate that no specific value is defined.


Resolution:
Revised Text:
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Discussion:
The frequency attribute is not specified when the actual input/output frequency of
the Stream is not certain. This is different from specifying a don’t-care which
means any frequencies can be specified. This is not the case with realistic
implementations.
Disposition: Closed, no change


Issue 16195: Relation between DataMappingOperation and ElementSpecification (rls-rtf)

Click
here for this issue's archive.
Source: Shibaura Institute of Technology (Mr. Takeshi Sakamoto, sakamoto(at)globalassist.co.jp)
Nature: Uncategorized Issue
Severity:
Summary:
In Figure 7.10 - RoLo Data Operation, the relation between DataMappingOperation class and ElementSpecification class is defined as aggregation. However, considering the strength of relation between the two classes, directed association is much suitable.


Resolution: Change the relation between ElementSpecification and DataMappingOperation.
Revised Text: see pages 44 of dtc/2011-06-10
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Issue 16196: InStream & OutStream (rls-rtf)

Click
here for this issue's archive.
Source: ETRI (Dr. Jaeyeong Lee, PhD, jylee(at)etri.re.kr)
Nature: Uncategorized Issue
Severity:
Summary:
InStream & OutStream are just conceptually different in usage but physically the same. The separation makes the implementation difficult. Instream may be redundant, and OutStream also requires setData().


Resolution:
Revised Text:
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Discussion:
Some RLS modules, such as ones embedding sensors, may only own
OutputStreams while some modules such as aggregation modules may own both
InputStreams and OutputStreams. Thus, Interface::Instream and
Interface::OutStream are necessary to clearly indicate whether a certain stream
is for data input or for data output. In this sense, setData() is not necessary for
OutputStream class.
Disposition: Closed, no change


Issue 16197: C++ PSM arguments (rls-rtf)

Click
here for this issue's archive.
Source: ETRI (Dr. Jaeyeong Lee, PhD, jylee(at)etri.re.kr)
Nature: Uncategorized Issue
Severity:
Summary:
In C++ implementation, the element types should be a pointer or reference to enable homomorphism. It means that we need dynamic memory allocation/deallocation for data passing, making the implementation very difficult, such as for identifying real instance type or for copying data. C++ PSM part of RLS Spec. should be corrected into pointer type not to make the developers confusing.


Resolution:
Revised Text:
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Discussion:
Actually, parameters will not be problems as they can be casted to parent
classes. The same can be applied for returned values.
Disposition: Closed, no change


Issue 16198: Service::connect() confusion (rls-rtf)

Click
here for this issue's archive.
Source: ETRI (Dr. Jaeyeong Lee, PhD, jylee(at)etri.re.kr)
Nature: Uncategorized Issue
Severity:
Summary:
As for Service::connect() method, difference of two connect() methods are not clearly described, and developers can be very confused. The notations IN service and OUT service is confusing. Given a relation A->B, which one is IN service? Receiver(IN) / Sender(OUT) would be more clear conceptually. 


Resolution: As described, the difference of the two connect() methods are in which side initiates the connection. The notation ‘receiver’ and ‘sender’ is, as suggested, much clear. Thus, change ‘IN service’ as ‘RECEIVER service’ and ‘OUT service’ as ‘SENDER service’.
Revised Text: see pages 48 - 52 of dtc/2011-06-10
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Issue 16199: Ambiguity in InterfaceBase parameters (rls-rtf)

Click
here for this issue's archive.
Source: ETRI (Dr. Jaeyeong Lee, PhD, jylee(at)etri.re.kr)
Nature: Uncategorized Issue
Severity:
Summary:
We can access parameter values in two ways: InterfaceBase::getAbility and InterfaceBase::getParameterValues. InterfaceBase::ability can be StreamAbility or ServiceAbility and they have inherited attribute (attrs) from AttributeSet. They also have their own class-specific parameters (frequency, expectedLatency, ... ). However, there only is InterfaceBase::getAbility. We need InterfaceBase::setAbility to initialize Service or Stream. It is not clear what the configurable parameters of InterfaceBase::get/setParameterValues are. Implementation of InterfaceBase::get/setParameterValues is very complex and confusing. Class-specific parameters also are attribute, but handled separately from 'attrs' of AttributeSet. 


Resolution:
Revised Text:
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Discussion:
Ability class describes what kind of parameters the module provides. These
parameters can be specified through InterfaceBase::getParameterValues().
Disposition: Closed, no change


Issue 16200: The usage of ParameterValue class is not clear (rls-rtf)

Click
here for this issue's archive.
Source: ETRI (Dr. Jaeyeong Lee, PhD, jylee(at)etri.re.kr)
Nature: Uncategorized Issue
Severity:
Summary:
First, it is hard to access the target Parameter from ParameterValueBase. Second, it is not clear whether we should provide a pointer to a real Parameter instance for ParameterValue::param attribute or use a clone. If clone, we should deallocate the memory (who do?) If not clone, we should not deallocate the memory. There is a possibility that the values of ParameterValue::val and ParameterValue::param.val are inconsistent. How about ParamterValue class to refer to the ID of Parameter instance not the instance itself?  


Resolution: Whether to use a pointer or cloned instance is an implementation issue and will not be discussed here. As suggested, one way of implementation is to refer to some ID of Parameter instance, such as the one inherited from ISO19111::IO_IdentifiedObject. See issue 16201 for discussion on the referencing system. As for the two ‘val’ attributes, the actual values for each Attribute (or Parameter) instance is held by Attribute.val. ParameterValueBase and inherited class instances are used for passing the values to be set, typically through InterfaceBase::setParameterValues() or to obtain the current values through InterfaceBase::getParameterValues(). As this was not clearly stated in the specification, we will add some more description.
Revised Text: see pages 54 - 55 of dtc/2011-06-10
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Issue 16201: Specifying data formats (rls-rtf)

Click
here for this issue's archive.
Source: ETRI (Dr. Jaeyeong Lee, PhD, jylee(at)etri.re.kr)
Nature: Uncategorized Issue
Severity:
Summary:
We defined common data format but not specified how to identify them. 


Resolution:
Revised Text:
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Discussion:
This is mostly a PSM or implementation issue. For example, if all the data
instances/classes related to RoLo can be realized as objects, object references
can be used for identifying common data formats or CRSs. However, in many
cases, it is better to have some rules for mapping identifiers, especially in the
case of using XML PSM. Thus, we may define an example identifier mapping
mechanism based on “Definition identifier URNs in OGC namespace” (Open
Geospatial Consortium document no. 07-092r3) which is commonly used in GIS
related systems as an informative annex.
However, this addition is beyond the scope of RTF. Thus, this may be discussed
in the future through another RFP process.
Disposition: Closed, Out of Scope


Issue 16202: Ambiguity in CRS usage (rls-rtf)

Click
here for this issue's archive.
Source: ETRI (Dr. Jaeyeong Lee, PhD, jylee(at)etri.re.kr)
Nature: Uncategorized Issue
Severity:
Summary:
CRS is very important in RLS, but the usage is not clearly described in the Spec. Just referred ISO. Especially, AxisDirection is confusing. Inconsistent implementation may be possible among developers 


Resolution:
Revised Text:
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Discussion:
For the notion of CRS, please refer to the ISO 19111 specification and to issue
16184. As for CS_AxisDirection, it is described on page 12-13 of RLS 1.0, as
follows:
… One issue is how to treat the attribute bounded to specific features in the real space
such as axisDirection (type CS_AxisDirection) in CS_CoordinateSystemAxis that is a
mandatory attribute, and where the type is defined as a finite enumeration of direction
names such as ‘north’ or ‘south.’ It is clear that these values are not suitable for some
robotics usage such as for relative or mobile coordinate reference systems. We thus
recommend that implementers and users of this specification simply ignore this
attribute and set this value as the first element in the enumeration, ‘north,’ if necessary.
This is a safe solution as we cannot expect GIS systems to treat data based on this
specification correctly; we only expect data from GIS systems to be treated on
systems based on this robotic specification.??
Disposition: Closed, no change


Issue 16203: Auto configuration between RoLo Service modules (rls-rtf)

Click
here for this issue's archive.
Source: ETRI (Dr. Jaeyeong Lee, PhD, jylee(at)etri.re.kr)
Nature: Uncategorized Issue
Severity:
Summary:
Auto configuration between RoLo Service modules across the network is not supported currently. Return value of getAbility: variable data length, data type, ...How to interpret the result without sharing of memory address? We need to define how to serialize data. 


Resolution:
Revised Text:
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Discussion:
Auto configuration (or negotiation) between RoLo modules over network, as well
as serialization of data is not in the scope of this specification. It shall be handled
by the underlying (or overlaying) middleware systems, such as SOAP, Java JNI
or the Network Robot platform.
Disposition: Closed, no change


Issue 16204: Confusion in StreamAbility::dataFormat and StreamAbility::dataSpec (rls-rtf)

Click
here for this issue's archive.
Source: ETRI (Dr. Jaeyeong Lee, PhD, jylee(at)etri.re.kr)
Nature: Uncategorized Issue
Severity:
Summary:
StreamAbility::dataFormat has its own DataSpecification. Difference of these two DataSpecifications is not clear. is it just a redundant duplication? 


Resolution: The two attributes, dataFormat (which is a set of DataFormat::DataFormat instances) and dataSpec (which is a set of Architecture::DataSpecification) are necessary, as these indicate the possible choices that a certain stream can handle. Users of this stream will choose the appropriate data format or data specification from the set of available choices. As pointed out, this is not clear in the current description, so we will add some more description
Revised Text: see page 59 of dtc/2011-06-10
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Issue 16205: Parent of Service class (rls-rtf)

Click
here for this issue's archive.
Source: ETRI (Dr. Jaeyeong Lee, PhD, jylee(at)etri.re.kr)
Nature: Uncategorized Issue
Severity:
Summary:
In C++ PSM, Service class should be derived from InterfaceBase class, not from OutStream. 


Resolution: Modify Service class definition in Service.hpp to be inherited from InterfaceBase class.
Revised Text: C++ PSM (Service.hpp) #pragma once #include <vector> #include <set> #include <ISO19111/IO_IdentifiedObject.hpp> #include <ISO19115.hpp> #include <RLS/Ability.hpp> #include <RLS/DataFormat.hpp> #include <RLS/RoLoArchitecture.hpp> namespace RoLo { namespace Interface { enum StreamType { PUSH, PULL }; class StreamAbility : public Ability { public: SetParameter< ::RoLo::DataFormat::DataFormat> dataFormat; SetParameter< ::RoLo::Architecture::DataSpecification > dataSpec; SetParameter<StreamType> streamType; SetParameter<double> frequency; }; class InterfaceBase : public ::ISO19111::IO_IdentifiedObject { public: const Ability& getAbility(); void setParameterValues(const ::std::set<ParameterValueBase>& paramVals); const ::std::set<ParameterValueBase>& getParameterValues(); protected: Ability* ability; }; class Stream : public InterfaceBase { public: void disconnect(); bool isConnected(); const Stream& getConnectedStream(); const class Service& getService(); }; class OutStream : public Stream { public: const ::RoLo::Architecture::Data& getData(); void activate(); void deactivate(); bool isActivated(); }; class InStream : public Stream { public: void setData(const ::RoLo::Architecture::Data& data); }; class ServiceAbility : public Ability { public: Attribute<int> maxOutStreamNum; Attribute<double> expectedLatency; ::std::set<StreamAbility> inStreamAbilities; StreamAbility outStreamAbility; }; class Service : public InterfaceBase { public: InStream& connect(const InStream& target, const OutStream* source = NULL); OutStream& connect(const InStream* source = NULL); void adjust(const ::RoLo::Architecture::Data& data); const ::std::vector<const Service*> getChildren(); protected: ::std::vector<InStream> inStreams; ::std::vector<OutStream> outStreams; }; } }
Actions taken:
May 8, 2011: received issue
October 21, 2011: closed issue

Issue 16206: Obligation of AttributeSet::attrs & AttributeSet::def (rls-rtf)

Click
here for this issue's archive.
Source: ETRI (Dr. Jaeyeong Lee, PhD, jylee(at)etri.re.kr)
Nature: Uncategorized Issue
Severity:
Summary:
Obligation of AttributeSet::attrs & AttributeSet::def seems not correct (attrs: M, def: O ?) 


Resolution: As pointed out, Interface::AttributeSet.attrs shall be marked as optional in the UML diagram. Moreover, AttributeSet.def is not necessary, as AttributeDefinition-s can be accessed through each AttributeBase contained in the AtributeSet instance. Thus, we will remove the AttributeDefinitionSet class and AttributeSet.def.
Revised Text: see pages 63 - 66 of dtc/2011-06-10
Actions taken:

Issue 16207: Type of InterfaceBase::get/setParameterValues() argument in C++ PSM (rls-rtf)

Click
here for this issue's archive.
Source: ETRI (Dr. Jaeyeong Lee, PhD, jylee(at)etri.re.kr)
Nature: Uncategorized Issue
Severity:
Summary:
Argument type of InterfaceBase::get/setParameterValues is 'set' in PIM but 'list' in PSM. It may cause the developers confusing.

Resolution: In C++ PSM, we found several points of similar inconsistency: - std::vector is used to denote ordered list in some definitions and std::list is used for other definitions - ordered and non-ordered list sometimes does not match the definition in PIM In order to clearly represent the PIM, the following rule will be applied for PIM = C++ PSM mapping: - non-ordered list will be mapped to std::set - ordered list will be mapped to std::vector Based on these rules, the followings points will be modified in C++ PSM: - Modify InterfaceBase::getParameterValues() and setParameterValues() methods to use std::set - Modify SetParameter class to bind to::std::set<T> for template parameter - Modify SetParameter.attrs attribute to use std::vector - Modify ServiceAbility.inStreamAbilities attribute to use std::set - Modify Service.getChild () method to use std::vector - Modify Service.inStreams and outStreams attributes to use std::vector In addition, we found that there are some inconsistency between the table description and UML, and these will be fixed as following: - In Service class, based on the text description, the attributes inStreams and outStreams will be marked as “N ord” in the table and will be marked as “ordered” in the UML diagram
Revised Text: see pages 68 - 72 of dtc/2011-06-10
Actions taken:
May 8, 2011: received issue
May 8, 2011: received issue
October 21, 2011: closed issue
October 21, 2011: closed issue

Issue 16208: Formal definition of XML (rls-rtf)

Click
here for this issue's archive.
Source: JARA (Mr. Shuichi Nishio, nishio(at)ieee.org)
Nature: Uncategorized Issue
Severity:
Summary:
Although examples of XML description is provided in Annex A, an formal
specification such as XML schema is also necessary for constructing a
parser.

Resolution: Besides XML examples, Annex A provides XML schema definitions. However, the definition is not complete. Thus, revise the XML schema definition in Annex A.
Revised Text: * Modify the first paragraph of Annex A.1 as following: This annex provides a platform specific model for XML. This PSM has two variations, generic model and architecture-specific model. The generic model is derived by mapping naively from UML model of RoLo data to XML, and is able to represent any RLS elements. But, it is impossible to restrict structures syntactically for a specification of certain architecture even if the architecture of the data is known. * Modify the third paragraph of Annex A.1 as following: Hereafter, the target namespace of the given XML schemas is assumed to be “http://www.omg.org/rls/1.1.” Also, the prefix “rls” indicates the same namespace. * Modify Annex A.2 as following: A.2 Generic Model The generic model is described below by XML schema definition. <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:rls="http://www.omg.org/rls/1.1" xmlns:gml="http://www.opengis.net/gml/3.2" targetNamespace="http://www.omg.org/rls/1.1" elementFormDefault="qualified" attributeFormDefault="qualified"> <xsd:import namespace="http://www.opengis.net/gml/3.2" schemaLocation="ISO_19136/GML.xsd"/> <!-- Fig.7 RoLo Error Type --> <xsd:element name="ErrorType" type="rls:ErrorTypeType"/> <xsd:complexType name="ErrorTypeType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"> <xsd:sequence> <xsd:element name="baseType" type="xsd:ID" minOccurs="0" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="ErrorTypeOperation" type="rls:ErrorTypeOperationType"/> <xsd:complexType name="ErrorTypeOperationType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"> <xsd:sequence> <xsd:element name="source" type="xsd:ID" minOccurs="1" maxOccurs="1"/> <xsd:element name="target" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- Fig.8 RoLo Error --> <xsd:element name="AbstractError" type="rls:AbstractErrorType" abstract="true"/> <xsd:complexType name="AbstractErrorType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"> <xsd:sequence> <xsd:element name="errorType" type="xsd:ID" minOccurs="0" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- Reliability --> <xsd:element name="Reliability" type="rls:ReliabilityType" substitutionGroup="rls:AbstractError" /> <xsd:complexType name="ReliabilityType"> <xsd:complexContent> <xsd:extension base="rls:AbstractErrorType"> <xsd:annotation> <xsd:documentation> xsd:restriction base="xsd:float" </xsd:documentation> </xsd:annotation> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ErrorDistribution --> <xsd:element name="AbstractErrorDistribution" type="rls:AbstractErrorDistributionType" substitutionGroup="rls:AbstractError" abstract="true" /> <xsd:complexType name="AbstractErrorDistributionType"> <xsd:complexContent> <xsd:extension base="rls:AbstractErrorType"/> </xsd:complexContent> </xsd:complexType> <!-- Gaussian --> <xsd:element name="Gaussian" type="rls:GaussianType" substitutionGroup="rls:AbstractErrorDistribution" /> <xsd:complexType name="GaussianType"> <xsd:complexContent> <xsd:extension base="rls:AbstractErrorDistributionType"> <xsd:sequence> <xsd:element name="cov" type="rls:CovarianceMatrixType" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="MatrixType"> <xsd:simpleContent> <xsd:extension base="gml:doubleList"> <xsd:attribute name="nRow" type="xsd:positiveInteger" use="required"/> <xsd:attribute name="nCol" type="xsd:positiveInteger" use="required"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <xsd:complexType name="CovarianceMatrixType"> <xsd:complexContent> <xsd:restriction base="rls:MatrixType"> <xsd:annotation> <xsd:documentation> Attributes "nRow" should be equal to "nCol" </xsd:documentation> </xsd:annotation> </xsd:restriction> </xsd:complexContent> </xsd:complexType> <!-- Uniform Gaussian --> <xsd:element name="UniformGaussian" type="rls:UniformGaussianType" substitutionGroup="rls:Gaussian" /> <xsd:complexType name="UniformGaussianType"> <xsd:complexContent> <xsd:extension base="rls:GaussianType"> <xsd:annotation> <xsd:documentation> Attributes "nRow" and "nCol" should be "1". </xsd:documentation> </xsd:annotation> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- Mixture Model --> <xsd:element name="AbstractMixtureModel" type="rls:AbstractMixtureModelType" substitutionGroup="rls:AbstractErrorDistribution" abstract="true" /> <xsd:complexType name="AbstractMixtureModelType" abstract="true"> <xsd:complexContent> <xsd:extension base="rls:AbstractErrorDistributionType"/> </xsd:complexContent> </xsd:complexType> <!-- Linear Mixture Model --> <xsd:element name="AbstractLinearMixtureModel" type="rls:AbstractLinearMixtureModelType" substitutionGroup="rls:AbstractMixtureModel" abstract="true" /> <xsd:complexType name="AbstractLinearMixtureModelType"> <xsd:complexContent> <xsd:extension base="rls:AbstractMixtureModelType"> <xsd:sequence> <xsd:element name="models" type="rls:ModelType" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="ModelType"> <xsd:extension base="rls:PositionElementType"/> </xsd:complexType> <xsd:complexType name="WeightedModelType"> <xsd:extension base="rls:ModelType"> <xsd:sequence> <xsd:element name="weight" type="xsd:float" minOccurs="1" maxOccurs="1" /> </xsd:sequence> </xsd:extension> </xsd:complexType> <!-- Particle Set --> <xsd:element name="ParticleSet" type="rls:ParticleSetType" substitutionGroup="rls:AbstractLinearMixtureModel" /> <xsd:complexType name="ParticleSetType"> <xsd:complexContent> <xsd:extension base="rls:AbstractLinearMixtureModelType"> <xsd:annotation> <xsd:documentation> Each "model" element shall contain without "err" element. This is interpreted that the error is a Gaussian distribution with an all-zero covariance matrix. </xsd:documentation> </xsd:annotation> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- MixtureOfGaussian --> <xsd:element name="MixtureOfGaussian" type="rls:MixtureOfGaussianType" substitutionGroup="rls:AbstractLinearMixtureModel" /> <xsd:complexType name="MixtureOfGaussianType"> <xsd:complexContent> <xsd:extension base="rls:AbstractLinearMixtureModelType"> <xsd:annotation> <xsd:documentation> Each "model" element shall contain an error information of Gaussian distribution. </xsd:documentation> </xsd:annotation> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- Fig.10 RoLo Architecture --> <!-- DataSpecification --> <xsd:element name="DataSpecification" type="rls:DataSpecificationType"/> <xsd:complexType name="DataSpecificationType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"> <xsd:sequence> <xsd:choice minOccurs="1" maxOccurs="unbounded"> <xsd:element ref="rls:PositionElementSpecification" /> <xsd:element ref="rls:ErrorElementSpecification" /> </xsd:choice> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- Data --> <xsd:element name="Data" type="rls:DataType"/> <xsd:complexType name="DataType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"> <xsd:sequence> <xsd:element name="spec" type="xsd:ID" minOccurs="0" maxOccurs="1"/> <xsd:choice minOccurs="1" maxOccurs="unbounded"> <xsd:element ref="rls:PositionElement" /> <xsd:element ref="rls:ErrorElement" /> </xsd:choice> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- PositionElementSpecification --> <xsd:element name="PositionElementSpecification" type="rls:PositionElementSpecificationType"/> <xsd:complexType name="PositionElementSpecificationType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"> <xsd:sequence> <xsd:element name="crs" type="xsd:ID" minOccurs="1" maxOccurs="1"/> <xsd:element name="errType" type="xsd:ID" minOccurs="0" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ErrorElementSpecification --> <xsd:element name="ErrorElementSpecification" type="rls:ErrorElementSpecificationType"/> <xsd:complexType name="ErrorElementSpecificationType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"> <xsd:sequence> <xsd:element name="posSpecRefs" type="rls:PositionElementSpecificationType" minOccurs="1" maxOccurs="unbounded"/> <xsd:element name="errType" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ErrorElement --> <xsd:element name="ErrorElement" type="rls:ErrorElementType"/> <xsd:complexType name="ErrorElementType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"> <xsd:sequence> <xsd:element name="spec" type="xsd:ID" minOccurs="1" maxOccurs="1"/> <xsd:element name="err" type="rls:AbstractErrorType" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- PositionElement --> <xsd:element name="PositionElement" type="rls:PositionElementType"/> <xsd:complexType name="PositionElementType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"> <xsd:sequence> <xsd:element name="spec" type="xsd:ID" minOccurs="1" maxOccurs="1"/> <xsd:element name="err" type="rls:AbstractErrorType" minOccurs="0" maxOccurs="1"/> <xsd:element name="pos" type="rls:PositionType" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- Position --> <xsd:complexType name="PositionType"> <xsd:choice> <xsd:element ref="rls:SymbolicPosition"/> <xsd:element ref="rls:NumericPosition"/> </xsd:choice> </xsd:complexType> <!-- Numeric Position --> <xsd:element name="NumericPosition" type="rls:NumericPositionType"/> <xsd:complexType name="NumericPositionType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"> <xsd:group ref="gml:geometricPositionGroup"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- Figure 5: Identity Information --> <!-- SetCoordinateSystemAxis --> <xsd:element name="SetCoordinateSystemAxis" type="rls:SetCoordinateSystemAxisType" substitutionGroup="gml:CoordinateSystemAxis"/> <xsd:complexType name="SetCoordinateSystemAxisType"> <xsd:complexContent> <xsd:extension base="gml:CoordinateSystemAxisType"/> </xsd:complexContent> </xsd:complexType> <!-- StringSetCoordinateSystemAxis --> <xsd:element name="StringSetCoordinateSystemAxis" type="rls:StringSetCoordinateSystemAxisType" substitutionGroup="rls:SetCoordinateSystemAxis"/> <xsd:complexType name="StringSetCoordinateSystemAxisType"> <xsd:complexContent> <xsd:extension base="rls:SetCoordinateSystemAxisType"/> </xsd:complexContent> </xsd:complexType> <!-- IntegerSetCoordinateSystemAxis --> <xsd:element name="IntegerSetCoordinateSystemAxis" type="rls:IntegerSetCoordinateSystemAxisType" substitutionGroup="rls:SetCoordinateSystemAxis"/> <xsd:complexType name="IntegerSetCoordinateSystemAxisType"> <xsd:complexContent> <xsd:extension base="rls:SetCoordinateSystemAxisType"/> </xsd:complexContent> </xsd:complexType> <!-- SymbolicPosition --> <xsd:element name="SymbolicPosition" type="rls:SymbolicPositionType"/> <xsd:complexType name="SymbolicPositionType"> <xsd:complexContent> <xsd:sequence> <xsd:element name="coords" type="rls:SymbolicCoordinateType" minOccurs="1" maxOccurs="unbounded"/> <xsd:element ref="rls:SymbolicIdentityCRS" minOccurs="0" maxOccurs="1"/> </xsd:sequence> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="SymbolicCoordinateType"> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="axisName" type="xsd:string" use="required" /> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <!-- IdentityDatum --> <xsd:element name="IdentityDatum" type="rls:IdentityDatumType" substitutionGroup="gml:AbstractDatum"/> <xsd:complexType name="IdentityDatumType"> <xsd:complexContent> <xsd:extension base="gml:AbstractDatumType"/> </xsd:complexContent> </xsd:complexType> <!-- IdentityCRS --> <xsd:element name="AbstractIdentityCRS" type="rls:AbstractIdentityCRSType" abstract="true" substitutionGroup="gml:AbstractSingleCRS"/> <xsd:complexType name="AbstractIdentityCRSType"> <xsd:complexContent> <xsd:extension base="gml:AbstractCRSType"> <xsd:sequence> <xsd:element name="usesDatum" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- IdentityCS --> <xsd:element name="AbstractIdentityCS" type="rls:AbstractIdentityCSType" abstract="true" substitutionGroup="gml:AbstractCoordinateSystem"/> <xsd:complexType name="AbstractIdentityCSType"> <xsd:complexContent> <xsd:extension base="gml:AbstractCoordinateSystemType"/> </xsd:complexContent> </xsd:complexType> <!-- NumericIdentityCRS --> <xsd:element name="NumericIdentityCRS" type="rls:NumericIdentityCRSType" substitutionGroup="rls:AbstractIdentityCRS"/> <xsd:complexType name="NumericIdentityCRSType"> <xsd:complexContent> <xsd:extension base="rls:AbstractIdentityCRSType"> <xsd:sequence> <xsd:element name="usesCS" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- NumericIdentityCS --> <xsd:element name="NumericIdentityCS" type="rls:NumericIdentityCSType" substitutionGroup="rls:AbstractIdentityCS"/> <xsd:complexType name="NumericIdentityCSType"> <xsd:complexContent> <xsd:extension base="rls:AbstractIdentityCSType"/> </xsd:complexContent> </xsd:complexType> <!-- SymbolicIdentityCRS --> <xsd:element name="SymbolicIdentityCRS" type="rls:SymbolicIdentityCRSType" substitutionGroup="rls:AbstractIdentityCRS"/> <xsd:complexType name="SymbolicIdentityCRSType"> <xsd:complexContent> <xsd:extension base="rls:AbstractIdentityCRSType"> <xsd:sequence> <xsd:element name="usesCS" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- SymbolicIdentityCS --> <xsd:element name="SymbolicIdentityCS" type="rls:SymbolicIdentityCSType" substitutionGroup="rls:AbstractIdentityCS"/> <xsd:complexType name="SymbolicIdentityCSType"> <xsd:complexContent> <xsd:extension base="rls:AbstractIdentityCSType"/> </xsd:complexContent> </xsd:complexType> <!-- Pose --> <!-- PoseType --> <xsd:element name="PoseType" type="rls:PoseTypeType"/> <xsd:complexType name="PoseTypeType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"> <xsd:sequence> <xsd:element name="baseType" type="xsd:ID" minOccurs="0" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- PositionPoseCRS --> <xsd:element name="AbstractPositionPoseCRS" type="rls:AbstractPositionPoseCRSType" substitutionGroup="gml:AbstractReferenceSystemType"/> <xsd:complexType name="AbstractPositionPoseCRSType"> <xsd:complexContent> <xsd:extension base="gml:AbstractReferenceSystemType"> <xsd:sequence> <xsd:element name="poseType" type="xsd:ID" minOccurs="1" maxOccurs="1"/> <xsd:element name="positionCRS" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- Figure 3: Relative and Mobile coordinate reference system --> <!-- RelativeDatum --> <xsd:element name="AbstractRelativeDatum" type="rls:AbstractRelativeDatumType" substitutionGroup="gml:EngineeringDatum"/> <xsd:complexType name="AbstractRelativeDatumType"> <xsd:complexContent> <xsd:extension base="gml:EngineeringDatumType"/> </xsd:complexContent> </xsd:complexType> <!-- StaticRelativeDatum --> <xsd:element name="StaticRelativeDatum" type="rls:StaticRelativeDatumType" substitutionGroup="rls:AbstractRelativeDatum"/> <xsd:complexType name="StaticRelativeDatumType"> <xsd:complexContent> <xsd:extension base="rls:AbstractRelativeDatumType"> <xsd:sequence> <xsd:element name="dataSpec" type="xsd:ID" minOccurs="0" maxOccurs="1"/> <xsd:element name="base" type="rls:DataType" minOccurs="0" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- DynamicRelativeDatum --> <xsd:element name="DynamicRelativeDatum" type="rls:DynamicRelativeDatumType" substitutionGroup="rls:AbstractRelativeDatum"/> <xsd:complexType name="DynamicRelativeDatumType"> <xsd:complexContent> <xsd:extension base="rls:AbstractRelativeDatumType"/> </xsd:complexContent> </xsd:complexType> <!-- MobileDatum --> <xsd:element name="MobileDatum" type="rls:MobileDatumType" substitutionGroup="rls:DynamicRelativeDatum"/> <xsd:complexType name="MobileDatumType"> <xsd:complexContent> <xsd:extension base="rls:DynamicRelativeDatumType"> <xsd:sequence> <xsd:element name="inStream" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- RelativeCRS --> <xsd:element name="AbstractRelativeCRS" type="rls:AbstractRelativeCRSType" substitutionGroup="gml:EngineeringCRS"/> <xsd:complexType name="AbstractRelativeCRSType"> <xsd:complexContent> <xsd:extension base="gml:EngineeringCRSType"> <xsd:sequence> <xsd:element name="usesDatum" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- StaticRelativeCRS --> <xsd:element name="AbstractStaticRelativeCRS" type="rls:AbstractStaticRelativeCRSType" substitutionGroup="rls:AbstractRelativeCRS"/> <xsd:complexType name="AbstractStaticRelativeCRSType"> <xsd:complexContent> <xsd:extension base="rls:AbstractRelativeCRSType"> <xsd:sequence> <xsd:element name="usesDatum" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- StaticRelativeCartesianCRS --> <xsd:element name="StaticRelativeCartesianCRS" type="rls:StaticRelativeCartesianCRSType" substitutionGroup="rls:AbstractStaticRelativeCRS"/> <xsd:complexType name="StaticRelativeCartesianCRSType"> <xsd:complexContent> <xsd:extension base="rls:AbstractStaticRelativeCRSType"> <xsd:sequence> <xsd:element name="usesCS" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- StaticRelativePolarCRS --> <xsd:element name="StaticRelativePolarCRS" type="rls:StaticRelativePolarCRSType" substitutionGroup="rls:AbstractStaticRelativeCRS"/> <xsd:complexType name="StaticRelativePolarCRSType"> <xsd:complexContent> <xsd:extension base="rls:AbstractStaticRelativeCRSType"> <xsd:sequence> <xsd:element name="usesCS" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- DynamicRelativeCRS --> <xsd:element name="AbstractDynamicRelativeCRS" type="rls:AbstractDynamicRelativeCRSType" substitutionGroup="rls:AbstractRelativeCRS"/> <xsd:complexType name="AbstractDynamicRelativeCRSType"> <xsd:complexContent> <xsd:extension base="rls:AbstractRelativeCRSType"/> </xsd:complexContent> </xsd:complexType> <!-- MobileCRS --> <xsd:element name="AbstractMobileCRS" type="rls:AbstractMobileCRSType" substitutionGroup="rls:AbstractDynamicRelativeCRS"/> <xsd:complexType name="AbstractMobileCRSType"> <xsd:complexContent> <xsd:extension base="rls:AbstractDynamicRelativeCRSType"> <xsd:sequence> <xsd:element name="usesDatum" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- MobileCartesianCRS --> <xsd:element name="MobileCartesianCRS" type="rls:MobileCartesianCRSType" substitutionGroup="rls:AbstractMobileCRS"/> <xsd:complexType name="MobileCartesianCRSType"> <xsd:complexContent> <xsd:extension base="rls:AbstractMobileCRSType"> <xsd:sequence> <xsd:element name="usesCS" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- MobilePolarCRS --> <xsd:element name="MobilePolarCRS" type="rls:MobilePolarCRSType" substitutionGroup="rls:AbstractMobileCRS"/> <xsd:complexType name="MobilePolarCRSType"> <xsd:complexContent> <xsd:extension base="rls:AbstractMobileCRSType"> <xsd:sequence> <xsd:element name="usesCS" type="xsd:ID" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- Figure 13: RoLo Data Format --> <!-- DataFormat --> <xsd:element name="AbstractDataFormat" type="rls:AbstractDataFormatType"/> <xsd:complexType name="AbstractDataFormatType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"/> </xsd:complexContent> </xsd:complexType> <!-- Figure 20 - RoLo Ability --> <!-- AttributeSet --> <xsd:element name="AttributeSet" type="rls:AttributeSetType"/> <xsd:complexType name="AttributeSetType"> <xsd:complexContent> <xsd:extension base="gml:IdentifiedObjectType"/> </xsd:complexContent> </xsd:complexType> <!-- Ability --> <xsd:element name="Ability" type="rls:AbilityType" substitutionGroup="rls:AttributeSet"/> <xsd:complexType name="AbilityType"> <xsd:complexContent> <xsd:extension base="rls:AttributeSetType"/> </xsd:complexContent> </xsd:complexType> <!-- Figure 21 - RoLo Service --> <!-- StreamType --> <xsd:simpleType name="StreamTypeType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="PUSH"/> <xsd:enumeration value="PULL"/> </xsd:restriction> </xsd:simpleType> <!-- StreamAbility --> <xsd:element name="StreamAbility" type="rls:StreamAbilityType" substitutionGroup="rls:Ability"/> <xsd:complexType name="StreamAbilityType"> <xsd:complexContent> <xsd:extension base="rls:AbilityType"> <xsd:sequence> <xsd:element name="dataFormat" type="rls:AbstractDataFormatType" minOccurs="1" maxOccurs="1"/> <xsd:element name="dataSpec" type="rls:DataSpecificationType" minOccurs="1" maxOccurs="1"/> </xsd:sequence> <xsd:attribute name="streamType" use="required"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="PUSH"/> <xsd:enumeration value="PULL"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> <xsd:attribute name="frequency" type="xsd:double" use="optional"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- ServiceAbility --> <xsd:element name="ServiceAbility" type="rls:ServiceAbilityType" substitutionGroup="rls:Ability"/> <xsd:complexType name="ServiceAbilityType"> <xsd:complexContent> <xsd:extension base="rls:AbilityType"> <xsd:sequence> <xsd:element name="inStreamAbilities" type="rls:StreamAbilityType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="outStreamAbility" type="rls:StreamAbilityType" minOccurs="1" maxOccurs="1"/> </xsd:sequence> <xsd:attribute name="expectedLatency" type="xsd:double" use="optional"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> </xsd:schema>
Actions taken:
May 9, 2011: received issue
October 21, 2011: closed issue

Issue 16209: Architecture::Ability usage (rls-rtf)

Click
here for this issue's archive.
Source: JARA (Mr. Shuichi Nishio, nishio(at)ieee.org)
Nature: Uncategorized Issue
Severity:
Summary:
Description on Architecture::Abilty and inherited classes are
confusing and difficult to use. 



Resolution: See issue 16206 for disposition
Revised Text:
Actions taken:
May 9, 2011: received issue
October 21, 2011: closed issue