[sc34wg3] TMQL - Comments against draft dtd 2007-07-13

Steve Pepper pepper.steve at gmail.com
Fri Oct 19 08:36:15 EDT 2007


Lars,

Several of the issues you list were discussed in Leipzig. I will be posting
the notes from that meeting as soon as I have received them all from the
editors. I suggest you wait until you have seen those documents and then
repost whatever comments have not been addressed.

Steve


| -----Original Message-----
| From: sc34wg3-bounces at isotopicmaps.org [mailto:sc34wg3-
| bounces at isotopicmaps.org] On Behalf Of Lars Heuer
| Sent: 19 October 2007 13:46
| To: Discussion of ISO/IEC 13250 Topic Maps
| Subject: [sc34wg3] TMQL - Comments against draft dtd 2007-07-13
| 
| Hi all,
| 
| As I know, the TMQL have nothing special to do this weekend, so here
| some TMQL comments ;)
| 
| 
| Topic Maps -- Query Language
| ============================
| 
| Namespaces
| ----------
| - TMQL is silent about a mechanism to define namespaces. It
|   uses QNames but it seems to be impossible to define these.
|   (we have some predefined prefixes, but how does the user define
|   one?)
|   TMQL mentions the environment (section 6.3) but wouldn't it
|   be good if the user can define prefixes for a query ad hoc?
|   (see also my comments for section 6.3.)
| 
| 
| 4.3. Item References
| --------------------
| - [A] item-reference ::= *
|   CTM uses the wildcard '*' to create a (more or less) anonymous
|   topic. If CTM uses '*' for that purpose, it is confusing if
|   TMQL uses the same syntax to refer to a specific topic which
|   is defined as 'tm:subject'. Either we should blame the CTM
|   editors or the TMQL editors for that confusing overlap
|   (I can imagine the answer from the TMQL-editors ;)).
| 
| 
| 4.4. Navigation
| ---------------
| 
| - [B] step::= >> instances
|   'instances' is not part of production [18]. Either this axis should
|   be added or the forward direction should be removed, and therefor
|   only '<<' 'types' should be a valid axis.
| 
| - I wonder if we can reuse the 'isa' (is instance of) and 'ako'
|   (a kind of) keywords somehow instead of introducing 'types'
|   and 'supertypes'.
| 
| - I wonder if we should move those axes where the 'anchor' is ignored
|   to another production. If the 'anchor' is ignored anyhow, why should
|   we allow to specify it? If an 'anchor' is specified where it is
|   ignored, an error would be more helpful than ignoring it silently,
|   IMO. If I understand the production correctly, the following
|   statement::
| 
|         person << types
| 
|   is equivalent to this one::
| 
|         person << types
| <http://www.something.which/is.ignored.but.allowed>
| 
|   The 'anchor' seems to have only a relevance for the following
|   productions:
|   - players
|   - characteristics
| 
| - 'locators' / 'indicators'
| 
|   - Any chance, that TMQL adapts the CTM syntax for subject
|     identifiers / subject locators?
|     (TMQL uses '=' and '~' as suffix, CTM does not use ~ for subject
|     identifiers at all and uses = as IRI-prefix for subject locators)
|     Is the '~' necessary at all? Why is not every plain old IRI a subject
|     identifier?
| 
| - 'reifier'
|   - Wouldn't be one tilde enough? Instead of '~~>' we could use '~>'
|   - Why is the forward shortcut ~~> defined, but not a backward shortcut
|     (<~~)?
| 
| - The 'characteristics' axis:
|   - Is the 'anchor' necessary at all? Isn't it possible to use
|     ``tm:occurrence`` and ``tm:name`` (or to be more exact
|     ``tm:topic-name``) as axis and ``tm:characteristic`` to retrieve
|     both: names and occurrences? Maybe it becomes more complicated if
|     the user wants a specific type, but if 'isa' could be reused, the
|     following seems to be possible::
| 
|     a)  john >> tm:occurrence [. isa homepage]
| 
|         retrieves all occurrences of type 'homepage'
| 
|     b)  john >> tm:name [. isa nickname]
| 
|         retrieves all nicknames from the topic 'john'
| 
|     c)
|         i.  john >> tm:characteristic [. isa whatever]
|         ii. john >> whatever
| 
|         retrieves all characteristics (names *and* occs) of type
| 'whatever'
| 
|     d)  Retrieving all occurrences by foot:
| 
|         john >> tm:characteristic [. isa tm:occurrence]
| 
|     e)  Retrieving all names of type 'nickname' by foot:
| 
|         john >> tm:characteristic [. isa tm:name][. isa nickname]
| 
|         or:
| 
|         john >> tm:characteristic [. isa tm:name & . isa nickname]
| 
| - While writing this, I wonder if the need these uniform axes at all.
|   Why do we need the << >> axis incl. keywords, if we'd introduce some
|   specific "axes": ako, isa, <-, ->, ~>, <~ (the last four axes are
|   already part of TMQL). Well, I may be mistaken here, but we could
|   remove some (lengthly) keywords and introduce a dedicated syntax for
|   them.
| 
| 
| 4.7. Composite Content
| ----------------------
| - I just want to mention, that I find the '==', '++' and '--' infix
|   operators confusing / not very intuitive
|   - for intersection ('==') I'd use '&'
|   - for union ('++') I'd use '|'
|   - for difference ('--') I'd use '-'
| 
|   Well, it's just syntax and '&' and '|' are already used for 'and'
|   and 'or', but ... hmmm ... anyway ... I'll move on
| 
| - Has someone verified, that the condition (if .. then .. else ..) is
|   unambiguous (even if conditions are nested)?
| 
| 
| 4.10. Topic Map Content
| -----------------------
| - The topic map content is wrapped inside triple quotes ("""), but
|   CTM itself uses triple quotes. Maybe another syntax should be used
|   to wrap topic map content, otherwise the implementator has to
|   count the number of """ to decide if the topic map content block
|   is closed or if a CTM string is opened / closed.
|   Additionally, this is bad for syntax highlighers etc.
|   If TMQL uses another syntax as wrapper for topic map content, it would
|   be more obvious that the content is not necessarily a string, but
|   a topic map content stream (whatever that is).
| 
| 
| 4.13. Boolean Expressions
| -------------------------
| - see 4.7. :/
| 
| 
| 6.3. Environment Clause
| -----------------------
| - The environment clause seems to be a string, why does TMQL not adapt
|   the directives from CTM? Maybe TMQL could add some directives for
|   setting the default topic map etc.
|   - If TMQL adapts the CTM directives, we should check if
| 
|         '%' directive-name
| 
|     violates the syntax for the context / environment map
|     (c.f. 5.3. Variables)
| 
| 
| 
| Best regards,
| Lars
| --
| http://www.semagia.com
| 
| _______________________________________________
| sc34wg3 mailing list
| sc34wg3 at isotopicmaps.org
| http://www.isotopicmaps.org/mailman/listinfo/sc34wg3



More information about the sc34wg3 mailing list