nickdrummond / star-wars-ontology

An OWL ontology describing events, characters and places in the Star Wars Universe
https://nickdrummond.github.io/star-wars-ontology/
3 stars 1 forks source link

Can we identify Gregor by his callsign? #23

Closed nickdrummond closed 2 years ago

nickdrummond commented 2 years ago

Chase_of_CC-5576 identifies the captive by callsign. It would be good if we could infer this is Gregor.

Callsign is not functional - it really pertains to a given role It is not specified as a key - can't remember if this is possible in Protege. Might be an issue with rebels using different callsigns in different flight groups - perhaps use a different property?

nickdrummond commented 2 years ago

Ah, keys are asserted on the Class https://www.w3.org/2007/OWL/draft/owl2-primer/#Keys

In Protege, this is setting a "target for key" of callsign for Clone.

This works for inferring same individuals based on callsign, but doesn't produce the inference that Gregor was captured in the chase.

captureOf exactly 1 (Clone 
and (callsign value "CC-5576"^^xsd:string))
nickdrummond commented 2 years ago

I must be missing something in the modelling because adding the following is consistent:

not (captureOf value Gregor)
nickdrummond commented 2 years ago

It appears that closure is needed over all Clones - not sure why Clone == {named clones here}

nickdrummond commented 2 years ago

This doesn't seem worth it - apart from the maintenance nightmare, the reasoner also seems to really hit the wall making inferences about Chase_of_CT-5576

nickdrummond commented 2 years ago

It would also be bad modelling as this is not the set of all clones:

{Axe , Bel , Bly , Boil , Boost , Broadside , Cameron , Chopper_Clone , Cody , Crosshair , Cut_Lawquane , Cutup , Denal , Droidbait , Echo , Fil , Fives , Flash , Fox , Gree , Gregor , Grey , Gus , Hawk , Hevy , Howzer , Hunter , Jek , Jesse , Jester , Kickback , Lucky , Matchstick , Niner , O-Niner , Oddball , Ponds , Punch , Razor , Rex , Rys , Sinker , Sketch , Slammer , Slick , Stak , Swoop , Tag , Tech , Thire , Tucker , Waxer , Wolffe , Wooley , Wrecker}
nickdrummond commented 2 years ago

Even adding the key bumps classification time from ~6s to >20s

nickdrummond commented 2 years ago

So, NO is the answer

nickdrummond commented 2 years ago

Followup

A simple test case for this exists here: starwarsontology/test-keys.rdf at master · nickdrummond/starwarsontology

The question is, why does Event e only infer attendance by the individual Nick-1 (and any synonyms) if the Person class is closed, restricting the instances to those known?

Checked with Uli and she thinks the modelling is correct, and it seems HermiT does make this inference without the unnecessary closure, but Openllet does not (unfortunate as this is the reasoner we are using).

nickdrummond commented 2 years ago

Actually, HermiT only infers that the 2 classes are equivalent, not that "e attendedBy Nick-1", which is what we were after. In fact Uli pointed out that we can assert all sorts about e that do not create inconsistencies. The addition of the closure may force HermiT to switch into a different OWL profile so behave a little better.

So, we can't use HermiT either really (and its still slow to classify - although fast navigating so maybe its worth thinking about in static scenarios)