Traveller Store CotI Features New Posts Mark Forums Read Register


Go Back TravellerRPG.com > Citizens of the Imperium > General Traveller Discussions > Software Solutions

Software Solutions Discussions on Traveller related software.

Reply
 
Thread Tools Display Modes
  #11  
Old May 21st, 2013, 12:09 AM
Hyphen's Avatar
Hyphen Hyphen is offline
Citizen: SOC-14
 
Join Date: Jul 2002
Location: Margate, Brisbane
Posts: 1,044
Gallery : 10
Hyphen Citizen+Hyphen Citizen+
Default

Perfect, thank you.

Given the above, Traveller has a number of ready-made vocabulary structures:
- UPP (plus skill list)
- UWP
- HG USP (and associated ship description)
- MT ship description (works for vehicles too)

On top of this, I think you'll find something like _Heaven and Earth_ (or _World Builder_?) has a complete structure for a star system.

Can anyone think of any more?

BTW, I'm currently grappling with a Resource Discovery (i.e. library card catalogue) database for all the Traveller magazine articles. I think I now have the structure correct (it's based off Dublin Core plus AGLS) and am working on the input forms and output reports. The thing that's going to take the time is typing in all that data, although I'm hoping I can cheat here and there (like grab the TOCs from the Trav Bibliography site).

(A Traveller player in Bungendore? Seriously?! In the new development, presumably? Where were you when I was in Canberra? ;-)
__________________
David "Hyphen" Jaques-Watson
Beowulf Down/Tavonni/Vilis/SM 1520
Titles:Awards:
- Count Zuiar (Dagu 0705)- Starburst for Extreme Heroism - Pursuits at Alell
- Baroness Heidi Maria Heyerdahl, Tavonni (Spin 1520)- MCG - Final Victory at Emerald
- Baron Sii (Dagu 0932)TAS:
- Ritter of Tavonni (Spin 1520)- Bearer (Ley: Silver 0221); Bearer (Lish: Zemud 0212)
Coins:(#170) XO (Lt) FE Holmes, 154th BR Sq
(#222) PlatLdr (LtO2), 3P, ΔTrp (G-Tank), 2B (LI), 4518th(#282) XO (LtO2), ΒCo (J-Trp), 6B (JT), 4518th
Reply With Quote
  #12  
Old May 21st, 2013, 01:03 AM
charvolant charvolant is offline
Citizen: SOC-6
 
Join Date: Aug 2007
Location: Bungendore
Posts: 20
Gallery : 0
charvolant Citizen
Default

Quote:
Originally Posted by Hyphen View Post
Can anyone think of any more?
The QREBS system in T5 is one that looks fairly obvious. Incidentally, QREBS should probably be extended with Uniqueness (similar but parallel to the fame score) and Aesthetics (Flux) attributes.

Quote:
Originally Posted by Hyphen View Post
(A Traveller player in Bungendore? Seriously?! In the new development, presumably? Where were you when I was in Canberra? ;-)
Actually in the older part of town. I've been there for 16 years or so but I've been mostly engaged in the rearing of offspring, fighting fires, finishing off the family PhDs and other time-wasting rubbish. My kids are of an age where a little light refereeing seems to be in order.
Reply With Quote
  #13  
Old May 21st, 2013, 04:12 AM
Hyphen's Avatar
Hyphen Hyphen is offline
Citizen: SOC-14
 
Join Date: Jul 2002
Location: Margate, Brisbane
Posts: 1,044
Gallery : 10
Hyphen Citizen+Hyphen Citizen+
Default

Enjoying those nice frosty -4 degress, I guess? Your maximums have been our minimums. Although I confess to being surprised - Brisbane occasionally gets cold! (Well, cold enough for a jumper or light coat, anyway - it reminds me of Doug Berry's stories of tourists on 'Frisco's cable cars...)
__________________
David "Hyphen" Jaques-Watson
Beowulf Down/Tavonni/Vilis/SM 1520
Titles:Awards:
- Count Zuiar (Dagu 0705)- Starburst for Extreme Heroism - Pursuits at Alell
- Baroness Heidi Maria Heyerdahl, Tavonni (Spin 1520)- MCG - Final Victory at Emerald
- Baron Sii (Dagu 0932)TAS:
- Ritter of Tavonni (Spin 1520)- Bearer (Ley: Silver 0221); Bearer (Lish: Zemud 0212)
Coins:(#170) XO (Lt) FE Holmes, 154th BR Sq
(#222) PlatLdr (LtO2), 3P, ΔTrp (G-Tank), 2B (LI), 4518th(#282) XO (LtO2), ΒCo (J-Trp), 6B (JT), 4518th
Reply With Quote
  #14  
Old May 21st, 2013, 05:32 AM
simonh simonh is offline
Citizen: SOC-12
 
Join Date: Jun 2008
Location: London
Posts: 447
Gallery : 0
simonh Citizen+simonh Citizen+
Default

Quote:
Originally Posted by heckj View Post
Simon -

If you want to bind it into makhidkuran, you're very welcome to do so. PM me your github account, and I'll hook you up.
On github I'm: simon-hibbs

Is there a standard way in github I can link from Starbase to Makhidkarun, like an "If you like this, you might also like..." link?

One thing I'd like to do is modify the world generation rules scripts so that if they are run as standalone scripts they produce an output file. That way the same script can be used either as a StarBase rules file, or just to produce text or perhaps HTML output. That might make them more generally useful and interesting.

Quote:
The reason you're seeing a lot of C up there is that what I've had in my "forever old" Missouri archives* and received permission to republish. When I create code these days, I'm typically doing it in python (although not that fancy Qt stuff you're doing) or Objective-C, and I expect we'll have more up there shortly.
The world generation scripts don't import anything from Qt so I should be able to make them independently usable with just a standard Python install. If I build them as windows binaries using Py2exe as I do with StarBase, you won't even need that.

I'll see what I can do this afternoon. Work is a bit slack as I'm counting down to leaving this job in a few weeks.

Quote:
Most programs shared in the past couple of years have been more "here's the finished product" rather than source - your StarBase being one of the few exceptions.
Yep, having the source shared from github, but the windows executable currently just shared from my dropbox isn't ideal. I've seen several projects that use github to share the source, but google code to share the pre-built executable. That's pretty kludgy though. I'd like to have a fourum for it as well, maybe on Yahoogroups, but then things would be even more fragmented.

What I really need is a single home page for StarBase that acts as a hub for the project, to tie things together.

Simon Hibbs

Last edited by simonh; May 21st, 2013 at 06:44 AM..
Reply With Quote
  #15  
Old May 21st, 2013, 12:33 PM
heckj heckj is offline
Citizen: SOC-10
 
Join Date: Sep 2008
Location: Seattle
Posts: 62
Gallery : 0
heckj Citizen
Default

Quote:
Originally Posted by simonh View Post
Is there a standard way in github I can link from Starbase to Makhidkarun, like an "If you like this, you might also like..." link?
Not that I know of, sorry...

Quote:
Originally Posted by simonh View Post
One thing I'd like to do is modify the world generation rules scripts so that if they are run as standalone scripts they produce an output file. That way the same script can be used either as a StarBase rules file, or just to produce text or perhaps HTML output. That might make them more generally useful and interesting.
Cool!

Quote:
Originally Posted by simonh View Post
The world generation scripts don't import anything from Qt so I should be able to make them independently usable with just a standard Python install. If I build them as windows binaries using Py2exe as I do with StarBase, you won't even need that.

I'll see what I can do this afternoon. Work is a bit slack as I'm counting down to leaving this job in a few weeks.
Heh - no rush. I've been meaning to start on something similar for a while, read through your code, and decided to take a start at making some simple libraries for traveller, specifically the T5 rulesets, so I'm starting up a little python library at https://github.com/makhidkarun/t5 that I'm aiming to use within a little web app for showing trade information.

BTW: I've added you as an "owner" to the organization makhidkarun, so you can create new repositories under there and add in as you like. If you're interested in collaborating in the t5 libraries as I get them further alone, that'd be awesome too.

For documentation, I'd recommend taking a look at ReadTheDocs as a possible option. There's also the possibility of using GitHub Pages - which makes for very simple, statically defined documents (often in Markdown) that github does the hosting for free for you.
Reply With Quote
  #16  
Old May 21st, 2013, 10:32 PM
charvolant charvolant is offline
Citizen: SOC-6
 
Join Date: Aug 2007
Location: Bungendore
Posts: 20
Gallery : 0
charvolant Citizen
Default

Quote:
Originally Posted by simonh View Post
On github I'm: simon-hibbs
That way the same script can be used either as a StarBase rules file, or just to produce text or perhaps HTML output. That might make them more generally useful and interesting.
Naturally, I'd be interested if the output was RDF.
Reply With Quote
  #17  
Old May 21st, 2013, 11:37 PM
charvolant charvolant is offline
Citizen: SOC-6
 
Join Date: Aug 2007
Location: Bungendore
Posts: 20
Gallery : 0
charvolant Citizen
Default Rules of engagement

I'm more interested in this than I should be, so here goes.

To begin with, my interest in a Traveller ontology was driven by my own interest in tools for running a campaign and access to stuff that has already been developed. I'm naturally interested in exchange formats so that data can be made available online and transferred between software packages. Plus a certain level of "if I wanted to develop software for Traveller, this is how I would do it."

So, to make this worthwhile, I'm interested in developing an RDF-based exchange format that can be used to:
  • Store information online in a form that can be readily imported into semi-existing software (by which I mean software extended to read the data).
  • Export/import data between software
  • Generate human-orientated representations of the data
  • Allow user- and campaign-based extensions.

Obviously, the best use of all this would be for people to naturally want to use what's been developed for their own purposes. To do this, I'd like to take a consensus-based approach, with input from users such as heckj, simonh, robject and Hyphen, if they're interested (although not restricted to them alone). With several iterations of the following:
  • A broad discussion on the approach to a particular area (for example, how something like a class of ships might be handled)
  • A search for the current state-of-the-art, if necessary. In a lot of cases, this just means pulling stuff out of the T5 core rules. However, where there's existing software it makes sense to look at how it models things.
  • The development and documentation of a trial ontology for that area. This would be put into the makhidkarun github repository.
  • A comment period, say a month, so that people can look at it and see whether they like it.
  • The development and documentation of an updated ontology.
  • Wash, rinse, repeat. Until there's a general consensus that things are about right. TODO If a consensus can't be reached, then there needs to be some way of resolving things. I would think that, broadly, if you contribute, you get a vote as to whether something works or whether it needs to be scrapped; no glorious leaders.

This model is loosely based on the procedures of the Open Geospatial Consortium
fine producers of massive, incomprehensible standards.

My suggestion is that this thread gets used as the forum for these discussions. I'll kick off by doing a post about some of the higher-level considerations in the near future.

The other issue that I need to address is that I'm essentially strip-mining the T5 rules. Ethically, let alone legally, I should get the blessing of Grandfather.

Comments? Complaints? Issues?
Reply With Quote
  #18  
Old May 22nd, 2013, 05:48 AM
simonh simonh is offline
Citizen: SOC-12
 
Join Date: Jun 2008
Location: London
Posts: 447
Gallery : 0
simonh Citizen+simonh Citizen+
Default

Open data interchange formats are a Good Thing, so I'm definitely interested.

For Starbase I've tried to make it as easy as possible to access the data in other tools. Hence the world data is stored in a CSV file that can be opened directly in a spreadsheet, custom world attribute descriptions are just text files, world data reports can be cut-and-pasted directly into a word processor, maps can be saved as PNG files and the standard document export format is PDF. You can essentially take a StarBase project without the application and get at all of the data in it without needing any special tools.

However I have not yet seriously addressed data interchange with other applications. I have written a SEC file importer script for StarBase and do intend to integrate it into the UI at some point, and I should really do a SEC file export filter as well.

So that's the current, or legacy situation. The SEC file format isn't going anywhere, but it has serious limitations. We could really do with something better and at this point an extended SEC format with embedded XML elements looks like a practical approach (though I'm not a great fan of XML).

I'm not familiar with RDF though, other than 'drive by' encounters with it on forums and web sites. What would a world description look like in RDF? My understanding is that RDF is not itself a file format, but that it is a meta-format and the actual data gets serialised in XML or Notation3 (which to my eyes looks a bit like JSON if you squint a little). As a lowly coder I understand the advantages of XML and JSON and know how to handle those, but I'd have no idea what to do with RDF. I suppose it's a kind of super-DTD that describes what the encoded elements mean?

Simon Hibbs
__________________
Check out StarBase, the open source science fiction campaign mapping application.
Reply With Quote
  #19  
Old May 22nd, 2013, 08:57 PM
charvolant charvolant is offline
Citizen: SOC-6
 
Join Date: Aug 2007
Location: Bungendore
Posts: 20
Gallery : 0
charvolant Citizen
Default

Quote:
Originally Posted by simonh View Post
What would a world description look like in RDF?
Here goes:

#
@prefix dcterms: <http://purl.org/dc/terms/>
@prefix t5: <http://data.travellerrpg.com/ontolgies/t5.owl#> .
@prefix t5w: <http://data.travellerrpg.com/ontolgies/t5world.owl#> .

# Note that the URIs are just things I've made up. What the URI scheme is
# and how it can be used for traveller generally and specific campaigns needs
# to be the subject of ... some discussion
<http://data.travellerrpg.com/atlas/sector/spinward/subsector/regina/system/regina/world/regina>
# Basic stuff
rdf:type t5:World;
rdf:type t5w:AgriculturalWorld; # Also implies t5:World, but anyway
dcterms:title "Regina"; # Use Dublin Core terms to make this generally findable
t5:UPP "A788899-C"; # Note this can be derived from other stuff
# See below for system information
t5w:system <http://data.travellerrpg.com/atlas/sector/spinward/subsector/regina/system/regina>;
t5w:parent <http://data.travellerrpg.com/atlas/sector/spinward/subsector/regina/system/regina/world/assiniboia>;
t5w:orbit 4^^xsd:int;
# References linked open data descriptions of these things
t5w:starport <http://data.travellerrpg.com/id/world/starport/class-a>;
t5w:diameter <http://data.travellerrpg.com/id/world/diameter/7000mi>;
t5w:atmosphere <http://data.travellerrpg.com/id/world/almosphere/dense>
# And more and more ...
...
# Descriptive info
t5:description "Homeworld of Archduke Norris ...";
t5:history <http://data.travellerrpg.com/atlas/sector/spinward/subsector/regina/system/regina/world/regina/description/history>;
# Campaign-specific stuff, added by a user
t5:campaignSetting <http://www.charvolant.org/traveller/DougsCampaign>
<http://www.charvolant.org/traveller/DougsCampaign#location> <http://www.charvolant.org/traveller/DougsCampaign/Vellia>.

# System information
<http://data.travellerrpg.com/atlas/sector/spinward/subsector/regina/system/regina/world/regina>
rdf:type t5w:StarSystem;
dcterms:title "Regina";
t5w:subsector <http://data.travellerrpg.com/atlas/sector/spinward/subsector/regina>;
t5w:primary <http://data.travellerrpg.com/atlas/sector/spinward/subsector/regina/system/regina/star/lusor>;
t5w:companion <http://data.travellerrpg.com/atlas/sector/spinward/subsector/regina/system/regina/star/speck>;
t5w:farCompanion <http://data.travellerrpg.com/atlas/sector/spinward/subsector/regina/system/regina/star/darria>;
t5w:gasGiant <http://data.travellerrpg.com/atlas/sector/spinward/subsector/regina/system/regina/world/assiniboia>;
...

<http://data.travellerrpg.com/atlas/sector/spinward/subsector/regina/system/regina/star/lusor>
rdf:type t5w:Star;
dcterms:title "Lusor";
t5w:system <http://data.travellerrpg.com/atlas/sector/spinward/subsector/regina/system/regina>;
t5w:spectralClass <http://data.travellerrpg.com/id/star/spectral/F7-V>;
t5w:habitableZone 3^^xsd:int;
t5w:habitableZone 4^^xsd:int;
...

# Some linked data.
<http://data.travellerrpg.com/id/star/spectral/F7-V>
rdf:type t5w:SpectralClass;
dcterms:title "F7-V";
# Actual links to real astronomical information. This doesn't make much sense at the moment and needs thought but is there for illustration
rdfs:subClassOf <http://eurovotech.org/objects-structure.owl#SpectralClassF>;
rdfs:subClassOf <http://eurovotech.org/objects-structure.owl#LuminosityClassV>;
# More information
dcterms:references <https://en.wikipedia.org/wiki/Spectral_class#Class_F>;
dcterms:references <https://en.wikipedia.org/wiki/Stellar_luminosity>.

# Metadata about the data
# Putting dc:creator into the spectral classifcation means you're talking about the originator of the idea, not the person who wrote it down.
<http://data.travellerrpg.com/id/star/spectral/F7-V.rdf>
dc:creator "Doug Palmer";
dc:created "2013-05-21T10:10:10+10:00"^^xsd:dateTime;


That was a bit long but I wanted to give an idea of how things related and how you could introduce external information and personal add-ons.

Quote:
Originally Posted by simonh View Post
My understanding is that RDF is not itself a file format, but that it is a meta-format and the actual data gets serialised in XML or Notation3 (which to my eyes looks a bit like JSON if you squint a little). As a lowly coder I understand the advantages of XML and JSON and know how to handle those, but I'd have no idea what to do with RDF. I suppose it's a kind of super-DTD that describes what the encoded elements mean?
My take is that things represented by RDF represent a giant (but partial) deductive database. The database part means that what's stored is a graph of relationships between things (similar to an OO object graph). The deductive part means that a reasoner can run across the graph and, with the aid of an ontology, deduce stuff about what's been gathered. The ontology describes what the encoded elements mean and how they relate to each other. The XML, N3, JSN3 (a JSONy version) are all exchange formats for shipping the data between databases.

The database may be some temporary, in-memory thing run by a referee that just gathered stuff off the web and which runs on the referee's PC for the duration of a playing session but I find it helps to think of it as a database.

Last edited by aramis; May 23rd, 2013 at 06:54 AM.. Reason: Disabling smilies (on the advanced edit)
Reply With Quote
  #20  
Old May 28th, 2013, 02:08 AM
charvolant charvolant is offline
Citizen: SOC-6
 
Join Date: Aug 2007
Location: Bungendore
Posts: 20
Gallery : 0
charvolant Citizen
Default First Steps

Here's a few thoughts for how to structure things:

Classes

I'm inclined to use owl classes for only the most structural things: characters, worlds, equipment and so on. It would be possible to classify things such as agricultural worlds and so on by classes but I'm included to treat them more as instances of a concept hierarchy.

Oh yuk, that sounded too postmodern for comfort. I'll give a concrete example.

It's possible to include an owl class that describes an agricultural world: Atmosphere 4-9, Hydrographics 4-8, Population 5-7. At that point, a reasoner would classify anything that was an agricultural world with that class, even though it's not explicitly stated. In this case, a world description would have something along the lines of

Code:
<http://data.travellerrpg.com/atlas/sector/spinward/subsector/regina/system/regina/world/regina> a <http://data.travellerrpg.com/ontolgies/t5world.owl#AgriculturalWorld>
An alternative model is to have a set of resources (URLs) that are classifiers. They can then be added to a world description along the lines of

Code:
<http://data.travellerrpg.com/atlas/sector/spinward/subsector/regina/system/regina/world/regina> <http://data.travellerrpg.com/ontolgies/t5world.owl#worldClassifier> <http://data.travellerrpg.com/id/world/classfier/agricultural>
This alternative model is how SKOS http://www.w3.org/2004/02/skos/ works, which is designed for things like taxonomies, thesaurii and the like. It's downside is that you don't get direct access to the reasoning available from using classes. However, it's readily extensible and allows referees to decide to ignore the letter of the rules.

Templates

The other possible use of classes is to do things like give a race to a character or a class to a ship. So you would end up with something like

Code:
<http://www.charavolant.org/traveller/player/Doug/characrer/Fred> a <http://data.travellerrpg.com/ontolgies/t5character.owl#Human>
or

Code:
<http://www.charvolant.org/traveller/ship/ClearAirTurbulence> a <http://data.travellerrpg.com/ontolgies/t5ship.owl#Scout>
I'm really not keen on this approach, because it tends to over-specify things. Eg. Humans have four limbs, except for Shorty over there who got his legs blown off in the war. Similarly, a long-lived ship will undergo numerous changes and may not fit the definition of, say, a Scout any more.

However, there needs to be some way of saying "this X is a Y" to which I want to add "except for the bits I say are different". To do this, I propose templates: descriptions of things that can be describe the general case, which can be overridden by an actual instance. Eg. Fred, above, is a copy of the standard human template, expressed as something like:

Code:
<http://www.charvolant.org/traveller/player/Doug/characrer/Fred> a <http://data.travellerrpg.com/ontolgies/t5.owl#sophontTemplate> <http://data.travellerrpg.com/sophont/Human>.
Deducable Stuff

Things like UPPs are constructs built from more basic information. They're for display, rather than information. I'd like to leave these things out, in the expectation that a half-way decent piece of software can build them on the fly.

URIs

Still working on this. The general pattern I want to follow is something like:

http://data.travellerrpg.com/<type>/<id>/<type>/<id> and so on, so type might be something like "sophont" and id might be something like "Human". A sequence of type/id pairs indicates some sort of containment (eg. sector - subsector - system - world).

I'm using http://data.travellerrpg.com as an example, but it should be obvious that I expect to set up something, somewhere that will actually deliver data on request.

Some things are not really namable in URIs. For example, there may be multiple characters called Fred floating about the place. A source of unique IDs that can be used to identify a specific Fred will be needed.

Individual campaigns need their own URIs. For purely local stuff, stored on a referee's computer, they could be the "other" URI, the URN, with a structure like: urn:x-traveller:character:Fred but it would be helpful to set up some sort of way of allowing campaigns to set up their own information sources.

Ontology Structure

Ontologies import one another in a horribly tentacular way. There's no good reason for not modularising the ontology and general good practice makes an ontology inherit from an "upper ontology" that describes the more abstract parts of what's going on.

What I have in mind is something like:

Code:
                       v-- Worlds  <-----\
RPG <-- Traveller <-- Characters  <- Campaign
                       ^-- Robots <-----/
                       ^-- ...etc ...
So the top onotology just encodes things common to RPGs: the concept of a character (and an NPC), an attribute, a player, a games master, etc.

The Traveller ontology describes the top-level concepts of Traveller: chatacters, worlds, etc. and some specialisation of the RPG ontolgy (eg. the preferred term for a games master is "referee"). I don't know if this is possible, but the idea of this ontology is to describe the relationships between things and leave the detail to:

The Worlds, Characters, etc. ontologies describe those things in detail.

A campaign ontology is a home-brew ontology that describes anything that some bright spark wants to add.

Questions, Comments, Complaints?

Have at it!

Once this is relatively stable, I'll start documenting things.
Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

This website and its contents are copyright ©2010- Far Future Enterprises. All rights reserved. Traveller is a registered trademark of Far Future Enterprises .
Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Copyright (c) 2010-2013, Far Future Enterprises. All Rights Reserved.