• Welcome to the new COTI server. We've moved the Citizens to a new server. Please let us know in the COTI Website issue forum if you find any problems.
  • We, the systems administration staff, apologize for this unexpected outage of the boards. We have resolved the root cause of the problem and there should be no further disruptions.

Traveller Communication Standard

BillDowns

SOC-13
This is to start a thread on communicating Traveller game information in an electronic format.

I work as a computer consultant in the health care market and one of my skills is HL7 communication. HL7 is a high-level protocol for passing health care information ( HL7 Organization and is controlled by a volunteer committee made up of people from many different software providers and consumers.

My proposal is that a group can do the same for Traveller. On another thread, there was a discussion on XML usage for UWP. I am proposing to go beyond this to capturing ALL Traveller data in a similar fashion, be it XML-based or not.

:confused: Is there enough interest for this?

Edit Note I changed the reference to HL7 to be a link.
 
As the other thread mentions and indicates, I think that there is an interest in seeing something like this happen, but how easy that can come about is another matter.

It would be very wise to be able to transport any type of Traveller data over a standard format (best if it was XML based, IMO), especially for UPPs and UWPs. Other data, namely equipment/vehicles/starships are a little more nebulous, as there are as many ways of describing that data as there are versions of Traveller, whereas characters and worlds are (for the most part) fairly uniform in the expression of the traits and attributes.

So yes, it would be incredibly useful when transporting information between people and applications - witness the "Importing into Excel" thread. The issue is creating a standard - ultimately that has to be approved and blessed by someone (I would imagine that would be Marc) with final say-so.
 
I think the standard could also be emergent: an application which uses a good-enough XML format could also be adopted.

But, my question is: where are those applications?
 
Definition of an XSD would not be that difficult, as Jim states - the difficult part is gaining agreement on a standard. But, does it have to be XML - a combination of the .sec Sector Data format and Galactic 2.4 formats, both fixed length text, could allow a description of sector data readable by many applications. The formats already being used would also be a good place to start if XML is desired.
 
Q: What are the difficulties involved in conversion of data, and is the end result clear, readable to the layman?

Q: What would be among the benefits to this project, what are the good aspects of the application. Why is it good?
 
Originally posted by Baron Saarthuran von Gushiddan:
Q: What are the difficulties involved in conversion of data, and is the end result clear, readable to the layman?
For existing applications, a conversion program would be required to convert the standard XML data definition (enforced by XSD schema definition describing the structure of the data). The readability depends on the designer of the schema. XML can be made to be extremely readable as the markup tags (like with HTML) are defined by the schema.

Originally posted by Baron Saarthuran von Gushiddan:
Q: What would be among the benefits to this project, what are the good aspects of the application. Why is it good?
The benefit is that data is described in a standard way and that all future applications should adhere to the standard - or applications adhering to the standard become more popular. A standard data definition allows for data sharing between different applications without having to code conversion programs or routines.
 
Originally posted by robject:
I think the standard could also be emergent: an application which uses a good-enough XML format could also be adopted.

But, my question is: where are those applications?
Build them and they will come.


It would be great to have the next versions of Universe, Heaven & Earth and any other aspiring Traveller software support an XML framework so that data can be easily ported from one to the other without the need of some kind of custom parser.
 
Hmm, I seem to remember one of those guys was working on the next edition of their code. They should be roped into this discussion.
 
Please allow me offer something from HL7 - BTW, I put that URL in there because you download partial draft copies of the standard for free. Now "normal" HL7 is not XML based, per se, but there is an XML schema for it.

HL7 starts with a Message Header. Objectives are (1) identify the start of a message; (2) identify the purpose of the message; (3) identify the HL7 version of the message; and (4) miscellaneous stuff like date/time of message, who sent it, who is the recipient, etc. So, using the "{" instead of the "<" to enclose things so it won't get parsed wierdly, here is a start:

</font><blockquote>code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">{tl7}
{msh}
{msgtype}MMM{/msgtype}
{msgver}1.0{/msgver}
{msgdate}200604110800{/msgdate}
{msgsender}Bill Downs{/msgsender}
{msgreceiver}CotI Forum{/msgreceiver}
{/msh}
{/tl7}</pre>[/QUOTE]Potential message types could be:</font><blockquote>code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">value purpose
----- ----------------------------
UWP World specification
UPP Character specification
USP Ship specification
SCN Scenario specification</pre>[/QUOTE]
 
Originally posted by Valarian:
Definition of an XSD would not be that difficult, as Jim states - the difficult part is gaining agreement on a standard. But, does it have to be XML - a combination of the .sec Sector Data format and Galactic 2.4 formats, both fixed length text, could allow a description of sector data readable by many applications. The formats already being used would also be a good place to start if XML is desired.
Pardon my ignorance, but what are the those specs you mentioned? Can they be posted here? They certainly could be a good start.
 
Cool, Valarian, please post!

I was going to as well, but I have other things occupying my time at the moment.
 
Valarian - Great :D

We would need details on what the fields and codes for same mean.

To continue using HL7 as an example, I have coded up some of the info from the second link.
</font><blockquote>code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">{tl7}
{msh}
{msgType} UWP {/msgType}
{msgVer} 1.0 {/msgVer}
{msgID} 100 {/msgID}
{msgDate} 200604110800 {/msgDate}
{msgSender} Bill Downs {/msgSender}
{msgReceiver} CotI Forum {/msgReceiver}
{/msh}
{ss}
{ssCode} i {/ssCode}
{ssName} Ownsbee {/ssName}
{ssSector} Gateway {/ssSector}
{jr}
{jrSeq} 1 {/jrSeq}
{jrStart} 0724 {/jrStart}
{jrEnd} 1022 {/jrEnd}
{jrFld3} 1 {/jrFld3}
{jrFld4} 0 {/jrFld4}
{jrFld5} 13 {/jrFld5}
{/jr}
{jr}
{jrSeq} 2 {/jrSeq}
{jrStart} 0724 {/jrStart}
{jrEnd} 0625 {/jrEnd}
{jrFld3} 0 {/jrFld3}
{jrFld4} 0 {/jrFld4}
{jrFld5} 13 {/jrFld5}
{/jr}
{plt}
{pltSeq} 1 {/pltSeq}
{pltName} Tanis {/pltName}
{pltLoc} 0127 {/pltLoc}
{pltUPP} DA89654-8 {/pltUPP}
{pltBase} {/pltBase}
{pltNotes} Ni Ri {/pltNotes}
{pltZone} {/pltZone}
{pltPBG} 220 {/pltPBG}
{pltAl} Na {/pltAl}
{pltLRX} {/pltLRX}
{/plt}
{plt}
{pltSeq} 2 {/pltSeq}
{pltName} Far Portal {/pltName}
{pltLoc} 0130 {/pltLoc}
{pltUPP} A238346-A {/pltUPP}
{pltBase} N {/pltBase}
{pltNotes} {/pltNotes}
{pltZone} {/pltZone}
{pltPBG} 823 {/pltPBG}
{pltAl} Na {/pltAl}
{pltLRX} {/pltLRX}
{/plt}
{/ss}
{/tl7} </pre>[/QUOTE]This shows two aspects of this standard. First, is the heirarchical nature of the information; second is repetition.

The 'ss' segment (to use HL7's term) for SubSector has some atomic elements and contains repeating substructures. The 'jr' segment is for Jump Routes and the 'plt' segment is for Planets. Actually, I am not entirely sure this is totally XML compatible, but it is not far off.

I did revise the coding a bit just to make reading it easier. And I added a message ID to the header.
 
It would be better to establish a better looking format of mapping that the ASCII one. Bear in mind, That I know next to nothing as far as XML, etc. But I am a referee, and a Player, and I would not pass that map looking like it was done on a ViC 20. Ascii maps are pretty lame next ot a proper map from Traveller. Why not a solid graphic format?

A lot of problems and time wasting is sorting through the many conflicting data sources into a readable format. After roughly six months of intense study, I think I got a good handle on sorting for relavance. For example, I just had to redo an entire Noble Fief Packet, because at the last minute, some of the numbers were off, UWP wise. I was looking at one data set while the ref had another.

Q: Would it be easier to set the Physicality of Systems (The Location, the first four numbers of the UWP) and tack on campaign related stuff later? (law level, Government, Population, TEch level)
 
Originally posted by BillDowns:
The 'ss' segment (to use HL7's term) for SubSector has some atomic elements and contains repeating substructures. The 'jr' segment is for Jump Routes and the 'plt' segment is for Planets. Actually, I am not entirely sure this is totally XML compatible, but it is not far off.
Well, it is certainly not XML compatible, as a parser would not be able to read it. However, the heirarchical nature of the data can be used for an XML UWP file.

But your sample, Bill made me think about something - Have a planetary schema that can then be consumed into a subsector schema and from there into a sector.

One issue that 'jumps' out immediately is jump routes. Within the example you present, routes can only be mapped within a sector. What happens when a jump route heads out of a sector? I guess that you would have to build in some way of generically mapping the surrounding sectors. It may be better to leave those out entirely.
 
If you want an attempt at an XML schema design take a look at Stellar Cartographer. This was a "Learn Java and XML" project of mine which i've not touched in a couple of months. There is a relativly complete XML Schema for Traveller galaxy/sector/star systems.

It's not complete, it won't handle all of the data generated by some of the later systems, but will handle all of Book 6 data.
 
Very cool, Tom. I was poking around today during some free time to try and work something out. I only got so far before work called, of course.
 
Originally posted by Jim Fetters:
Well, it is certainly not XML compatible, as a parser would not be able to read it. However, the heirarchical nature of the data can be used for an XML UWP file.
After adding the standard XML header, and changing all the curly braces to the angle brackets, that sample of mine imported as is into Access 2000. 4 tables were created, one for each "segment" as I called them, and each table had the right amount of rows.

Excel or some other simple parser may not be able to import it, but Access or any program can.

But your sample, Bill made me think about something - Have a planetary schema that can then be consumed into a subsector schema and from there into a sector.
Exactly. That is what HL7 does. For example, it has this heirarchy for Lab testing and results:
</font><blockquote>code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">MSH - message header
PID - patient identifier
OBR - Observation Request, i.e. Lab Order 1
OBX - result #1 for OBR
OBX - result #2 for same OBR
OBR - Lab Order 2
OBX - result #1 for OBR
OBX - result #2 for same OBR </pre>[/QUOTE]and so on.

One issue that 'jumps' out immediately is jump routes. Within the example you present, routes can only be mapped within a sector. What happens when a jump route heads out of a sector?
We'll figure something out.
 
Eaxmple XML file - I've had to replace all the < and > characters with { and } to get the post accepted. I've also not got round to doing an example XSD file yet. Sorry folks.

{?xml version="1.0" encoding="UTF-8" ?}
{TravellerDataStandard version="1.0"}
{SectorData}
{Sector xPos="0" yPos="0" code="FJ" name="Gateway" era="M1000"}
{Subsector code="A" name="Subsector A" /}
{Subsector code="B" name="Subsector B" /}
{Subsector code="C" name="Subsector C" /}
{Subsector code="D" name="Subsector D" /}
{Subsector code="E" name="Subsector E" /}
{Subsector code="F" name="Subsector F" /}
{Subsector code="G" name="Subsector G" /}
{Subsector code="H" name="Subsector H" /}
{Subsector code="I" name="Subsector I"}
{System name="Tanis" hexLocation="0107"}
{! Can specify systems here within subsector giving local hex }
{! should only specify systems once - subsector or sector level }
{/System}
{/Subsector}
{Subsector code="J" name="Subsector J" /}
{Subsector code="K" name="Subsector K" /}
{Subsector code="L" name="Subsector L" /}
{Subsector code="M" name="Subsector M" /}
{Subsector code="N" name="Subsector N" /}
{Subsector code="O" name="Subsector O" /}
{Subsector code="P" name="Subsector P" /}
{Route startHex="0101" endHex="0201" colour="0x3333ff" /} {! Colour = blue }
{System name="Tanis" hexLocation="0127"}
{UWP}
{Starport}E{/Starport}
{Size}A{/Size}
{Atmosphere}8{/Atmosphere}
{Hydrosphere}9{/Hydrosphere}
{Population}6{/Population}
{Government}5{/Government}
{LawLevel}5{/LawLevel}
{TechLevel}7{/TechLevel}
{/UWP}
{Bases}{/Bases}
{Notes}Ni Ri{/Notes}
{PBG}
{Population}5{/Population}
{AsteriodBelt}2{/AsteroidBelt}
{GasGiant}0{/GasGiant}
{/PBG}
{LRX} {! Galactic 2.4 stats }
{Life}{/Life}
{Resource}{/Resource}
{Export}{/Export}
{/LRX}
{Allegiance}Na{/Allegiance}
{StellarData}
{Star}F0 V{/Star}
{/StellarData}
{/System}
{! ... and so on for the other systems in the sector}
{/Sector}
{/SectorData}
{/TravellerDataStandard}
 
Back
Top