View on GitHub

star-wars-ontology

An OWL ontology describing events, characters and places in the Star Wars Universe

home | browse | docs

benefits | modules | events | modelling principles | test questions | performance | tools

Test Questions

What can we ask of the Star Wars Universe we have modelled?

We have the following mechanisms available to us:

Places

Transitivity on locations

City and locatedIn value Outer_Rim

result = Cloud City, Canto Bight etc

What events happened in a given location?

Event and at value Naboo

result

Events that happened in a mountainous place

Event and (at some (hasTerrain some Mountains))

result = B-Wing_test_flight, First_Battle_of_Geonosis etc

What events was Lando involved in?

participant value Lando_Calrissian

result

Or more complete if we also capture sub-events:

included some (participant value Lando_Calrissian)

result

This is nice and compact because included is reflexive. Otherwise it would look like this:

(participant value Lando_Calrissian) or
(included some (participant value Lando_Calrissian))

result

Where has Ezra been?

We can ask the locations of events at which Ezra (or the Spectres) were present:

locationOf some (included some (participant some {Ezra_Bridger, Spectres}))

result

Or planets that Ahsoka has been to:

Planet and locationOf some (included some (participant value Ahsoka_Tano))

result

nb. also see performance issues around making visited property chain

Who is from the Outer Rim?

Get all beings from the Outer Rim:

originallyFrom some (Place and locatedIn value Outer_Rim)

Anakin is in the results as he is from Mos Espa

Membership of Organisations?

We have a mixture of asserted membership and roles in organisations.

This mixture is handled by property chain on memberOf:

hadRole o inOrganisation -> memberOf    

memberOf value Rebel_Alliance

Includes Amilyn_Holdo, who is not directly asserted to be a member

Also includes Ezra_Bridger, who is a member of Spectres

If we want to ask about who holds a specific role in an org, the following is incomplete - should include 3-9:

hadRole some (Officer and inOrganisation value Galactic_Empire)

We need to query for the org and its parts:

hadRole some (Officer and( inOrganisation some ({Galactic_Empire} or memberOf value Galactic_Empire )))

It makes sense to distinguish, as not all roles are equivalent when looking at the whole: A leader of a unit does not make a leader of the army.

Unknown membership

A surprisingly large number of Bounty Hunters are not know to be members of the guild

Born/died before the Battle of Yavin

Can we do this relative to an event? ie more granular so we catch Scarif (the same year)

subjectOf some (Death and during some ( year some xsd:int[< 0] ))

sometimeBefore is transitive but we don’t want to hold a complete timeline for all the story fragments, so we do have to use year aswell

subjectOf some (Death and during some (( year some xsd:int[< 0] ) or (sometimeBefore value Battle_of_Yavin)))
relatedTo value Anakin_Skywalker

Who died in a certain place or by a given hand?

subjectOf some (Killing and during some (at value Death_Star_1))

Included Obi-Wan_Kenobi and Biggs_Darklighter

subjectOf some (Killing and during some (Fight and participant value Darth_Vader))

Included Raymus_Antilles

Who was in a fight in which StormTroopers were killed?

participatedIn some (Fight and included some (Killing and (of some (hadRole some StormTrooper))))

Too many to mention

Any event in which a Star Destroyer was used

included some (participant some Star_Destroyer)

Any event in which explosives were used

included some (used some Explosive)

People meeting/knowing each other

Can we query for the people someone has met? Probably not as just being at the same event or a member of a group doesn’t mean they’ve met.

It depends on the number of people in that event/group

People that participated in the same Events:

participatedIn some (participant value Asajj_Ventress)