benefits | modules | events | modelling principles | test questions | performance | tools
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?
City and locatedIn value Outer_Rim
result
= Cloud City
,
Canto Bight
etc
Event and at value Naboo
Event and (at some (hasTerrain some Mountains))
result
= B-Wing_test_flight
,
First_Battle_of_Geonosis
etc
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))
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
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
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.
A surprisingly large number of Bounty Hunters
are
not know to be members of the guild
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
- Should include
Ben_Solo
. - Also includes
Han_Solo
(as Ben's Father) as related is transitive. Should it? Rex
is related toJango Fett
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
participatedIn some (Fight and included some (Killing and (of some (hadRole some StormTrooper))))
Too many to mention
included some (participant some Star_Destroyer)
included some (used some Explosive)
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)