@prefix :        <https://www.web3d.org/x3d/content/examples/Basic/development/KeySensorActivationKeySwitchTest.ttl#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix schema:  <http://schema.org/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix x3d:     <https://www.web3d.org/specifications/x3d-4.0.xsd#> .
@prefix x3do:    <https://www.web3d.org/specifications/X3dOntology4.0#> .

:X3D a owl:NamedIndividual, x3do:X3D ;
  x3do:hasHead :head ;
  x3do:hasScene :Scene ;
  x3do:profile 'Immersive' ;
  x3do:version '3.0' ;
  x3do:noNamespaceSchemaLocation 'https://www.web3d.org/specifications/x3d-3.0.xsd' .
:head a owl:NamedIndividual, x3do:head ;
  x3do:hasParent :X3D ;
  x3do:hasMeta :meta_1_1, :meta_1_2, :meta_1_3, :meta_1_4, :meta_1_5, :meta_1_6, :meta_1_7, :meta_1_8, :meta_1_9, :meta_1_10, :meta_1_11, :meta_1_12, :meta_1_13, :meta_1_14 .
:meta_1_1 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'KeySensorActivationKeySwitchTest.x3d' ;
  x3do:name 'title' .
:meta_1_2 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'A simple scene to show KeySensor functionality using Text nodes.' ;
  x3do:name 'description' .
:meta_1_3 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'Don Brutzman' ;
  x3do:name 'creator' .
:meta_1_4 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '22 June 2001' ;
  x3do:name 'created' .
:meta_1_5 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '20 October 2019' ;
  x3do:name 'modified' .
:meta_1_6 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'This doesn&apos;t work because there is no KeySensor implementation yet! Prototype script (written in Java) or native node support for KeySensor is needed.' ;
  x3do:name 'warning' .
:meta_1_7 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'enabled accessType needs to be changed to exposedField once supported by Script capabilities' ;
  x3do:name 'warning' .
:meta_1_8 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'https://www.web3d.org/x3d/specification-2000july/part1/nodesDef.html#KeySensor' ;
  x3do:name 'reference' .
:meta_1_9 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'https://www.web3d.org/x3d/sai/javadoc/org/web3d/x3d/sai/Core/KeySensor.html' ;
  x3do:name 'reference' .
:meta_1_10 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'https://www.web3d.org/x3d/content/examples/Basic/development/KeySensorActivationKeySwitchTest.x3d' ;
  x3do:name 'identifier' .
:meta_1_11 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'https://www.web3d.org/x3d/content/examples/Basic/ConformanceNist/Sensors/Keyboard/KeySensorActivationKeySwitchTest.x3d' ;
  x3do:name 'reference' .
:meta_1_12 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'KeySensor' ;
  x3do:name 'subject' .
:meta_1_13 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'X3D-Edit 3.3, https://www.web3d.org/x3d/tools/X3D-Edit' ;
  x3do:name 'generator' .
:meta_1_14 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '../license.html' ;
  x3do:name 'license' .
:meta dcterms:title "KeySensorActivationKeySwitchTest.x3d" .
:meta dcterms:description "A simple scene to show KeySensor functionality using Text nodes." .
:meta dcterms:creator "Don Brutzman" .
:meta dcterms:created "22 June 2001" .
:meta dcterms:modified "20 October 2019" .
:meta dcterms:warning "This doesn't work because there is no KeySensor implementation yet! Prototype script (written in Java) or native node support for KeySensor is needed." .
:meta dcterms:warning "enabled accessType needs to be changed to exposedField once supported by Script capabilities" .
:meta dcterms:reference "https://www.web3d.org/x3d/specification-2000july/part1/nodesDef.html#KeySensor" .
:meta dcterms:reference "https://www.web3d.org/x3d/sai/javadoc/org/web3d/x3d/sai/Core/KeySensor.html" .
:meta dcterms:identifier "https://www.web3d.org/x3d/content/examples/Basic/development/KeySensorActivationKeySwitchTest.x3d" .
:meta dcterms:reference "https://www.web3d.org/x3d/content/examples/Basic/ConformanceNist/Sensors/Keyboard/KeySensorActivationKeySwitchTest.x3d" .
:meta dcterms:subject "KeySensor" .
:meta dcterms:generator "X3D-Edit 3.3, https://www.web3d.org/x3d/tools/X3D-Edit" .
:meta dcterms:license "../license.html" .
:Scene a owl:NamedIndividual, x3do:Scene ;
  x3do:hasParent :X3D ;
  x3do:hasChildren :WorldInfo_2_1, :SingleKeySensor, :Billboard_2_4 ;
  x3do:hasProtoDeclare :ProtoDeclare_2_2 .
:WorldInfo_2_1 a owl:NamedIndividual, x3do:WorldInfo ;
  x3do:hasParent :Scene ;
  x3do:title 'KeySensorActivationKeySwitchTest.x3d' .
:ProtoDeclare_2_2 a owl:NamedIndividual, x3do:ProtoDeclare ;
  x3do:hasParent :Scene ;
  x3do:hasProtoInterface :ProtoInterface_2_2_1 ;
  x3do:hasProtoBody :ProtoBody_2_2_2 ;
  x3do:name 'KeySensor' .
:ProtoInterface_2_2_1 a owl:NamedIndividual, x3do:ProtoInterface ;
  x3do:hasParent :ProtoDeclare_2_2 ;
  x3do:hasField :field_2_2_1_1, :field_2_2_1_2, :field_2_2_1_3, :field_2_2_1_4, :field_2_2_1_5, :field_2_2_1_6, :field_2_2_1_7, :field_2_2_1_8, :field_2_2_1_9, :field_2_2_1_10, :field_2_2_1_11 .
:field_2_2_1_1 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'enabled' ;
  x3do:type 'SFBool' ;
  x3do:value true .
:field_2_2_1_2 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'set_enabled' ;
  x3do:type 'SFBool' .
:field_2_2_1_3 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'enabled_changed' ;
  x3do:type 'SFBool' .
:field_2_2_1_4 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'isActive' ;
  x3do:type 'SFBool' .
:field_2_2_1_5 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'keyPress' ;
  x3do:type 'SFInt32' .
:field_2_2_1_6 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'keyRelease' ;
  x3do:type 'SFInt32' .
:field_2_2_1_7 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'actionKeyPress' ;
  x3do:type 'SFInt32' .
:field_2_2_1_8 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'actionKeyRelease' ;
  x3do:type 'SFInt32' .
:field_2_2_1_9 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'altKey' ;
  x3do:type 'SFBool' .
:field_2_2_1_10 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'controlKey' ;
  x3do:type 'SFBool' .
:field_2_2_1_11 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'shiftKey' ;
  x3do:type 'SFBool' .
:ProtoBody_2_2_2 a owl:NamedIndividual, x3do:ProtoBody ;
  x3do:hasParent :ProtoDeclare_2_2 ;
  x3do:hasChildren :Group_2_2_2_1 .
:Group_2_2_2_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :ProtoBody_2_2_2 ;
  x3do:hasChildren :KeySensorScript .
:KeySensorScript a owl:NamedIndividual, x3do:Script ;
  x3do:hasParent :Group_2_2_2_1 ;
  x3do:hasField :field_2_2_2_1_1_1, :field_2_2_2_1_1_2, :field_2_2_2_1_1_3, :field_2_2_2_1_1_4, :field_2_2_2_1_1_5, :field_2_2_2_1_1_6, :field_2_2_2_1_1_7, :field_2_2_2_1_1_8, :field_2_2_2_1_1_9, :field_2_2_2_1_1_10, :field_2_2_2_1_1_11 ;
  x3do:hasIS :IS_2_2_2_1_1_12 ;
  x3do:DEF 'KeySensorScript' ;
  x3do:sourceCode """
ecmascript:

// Native support for KeySensor node
// or keyboard-access code needed!
""" .
:field_2_2_2_1_1_1 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :KeySensorScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'altKey' ;
  x3do:type 'SFBool' .
:field_2_2_2_1_1_2 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :KeySensorScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'keyPress' ;
  x3do:type 'SFInt32' .
:field_2_2_2_1_1_3 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :KeySensorScript ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'set_enabled' ;
  x3do:type 'SFBool' .
:field_2_2_2_1_1_4 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :KeySensorScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'keyRelease' ;
  x3do:type 'SFInt32' .
:field_2_2_2_1_1_5 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :KeySensorScript ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'enabled' ;
  x3do:type 'SFBool' .
:field_2_2_2_1_1_6 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :KeySensorScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'shiftKey' ;
  x3do:type 'SFBool' .
:field_2_2_2_1_1_7 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :KeySensorScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'actionKeyRelease' ;
  x3do:type 'SFInt32' .
:field_2_2_2_1_1_8 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :KeySensorScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'isActive' ;
  x3do:type 'SFBool' .
:field_2_2_2_1_1_9 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :KeySensorScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'actionKeyPress' ;
  x3do:type 'SFInt32' .
:field_2_2_2_1_1_10 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :KeySensorScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'enabled_changed' ;
  x3do:type 'SFBool' .
:field_2_2_2_1_1_11 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :KeySensorScript ;
  x3do:accessType 'outputOnly' ;
  x3do:name 'controlKey' ;
  x3do:type 'SFBool' .
:IS_2_2_2_1_1_12 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :KeySensorScript ;
  x3do:hasConnect :connect_2_2_2_1_1_12_1, :connect_2_2_2_1_1_12_2, :connect_2_2_2_1_1_12_3, :connect_2_2_2_1_1_12_4, :connect_2_2_2_1_1_12_5, :connect_2_2_2_1_1_12_6, :connect_2_2_2_1_1_12_7, :connect_2_2_2_1_1_12_8, :connect_2_2_2_1_1_12_9, :connect_2_2_2_1_1_12_10, :connect_2_2_2_1_1_12_11 .
:connect_2_2_2_1_1_12_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_1_12 ;
  x3do:nodeField 'enabled' ;
  x3do:protoField 'enabled' .
:connect_2_2_2_1_1_12_2 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_1_12 ;
  x3do:nodeField 'set_enabled' ;
  x3do:protoField 'set_enabled' .
:connect_2_2_2_1_1_12_3 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_1_12 ;
  x3do:nodeField 'enabled_changed' ;
  x3do:protoField 'enabled_changed' .
:connect_2_2_2_1_1_12_4 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_1_12 ;
  x3do:nodeField 'isActive' ;
  x3do:protoField 'isActive' .
:connect_2_2_2_1_1_12_5 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_1_12 ;
  x3do:nodeField 'keyPress' ;
  x3do:protoField 'keyPress' .
:connect_2_2_2_1_1_12_6 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_1_12 ;
  x3do:nodeField 'keyRelease' ;
  x3do:protoField 'keyRelease' .
:connect_2_2_2_1_1_12_7 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_1_12 ;
  x3do:nodeField 'actionKeyPress' ;
  x3do:protoField 'actionKeyPress' .
:connect_2_2_2_1_1_12_8 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_1_12 ;
  x3do:nodeField 'actionKeyRelease' ;
  x3do:protoField 'actionKeyRelease' .
:connect_2_2_2_1_1_12_9 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_1_12 ;
  x3do:nodeField 'altKey' ;
  x3do:protoField 'altKey' .
:connect_2_2_2_1_1_12_10 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_1_12 ;
  x3do:nodeField 'controlKey' ;
  x3do:protoField 'controlKey' .
:connect_2_2_2_1_1_12_11 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_1_12 ;
  x3do:nodeField 'shiftKey' ;
  x3do:protoField 'shiftKey' .
:SingleKeySensor a owl:NamedIndividual, x3do:KeySensor ;
  x3do:hasParent :Scene ;
  x3do:DEF 'SingleKeySensor' ;
  x3do:enabled false .
:Billboard_2_4 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Transform_2_4_1, :Transform_2_4_2 .
:Transform_2_4_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Billboard_2_4 ;
  x3do:hasChildren :Shape_2_4_1_1, :StartMessageTouched ;
  x3do:hasROUTE :ROUTE_2_4_1_3 ;
  x3do:translation ( 0 2 0 ) .
:Shape_2_4_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_4_1 ;
  x3do:hasGeometry :Text_2_4_1_1_1 ;
  x3do:hasAppearance :Appearance_2_4_1_1_2 .
:Text_2_4_1_1_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_4_1_1 ;
  x3do:hasFontStyle :MiddleMiddle ;
  x3do:string '"Touch this text to enable" "KeySensor activation keys then" "press activation keys to test"' .
:MiddleMiddle a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_4_1_1_1 ;
  x3do:DEF 'MiddleMiddle' ;
  x3do:justify '"MIDDLE" "MIDDLE"' .
:Appearance_2_4_1_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_4_1_1 ;
  x3do:hasMaterial :Material_2_4_1_1_2_1 .
:Material_2_4_1_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_4_1_1_2 ;
  x3do:diffuseColor ( 0.9 0.9 0.4 ) .
:StartMessageTouched a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :Transform_2_4_1 ;
  x3do:DEF 'StartMessageTouched' ;
  x3do:description 'Touch this text to enable KeySensor activation keys then press activation keys to test' .
:ROUTE_2_4_1_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Transform_2_4_1 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'StartMessageTouched' ;
  x3do:toField 'enabled' ;
  x3do:toNode 'SingleKeySensor' .
:Transform_2_4_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Billboard_2_4 ;
  x3do:hasChildren :ActivationKeyMessageSwitch ;
  x3do:translation ( 0 -1 0 ) .
:ActivationKeyMessageSwitch a owl:NamedIndividual, x3do:Switch ;
  x3do:hasParent :Transform_2_4_2 ;
  x3do:hasROUTE :ROUTE_2_4_2_1_1 ;
  x3do:hasChildren :Zero, :One, :Two, :Three, :Four, :Five, :Six, :Seven, :Eight, :Nine, :Ten, :Eleven, :Twelve, :Thirteen, :Fourteen, :Fifteen, :Sixteen, :Seventeen, :Eighteen, :Nineteen, :Twenty ;
  x3do:DEF 'ActivationKeyMessageSwitch' ;
  x3do:whichChoice 0 .
:ROUTE_2_4_2_1_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :ActivationKeyMessageSwitch ;
  x3do:fromField 'actionKeyPress' ;
  x3do:fromNode 'SingleKeySensor' ;
  x3do:toField 'whichChoice' ;
  x3do:toNode 'ActivationKeyMessageSwitch' .
:Zero a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ActivationKeyMessageSwitch ;
  x3do:hasGeometry :Text_2_4_2_1_2_1 ;
  x3do:hasAppearance :SelectionAppearance ;
  x3do:DEF 'Zero' .
:Text_2_4_2_1_2_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Zero ;
  x3do:hasFontStyle :MiddleMiddle-USE-1 ;
  x3do:string '"No activation keypress sensed...."' .
:MiddleMiddle-USE-1 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_4_2_1_2_1 ;
  owl:sameAs :MiddleMiddle . # DEF matching this USE
:SelectionAppearance a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Zero ;
  x3do:hasMaterial :Material_2_4_2_1_2_2_1 ;
  x3do:DEF 'SelectionAppearance' .
:Material_2_4_2_1_2_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :SelectionAppearance ;
  x3do:diffuseColor ( 0 1 0 ) .
:One a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ActivationKeyMessageSwitch ;
  x3do:hasGeometry :Text_2_4_2_1_3_1 ;
  x3do:hasAppearance :SelectionAppearance-USE-1 ;
  x3do:DEF 'One' .
:Text_2_4_2_1_3_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :One ;
  x3do:hasFontStyle :MiddleMiddle-USE-2 ;
  x3do:string '"F1"' .
:MiddleMiddle-USE-2 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_4_2_1_3_1 ;
  owl:sameAs :MiddleMiddle . # DEF matching this USE
:SelectionAppearance-USE-1 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :One ;
  owl:sameAs :SelectionAppearance . # DEF matching this USE
:Two a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ActivationKeyMessageSwitch ;
  x3do:hasGeometry :Text_2_4_2_1_4_1 ;
  x3do:hasAppearance :SelectionAppearance-USE-2 ;
  x3do:DEF 'Two' .
:Text_2_4_2_1_4_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Two ;
  x3do:hasFontStyle :MiddleMiddle-USE-3 ;
  x3do:string '"F2"' .
:MiddleMiddle-USE-3 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_4_2_1_4_1 ;
  owl:sameAs :MiddleMiddle . # DEF matching this USE
:SelectionAppearance-USE-2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Two ;
  owl:sameAs :SelectionAppearance . # DEF matching this USE
:Three a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ActivationKeyMessageSwitch ;
  x3do:hasGeometry :Text_2_4_2_1_5_1 ;
  x3do:hasAppearance :SelectionAppearance-USE-3 ;
  x3do:DEF 'Three' .
:Text_2_4_2_1_5_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Three ;
  x3do:hasFontStyle :MiddleMiddle-USE-4 ;
  x3do:string '"F3"' .
:MiddleMiddle-USE-4 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_4_2_1_5_1 ;
  owl:sameAs :MiddleMiddle . # DEF matching this USE
:SelectionAppearance-USE-3 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Three ;
  owl:sameAs :SelectionAppearance . # DEF matching this USE
:Four a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ActivationKeyMessageSwitch ;
  x3do:hasGeometry :Text_2_4_2_1_6_1 ;
  x3do:hasAppearance :SelectionAppearance-USE-4 ;
  x3do:DEF 'Four' .
:Text_2_4_2_1_6_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Four ;
  x3do:hasFontStyle :MiddleMiddle-USE-5 ;
  x3do:string '"F4"' .
:MiddleMiddle-USE-5 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_4_2_1_6_1 ;
  owl:sameAs :MiddleMiddle . # DEF matching this USE
:SelectionAppearance-USE-4 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Four ;
  owl:sameAs :SelectionAppearance . # DEF matching this USE
:Five a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ActivationKeyMessageSwitch ;
  x3do:hasGeometry :Text_2_4_2_1_7_1 ;
  x3do:hasAppearance :SelectionAppearance-USE-5 ;
  x3do:DEF 'Five' .
:Text_2_4_2_1_7_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Five ;
  x3do:hasFontStyle :MiddleMiddle-USE-6 ;
  x3do:string '"F5"' .
:MiddleMiddle-USE-6 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_4_2_1_7_1 ;
  owl:sameAs :MiddleMiddle . # DEF matching this USE
:SelectionAppearance-USE-5 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Five ;
  owl:sameAs :SelectionAppearance . # DEF matching this USE
:Six a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ActivationKeyMessageSwitch ;
  x3do:hasGeometry :Text_2_4_2_1_8_1 ;
  x3do:hasAppearance :SelectionAppearance-USE-6 ;
  x3do:DEF 'Six' .
:Text_2_4_2_1_8_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Six ;
  x3do:hasFontStyle :MiddleMiddle-USE-7 ;
  x3do:string '"F6"' .
:MiddleMiddle-USE-7 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_4_2_1_8_1 ;
  owl:sameAs :MiddleMiddle . # DEF matching this USE
:SelectionAppearance-USE-6 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Six ;
  owl:sameAs :SelectionAppearance . # DEF matching this USE
:Seven a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ActivationKeyMessageSwitch ;
  x3do:hasGeometry :Text_2_4_2_1_9_1 ;
  x3do:hasAppearance :SelectionAppearance-USE-7 ;
  x3do:DEF 'Seven' .
:Text_2_4_2_1_9_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Seven ;
  x3do:hasFontStyle :MiddleMiddle-USE-8 ;
  x3do:string '"F7"' .
:MiddleMiddle-USE-8 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_4_2_1_9_1 ;
  owl:sameAs :MiddleMiddle . # DEF matching this USE
:SelectionAppearance-USE-7 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Seven ;
  owl:sameAs :SelectionAppearance . # DEF matching this USE
:Eight a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ActivationKeyMessageSwitch ;
  x3do:hasGeometry :Text_2_4_2_1_10_1 ;
  x3do:hasAppearance :SelectionAppearance-USE-8 ;
  x3do:DEF 'Eight' .
:Text_2_4_2_1_10_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Eight ;
  x3do:hasFontStyle :MiddleMiddle-USE-9 ;
  x3do:string '"F8"' .
:MiddleMiddle-USE-9 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_4_2_1_10_1 ;
  owl:sameAs :MiddleMiddle . # DEF matching this USE
:SelectionAppearance-USE-8 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Eight ;
  owl:sameAs :SelectionAppearance . # DEF matching this USE
:Nine a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ActivationKeyMessageSwitch ;
  x3do:hasGeometry :Text_2_4_2_1_11_1 ;
  x3do:hasAppearance :SelectionAppearance-USE-9 ;
  x3do:DEF 'Nine' .
:Text_2_4_2_1_11_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Nine ;
  x3do:hasFontStyle :MiddleMiddle-USE-10 ;
  x3do:string '"F9"' .
:MiddleMiddle-USE-10 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_4_2_1_11_1 ;
  owl:sameAs :MiddleMiddle . # DEF matching this USE
:SelectionAppearance-USE-9 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Nine ;
  owl:sameAs :SelectionAppearance . # DEF matching this USE
:Ten a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ActivationKeyMessageSwitch ;
  x3do:hasGeometry :Text_2_4_2_1_12_1 ;
  x3do:hasAppearance :SelectionAppearance-USE-10 ;
  x3do:DEF 'Ten' .
:Text_2_4_2_1_12_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Ten ;
  x3do:hasFontStyle :MiddleMiddle-USE-11 ;
  x3do:string '"F10"' .
:MiddleMiddle-USE-11 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_4_2_1_12_1 ;
  owl:sameAs :MiddleMiddle . # DEF matching this USE
:SelectionAppearance-USE-10 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Ten ;
  owl:sameAs :SelectionAppearance . # DEF matching this USE
:Eleven a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ActivationKeyMessageSwitch ;
  x3do:hasGeometry :Text_2_4_2_1_13_1 ;
  x3do:hasAppearance :SelectionAppearance-USE-11 ;
  x3do:DEF 'Eleven' .
:Text_2_4_2_1_13_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Eleven ;
  x3do:hasFontStyle :MiddleMiddle-USE-12 ;
  x3do:string '"F11"' .
:MiddleMiddle-USE-12 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_4_2_1_13_1 ;
  owl:sameAs :MiddleMiddle . # DEF matching this USE
:SelectionAppearance-USE-11 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Eleven ;
  owl:sameAs :SelectionAppearance . # DEF matching this USE
:Twelve a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ActivationKeyMessageSwitch ;
  x3do:hasGeometry :Text_2_4_2_1_14_1 ;
  x3do:hasAppearance :SelectionAppearance-USE-12 ;
  x3do:DEF 'Twelve' .
:Text_2_4_2_1_14_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Twelve ;
  x3do:hasFontStyle :MiddleMiddle-USE-13 ;
  x3do:string '"F12"' .
:MiddleMiddle-USE-13 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_4_2_1_14_1 ;
  owl:sameAs :MiddleMiddle . # DEF matching this USE
:SelectionAppearance-USE-12 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Twelve ;
  owl:sameAs :SelectionAppearance . # DEF matching this USE
:Thirteen a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ActivationKeyMessageSwitch ;
  x3do:hasGeometry :Text_2_4_2_1_15_1 ;
  x3do:hasAppearance :SelectionAppearance-USE-13 ;
  x3do:DEF 'Thirteen' .
:Text_2_4_2_1_15_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Thirteen ;
  x3do:hasFontStyle :MiddleMiddle-USE-14 ;
  x3do:string '"13: HOME"' .
:MiddleMiddle-USE-14 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_4_2_1_15_1 ;
  owl:sameAs :MiddleMiddle . # DEF matching this USE
:SelectionAppearance-USE-13 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Thirteen ;
  owl:sameAs :SelectionAppearance . # DEF matching this USE
:Fourteen a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ActivationKeyMessageSwitch ;
  x3do:hasGeometry :Text_2_4_2_1_16_1 ;
  x3do:hasAppearance :SelectionAppearance-USE-14 ;
  x3do:DEF 'Fourteen' .
:Text_2_4_2_1_16_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Fourteen ;
  x3do:hasFontStyle :MiddleMiddle-USE-15 ;
  x3do:string '"14: END"' .
:MiddleMiddle-USE-15 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_4_2_1_16_1 ;
  owl:sameAs :MiddleMiddle . # DEF matching this USE
:SelectionAppearance-USE-14 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Fourteen ;
  owl:sameAs :SelectionAppearance . # DEF matching this USE
:Fifteen a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ActivationKeyMessageSwitch ;
  x3do:hasGeometry :Text_2_4_2_1_17_1 ;
  x3do:hasAppearance :SelectionAppearance-USE-15 ;
  x3do:DEF 'Fifteen' .
:Text_2_4_2_1_17_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Fifteen ;
  x3do:hasFontStyle :MiddleMiddle-USE-16 ;
  x3do:string '"15: LEFT"' .
:MiddleMiddle-USE-16 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_4_2_1_17_1 ;
  owl:sameAs :MiddleMiddle . # DEF matching this USE
:SelectionAppearance-USE-15 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Fifteen ;
  owl:sameAs :SelectionAppearance . # DEF matching this USE
:Sixteen a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ActivationKeyMessageSwitch ;
  x3do:hasGeometry :Text_2_4_2_1_18_1 ;
  x3do:hasAppearance :SelectionAppearance-USE-16 ;
  x3do:DEF 'Sixteen' .
:Text_2_4_2_1_18_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Sixteen ;
  x3do:hasFontStyle :MiddleMiddle-USE-17 ;
  x3do:string '"16: RIGHT"' .
:MiddleMiddle-USE-17 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_4_2_1_18_1 ;
  owl:sameAs :MiddleMiddle . # DEF matching this USE
:SelectionAppearance-USE-16 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Sixteen ;
  owl:sameAs :SelectionAppearance . # DEF matching this USE
:Seventeen a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ActivationKeyMessageSwitch ;
  x3do:hasGeometry :Text_2_4_2_1_19_1 ;
  x3do:hasAppearance :SelectionAppearance-USE-17 ;
  x3do:DEF 'Seventeen' .
:Text_2_4_2_1_19_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Seventeen ;
  x3do:hasFontStyle :MiddleMiddle-USE-18 ;
  x3do:string '"17: UP"' .
:MiddleMiddle-USE-18 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_4_2_1_19_1 ;
  owl:sameAs :MiddleMiddle . # DEF matching this USE
:SelectionAppearance-USE-17 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Seventeen ;
  owl:sameAs :SelectionAppearance . # DEF matching this USE
:Eighteen a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ActivationKeyMessageSwitch ;
  x3do:hasGeometry :Text_2_4_2_1_20_1 ;
  x3do:hasAppearance :SelectionAppearance-USE-18 ;
  x3do:DEF 'Eighteen' .
:Text_2_4_2_1_20_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Eighteen ;
  x3do:hasFontStyle :MiddleMiddle-USE-19 ;
  x3do:string '"18: DOWN"' .
:MiddleMiddle-USE-19 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_4_2_1_20_1 ;
  owl:sameAs :MiddleMiddle . # DEF matching this USE
:SelectionAppearance-USE-18 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Eighteen ;
  owl:sameAs :SelectionAppearance . # DEF matching this USE
:Nineteen a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ActivationKeyMessageSwitch ;
  x3do:hasGeometry :Text_2_4_2_1_21_1 ;
  x3do:hasAppearance :SelectionAppearance-USE-19 ;
  x3do:DEF 'Nineteen' .
:Text_2_4_2_1_21_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Nineteen ;
  x3do:hasFontStyle :MiddleMiddle-USE-20 ;
  x3do:string '"19: PGUP"' .
:MiddleMiddle-USE-20 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_4_2_1_21_1 ;
  owl:sameAs :MiddleMiddle . # DEF matching this USE
:SelectionAppearance-USE-19 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Nineteen ;
  owl:sameAs :SelectionAppearance . # DEF matching this USE
:Twenty a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :ActivationKeyMessageSwitch ;
  x3do:hasGeometry :Text_2_4_2_1_22_1 ;
  x3do:hasAppearance :SelectionAppearance-USE-20 ;
  x3do:DEF 'Twenty' .
:Text_2_4_2_1_22_1 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Twenty ;
  x3do:hasFontStyle :MiddleMiddle-USE-21 ;
  x3do:string '"20: PGDN"' .
:MiddleMiddle-USE-21 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_4_2_1_22_1 ;
  owl:sameAs :MiddleMiddle . # DEF matching this USE
:SelectionAppearance-USE-20 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Twenty ;
  owl:sameAs :SelectionAppearance . # DEF matching this USE
