OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsn message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Issue 4.29 - options


This issue concerns the way we represent an extension topic in a Topic Set

Suppose I have a TopicNamespace tns1:, with a root topic A and a second
TopicNamespace tns2: with a topic B which is an extension of A.

We agreed a while back that we wished to allow two possible paths to this
second topic..

tns1:A/tns2:B

and

tns2:B.

There are two ways that this can be expressed in the spec

Option 1. Require multiple entries in the TopicSet document. This is the
approach currently taken in PR draft 1 lines 479...


If a Topic is defined as an extension of another Topic, or a child of such
an Extension Topic, then it is represented by multiple elements in the
TopicSet document, corresponding to the multiple paths that can be used to
access it. There are always at least two such paths. One path starts with
the Extension Topic itself, so the Extension Topic appears as a top-level
child of TopicSet, the other starts with the root Topic that contains its
parent Topic. There may be further paths if the parent itself is an
Extension Topic or a child of an Extension Topic.


Note that this approach does let the Producer choose whether it wishes to
permit multiple paths or not, but it results in a more complex TopicSet
document and could lead to confusion if the producer associated different
metadata with each instance in the TopicSet.

Option 2. Define normatively the an algorithm that preprocesses the
TopicExpression to expand all extension topics.  To do this we would

a) Delete the paragraph starting in line 479 that I just quoted and instead
state that each Extension Topic is added just once to the TopicSet (note
that as today this may result in its parents having to be added as well)

b) Replace the text describing full TopicExpressions in section 8.3 with
something like the following

###Existing text


Full TopicExpressions are XPath 1.0 [XPATH] relative location path
expressions with some additional syntactic constraints listed in this
section. The XPath expression is evaluated over a NotificationProducer’s
TopicSet document as defined in section 7. The TopicExpression identifies
the set of Topics that correspond to the elements in the node-set that
results from evaluating the location path contained in the TopicExpression,
using standard XPath 1.0.  The initial context node for this evaluation is
the wstop:TopicSet root element. Note that some of the elements returned by
the evaluation may not correspond to Topics (these are elements which do
not have @topic=”true”).

###Existing text ends

###Replacement text

Full TopicExpressions are XPath 1.0 [XPATH] relative location path
expressions with some additional syntactic constraints listed in this
section.

The expression is examined and its RootTopic is examined to see if it is an
ExtensionTopic. If it is an ExtensionTopic then a new expression is
produced by subsitituting the Parent topic in place of the the Root Topic.
This process is then repeated recursively against the new expression until
an expression is produced that does not have an Extension Topic as its
root. The expression produced by this process is then evaluated over a
NotificationProducer’s TopicSet document as defined in section 7. The
TopicExpression identifies the set of Topics that correspond to the
elements in the node-set that results from evaluating the location path
contained in the TopicExpression, using standard XPath 1.0.  The initial
context node for this evaluation is the wstop:TopicSet root element. Note
that some of the elements returned by the evaluation may not correspond to
Topics (these are elements which do not have @topic=”true”).

###Replacement text ends

c) Do something similar for section 8.4 (XPath topic expressions)

d) Replace the definitions of Simple and Concrete Topic Expressions (8.1
and 8.2) to say that they are to be interpreted as Full Topic expressions,
and thus pick up the text in b)

e) Add some guidance to TopicSet designers about the need to avoid circular
references


Peter Niblett


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]