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:
- Asserted facts
- Inferred facts
- Usage (includes backward references)
- DL query
- SparQL
- Shacl
- Code (OWLAPI)
- Sqwrl?
- Protege tooling
- Individuals matrix
- Ontograf
- Other OWL tools?
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
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
Or more complete if we also capture sub-events:
included some (participant value Lando_Calrissian)
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))
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}))
Or planets that Ahsoka has been to:
Planet and locationOf some (included some (participant value Ahsoka_Tano))
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)))
Who is related to Anakin Skywalker?
relatedTo value Anakin_Skywalker
- Should include
Ben_Solo
. - Also includes
Han_Solo
(as Ben’s Father) as related is transitive. Should it? Rex
is related toJango Fett
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
- ie not everyone in the Empire knows each other
- not everyone at the Battle of Scariff knows each other
People that participated in the same Events:
participatedIn some (participant value Asajj_Ventress)