[sc34wg3] N0391-0394: New SAM/XTM documents

Robert Barta sc34wg3@isotopicmaps.org
Sat, 19 Apr 2003 11:53:30 +1000

On Fri, Apr 18, 2003 at 09:06:29AM -0400, Patrick Durusau wrote:
> >This is a perfectly valid while arbitrary
> >decision. If my goal would be to create a generic infrastructure for
> >Topic Map based information and I plan, of course, to allow queries
> >against the infrastructure, then my choices might be (and will be)
> >totally different.
> >
> Question: In what way would you choose differently, based on your 
> current understanding of N393 vs. N396?


OK, both SAM and TMM are for me 'deserialisation techniques'. This
means that if I have an instance X in XTM (or some other
serialization/syntax) that both """""models""""" (mind the quotes :-)
define ANOTHER syntax, this time an abstract syntax. The structure is
defined via a set of constraints.  These, for instance, define that a
topic might have a number of characteristics together with a scope.

This has NOTHING to do with semantics yet. The structure yet is like a
Rorschach test: Everyone can look at it and can guess what it means.
It is like the relational DB example we discussed earlier: If I give
you a table definition

  | FirstName | LastName |
  |           |          |

then maybe *you* think that I have a DB about people. I fooled you,
actually I store XY coordinates about my next bomb targets. Clever, is
it not? This is exegesis where people guess from names and prose text.

Only if I define operations on this structure, then I introduce formal
semantics. Both models do this to a certain extent as they define what
a "fully merged map" should look like. So both implicitely define an

   "fully merged map" + "new topic" -> "another fully merged map"

*This* introduces the meaning of the structure to a machine and this
can be used for implementation: "All implementations have to behave
the same in this respect".

But this is only for implementing a 'deserialisation'. Did you see
anything about querying or constraining? To do that, the
"""""model""""" would have to define another operation:

   "fully merged map" * constraint -> {yes, no, maybe}


   "fully merged map" * query      -> "query result"

Neither of the deserialisation standards have this and this was
obviously not their goal.

> Sorry, need to know a little more about how you are using "semantics of 
> the data structure." In my use of "semantics" I could certainly define 
> the "meaning" of data in a location in the table, the "key" field for 
> example, without resorting to update or retrieval functionality.

This may be the way to "indicate" a meaning to a human who is used to
all sort of things on this planet. If you simply introduce a field X
of type integer into a DB schema this has no meaning at all except
that the values have to be integer. We humans - and especially the XML
world - is using tags (=labels) to indicate an "intended
semantics". This is good enough for a programmer but worthless for a
formal treatment.

> (We may be seriously missing each other here, as is common in 
> discussions of semantics and syntax. If so, let's try again.)

For me (probably biased by a rather mathematical education)

  syntax:     arrangement of symbols to build expressions, structures
              (XML, CXTM, LTM, AsTMa=, 90% of SAM and TMM)

      e.g. the string "2 + (3 - 1)"

  semantics : operations (or equality constraints) on the expressions
              (10% of SAM and TMM)

      e.g. "a + b     is the same as     b + a"
            1 + 1     is the same as     2"

> Hmmm, I would agree that relational calculus defines operations (I read 
> that as expressions) but that may or may not be semantics. You could be 
> using relational calculus to define valid expressions, which I take to 
> by a syntax issue. Does not say what the expression means (semantics) 
> but rather that it has the proper form (syntax).

The relational _calculus_ (it is actually rather outdated) also
defines the _meaning_ of the operations _relative_ to the
expressions. So, for example,

  project_A ( project_B (T) ) = project_B ( project_A (T) )

says that it does not depend on the sequence how projection (selecting a
column from a table T) is done. Other rules describe the outcome of

  selection_predicate (T) = .... is table with blabla selected ....

> As I noted in my first post and above, the TMM (N393) was never intended 
> to build the framework you are seeking but to lay down the rules for 
> building such an infrastructure. It defines the semantics of topic maps 
> and provides a syntax that allows conversation with great precision 
> about those semantics.

Yes, you precisely rephrase my earlier statement.

> For the TMM (N393) you would have to be saying that it does not allow 
> the construction of the infrastructure you are seeking. In order to 
> evaluate or respond to that statement, it would be necessary to know 
> what sort of infrastructure you are seeking to build.

Let's turn the question around:

What infrastructure does TMM offer to define a language which qualifies
against the requirements


? Or more specific: Have a look at the formal semantics based on
maplets in


Can you find TMM concepts in there? You earlier said that all this is
a "TMA" and is outside the scope (= orthogonal) of TMM. You see my
problem? (Hope this somehow makes sense).

I have only vague ideas how this can be done, but - as I said - I did
not spend any thinking on that yet.