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