Catalog metadata

From FlightGear wiki
Revision as of 15:24, 16 August 2020 by Stuart (talk | contribs) (Update link to catalog tag list)
Jump to navigation Jump to search

Tags with catalog metadata can be added to aircraft to help searching and filtering them, for example in the launcher or future versions of the aircraft center, so that a user can quicker find the aircraft of interest.

Status/news

Now that James has merged the preview and splash screen changes, he wants to start a concerted effort to improve the metadata of all the aircraft in FGaddon. This means:

  • Ensuring there is a suitable "long" description
  • Adding or updating ratings
  • Ensuring variant or primary info is correct
  • Ideally adapting to the new preview/splash system (but not required)
  • Adding metadata tags, for better searching/usability the future

All of these are intended to help users browsing the aircraft, via the launcher or other methods. The proposal by James is to post about this on the forum, and ask for volunteers to pick aircraft, and submit patches or updates to myself and some other willing reviewers (Stuart has also volunteered as reviewer, but more people are welcome). Aside form ensuring high quality, we also need to ensure that aircraft maintainers are given the opportunity to update their own aircraft. Any co-volunteers to manage the process, and especially suggestions on how to manage this in a way that is friendly towards aircraft maintainers, but also gives a reasonable chance that 90% of aircraft in FGaddon have up to date metatdata by the next release, are welcome. I am sure we will have the usual debate on subjectivity of ratings, but, that’s another thing the reviewers will have to deal with. (James Turner suggested there is some criteria on the wiki from the last time we did this?) (There is a task on me to link the tagging system into the aircraft search, so that searching on "fighter" or "glass-cockpit" brings up appropriate matches. This tends to work out anyway when aircraft have a long-description text, but it is still very beneficial to the launcher to have some meta-data about how aircraft are used).[1]

Catalogs

The overall aim is to support a decentralized development system with the only central point being the aircraft package manager for end users.[2]. Users can simply add a hangar URL for FGUK, Lake of Constance or similar, and browse those aircraft within the launcher.

Most importantly we can improve the end-user browsing and discovery experience by enforcing some required meta-data, images and similar in the catalogs, and we can manage the install process so that users don’t get confused about where to move an aircraft file.[3]

FGMeta contains a create_catalog.py script which runs over FGAddon but could be used against another aircraft store containing multiple aircraft to generate a catalog used by the launcher in combination with a webhost to publish aircraft to users.[4]

The catalog is just an XML file, and the other files needed are the thumbnail images for each package, and the package Zip files themselves; The system is deliberately designed to be able to be hosted statically on any web provider. The create_catalog.py gives one example of creating a suitable catalog XML file, but any other approach is also valid.[5]

Supported Tags

Note  Please do not extend this list without discussion and agreement.

The tags are translation and search keys, not human-readable strings. Any additions or changes mean updated translation files. The catalog-generator script will reject aircraft with non-standard tags!

The definitive list of tags can be found here: https://sourceforge.net/p/flightgear/fgmeta/ci/next/tree/python3-flightgear/flightgear/meta/aircraft_catalogs/catalogTags.py Tags are designed to be inclusive, not exclusive, to give the broadest range of search results. If multiple tags apply, use them. The DC-3 for example have had multiple civilian and military roles.

Aircraft types

  • ga
  • helicopter
  • fighter
  • interceptor
  • glider - But does this includes the Space Shuttle, Virgin Galactic's SpaceShipeOne, as well?
  • spaceship
  • bomber
  • tanker
  • cargo
  • transport
  • bizjet - Not just for jets, but I cant think of a better term
  • reconnaissance
  • airship
  • balloon
  • trainer - Used in a pilot training role
  • aerobatic
  • ultralight

Manufacturers

The intention here is to provide logical groupings, not to track corporate history. For example the MD-80 and MD-11 would get the douglas tag, which will likely translate to "Douglas / McDonell-Douglas" in the user interface. The Boeing 717 could get the boeing and douglas tags. Also it is not supposed to be an exhaustive list. This is so we for example can search for "all glass-cockpit Boeing and Airbus aircraft". It might be worth actively lying in the tags, in essence group all Hawker-Siddley/BAC/Avro aircraft under the vickers tag.

  • airbus
  • avro
  • bell
  • boeing
  • bombardier
  • cessna
  • dassault
  • diamond
  • douglas
  • embraer
  • eurocopter
  • fairchild
  • fairey
  • fokker
  • grumman
  • lockheed
  • pilatus
  • piper
  • robin
  • vickers
  • vought

Eras

Logical groupings, not historical accuracy. Some aircraft are going to have a lot of these, for example the B-52. Again the goal is intelligent searches: "show me all WW2 fighters". Wee would like to avoid this getting political too and comments on that are welcome.

  • 1910s
  • 1920s
  • 1930s
  • 1940s
  • 1950s
  • 1960s
  • 1970s
  • 1980s
  • 1990s
  • 2000s
  • 2010s
  • coldwar
  • early-pioneers
  • golden-age
  • gulfwar1
  • gulfwar2
  • vietnam
  • ww1
  • ww2

Aircraft Features

This could get long, as always trying to focus on tags people might search for, for example: "show me all the VTOL aircraft" or "show me all the biplanes". Some will be very useful in improving the user experience; If the plane is tagged with seaplane we might be able to force a water start (but not for amphibious aircraft obviously).

  • prototype
  • experimental - For X1 and similar X-planes
  • ifr - Panel and equipment (radios, lighting) suitable for IFR flight
  • fixed-gear
  • retractable-gear
  • tail-dragger
  • carrier-hook - Do we need a separate tag for carrier-capable?
  • stol - For short-takeoff
  • vtol - For the Harrier, F-35 if it ever works, and the Osprey
  • floats
  • amphibious
  • canard - Canard planform
  • delta - Delta planform; Vulcan, Concorde, Space Shuttle
  • variable-geometry - For Tomcats and the like
  • supersonic
  • glass-cockpit
  • refuel - Supports air-to-air refeuling
  • seaplane - Flying boat or float plane
  • etops - ETOPS capable aircraft, presumably implies twin-engined
  • biplane
  • triplane
  • pressurised - Pressurised cabin
  • wing-fold - usually for carrier aircraft

FlightGear Features

  • combat - Support this various MP combat / bomb-able options
  • dual-controls - Supports copilot over MP
  • tow - Supports glider towing over MP
  • rembrandt - Supports Rembrandt, obviously

Propulsion

  • piston
  • radial - Radial piston engined
  • diesel
  • jet
  • turboprop
  • 1-engine
  • 2-engine
  • 3-engine
  • 4-engine
  • turbocharged - For pistons with a turbo-charger
  • afterburner
  • rocket
  • electric - For power-assisted gliders, mostly.
  • unpowered - Balloons, etc

Examples

  • B-52 would have: bomber, jet, boeing, coldwar, 1960s, vietnam, 1970s, 1980s, gulfwar1, nato, refuel, retractable-gear and ifr.
  • Citation would have: cessna, bizjet, jet, 2-engine, glass-cockpit, ifr and retractable-gear.
  • Cub would have: piper, piston, 1-engine, ga, trainer, fixed-gear, 1930s, ww2 and tail-dragger.

Adding metadata to aircraft

The tags are added to or included into the <sim> section of the Aircraft-set.xml file(s), like for example below:

<?xml version="1.0" encoding="UTF-8" ?>

<PropertyList>

 <!-- ... -->

 <sim>

  <!-- ... -->

  <tags>
   <tag>passenger</tag>
   <tag>boeing</tag>
   <tag>jet</tag>
   <tag>twin-engine</tag>
   <tag>retractable-gear</tag>
   <tag>etops</tag>
   <tag>glass-cockpit</tag>
   <tag>ifr</tag>
  </tags>

  <!-- ... -->

 </sim>

 <!-- ... -->

</PropertyList>

References

Related content

Wiki articles

Forum topics

Developer mailing list threads

Source code