| 1 | = Discussions that lead to the creation of the UserContextOntology = |
| 2 | |
| 3 | 2007-09-21: Leo Sauermann and Sven Schwarz sit together and make a draft of the ontology for nepomuk. |
| 4 | |
| 5 | 2006-08-23: Sven |
| 6 | |
| 7 | eigentlich ist doch eine "ContextEntity" ein "ContextSubject" - oder? |
| 8 | und die "ActiveEntities" wären eigentlich "ContextProvider" oder sowas |
| 9 | dann hätten wir sowas hier: |
| 10 | {{{ |
| 11 | ContextSubject -> Context information *about* these are possible |
| 12 | - Person -> we may know about a person's context |
| 13 | - Device -> we may know about a device's context |
| 14 | - ... |
| 15 | |
| 16 | ContextProvider -> These *provide* context information |
| 17 | - Person -> a person may provide context (manually) |
| 18 | - Device -> e.g. a GPS device provides context |
| 19 | - ... |
| 20 | |
| 21 | ContextObject -> Objects and data in some context |
| 22 | - Person -> some person may be relevant for another person's context |
| 23 | - Device -> e.g. an input device may be relevant for a person's context |
| 24 | }}} |
| 25 | |
| 26 | Phil: das passt, nur andere Worte. ContextProvider ist bei uns ContextTracker |
| 27 | |
| 28 | ---- |
| 29 | |
| 30 | == Current status == |
| 31 | |
| 32 | * Phil is discussing with his Prof. -> http://www.piranesi.dyndns.org/mediawiki/index.php/Talk:ContextOntology |
| 33 | |
| 34 | * Sven is creating first drafts of base-level and mid-level context ontology in RDFS. |
| 35 | |
| 36 | - Browse the current status with a web browser using this URL: https://usercontext.opendfki.de/browser/temp/uco_v1 |
| 37 | |
| 38 | - Or check it out using SVN using this URL: https://usercontext.opendfki.de/repos/temp/uco_v1 |
| 39 | |
| 40 | |
| 41 | ---- |
| 42 | |
| 43 | == Phil's short memo about it (older, directly after MRC'06) == |
| 44 | |
| 45 | |
| 46 | Context ontology |
| 47 | |
| 48 | What is the purpose: |
| 49 | |
| 50 | The goal is to create a context ontology describing a wide range of user context attributes and the relation ships between them. |
| 51 | The top level ontology needs to be abstract enough in order to hold for a wide range of different context "models" and to describe more detailed ones it needs to be extendable through well defined interfaces. |
| 52 | |
| 53 | Generic reasoning is performed on the high level context ontology and through the extensions more specific reasoning is made possible. |
| 54 | How much "domain knowledge" needs to be present in the higher level? |
| 55 | |
| 56 | |
| 57 | INTERFACES: |
| 58 | The extension interface needs to be well defined. |
| 59 | |
| 60 | We could take the analogy of microformats which are small semantic descriptions of components, they are mainly used for semantically linking blogs. They are often used stand alone, but for our |
| 61 | purpose a strict extension policy is required. |
| 62 | A context microformat should be written in the same language as the high-level description, e.g. RDF. A well defined blueprint should be provided to the creator of the |
| 63 | framework extensions, as well as a syntax checker making sure the extensions can be integrated into the high level structure. |
| 64 | |
| 65 | For Bluetooth the RDF extension would look something like the following: |
| 66 | |
| 67 | <rdfs:Class rdf:about="&kb;Bluetooth" |
| 68 | rdfs:label="Bluetooth"> |
| 69 | <rdfs:comment>Bluetooth is a short range communicaiton device which can also be used to detect other Bluetooth devices in short proximity</rdfs:comment> |
| 70 | <rdfs:subClassOf rdf:resource="&kb;Communication_Device"/> |
| 71 | <rdfs:subClassOf rdf:resource="&kb;Sensor_Device"/> |
| 72 | </rdfs:Class> |
| 73 | |
| 74 | Stating that Bluetooth is a Communication_Device and a Sensor_Device, as well as optional comments aimed at the human user. This field could contain |
| 75 | a small xml description of e.g. sensing frequency and power consumption. Enabling the application builder or other reasoning engines to understand device specific |
| 76 | capabilities which do not affect the general use of the extension. |
| 77 | |
| 78 | <rdfs:Class rdf:about="&kb;Bluetooth_Scanner" |
| 79 | rdfs:label="Bluetooth_Scanner"> |
| 80 | <rdfs:subClassOf rdf:resource="&kb;Bluetooth"/> |
| 81 | <rdfs:subClassOf rdf:resource="&kb;Proximity_Location"/> |
| 82 | <rdfs:subClassOf rdf:resource="&kb;Software"/> |
| 83 | </rdfs:Class> |
| 84 | |
| 85 | Bluetooth_Scanner is the software which needs to be invoked to get a proximity location. The RDF description shows that it "depends" on Bluetooth hardware??? ask Sven if there is a way |
| 86 | to show dependencies or is this just done through subclasses? |
| 87 | |
| 88 | |
| 89 | Reasoning engines: |
| 90 | |
| 91 | We need at least two types: one for queries and one for the application builder. |
| 92 | |
| 93 | What are good existing engines? |
| 94 | |
| 95 | How can a reasoning engine adopt dynamically to the extensions? |
| 96 | It could for example just use a Bluetooth device to find close entities. Is this good enough or does it need to know more? |
| 97 | |
| 98 | Possible queries: |
| 99 | |
| 100 | Who is near me? |
| 101 | Through proximity sensors and reasoning about the location of other entities. |
| 102 | |
| 103 | Where am I? |
| 104 | Through location sensors and through devices in close proximity which know their location. |
| 105 | |
| 106 | Problems: |
| 107 | Proximity: how to define proximity? Should entities performing a query be able to specify what it means to them? |
| 108 | Chain of reasoning: When for example a device in close proximity cannot provide a location but it is close to another one which can --- is that too far? |
| 109 | This requires to be able to associate confidence values with query results. |
| 110 | Also the time to live indicators need to be handled correctly in order to place any confidence on them. |
| 111 | |
| 112 | |
| 113 | |
| 114 | |
| 115 | A list with the different terms and definitions would be very useful. |
| 116 | |
| 117 | |
| 118 | Definition of context. Anind.... Richard had another one which is very similar but coming from another direction. |
| 119 | |
| 120 | context-aware |
| 121 | |
| 122 | context memory / history |
| 123 | |
| 124 | |
| 125 | |
| 126 | Context attribute |
| 127 | |
| 128 | Context listener: can register to or poll new context attributes and passes them on to an application |
| 129 | |
| 130 | Context tracker: takes a context attribute from a sensor or application and places it into the context store. |
| 131 | |
| 132 | Context aggregator: takes n number of context attributes as input and outputs n number of new context attributes. It can be viewed as a combination of |
| 133 | a context tracker and listener. |
| 134 | |
| 135 | |
| 136 | |
| 137 | |
| 138 | |
| 139 | |
| 140 | |
| 141 | |
| 142 | |
| 143 | |
| 144 | |
| 145 | |
| 146 | |
| 147 | |
| 148 | |
| 149 | |
| 150 | |
| 151 | |
| 152 | |
| 153 | |
| 154 | |
| 155 | |
| 156 | |
| 157 | |