TagLabel.html
15.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content=
"HTML Tidy for Mac OS X (vers 31 October 2006 - Apple Inc. build 13), see www.w3.org" />
<title>
Using labels to give semantics to tags - Design Issues
</title>
<link rel="Stylesheet" href="di.css" type="text/css" />
<meta http-equiv="content-type" content="text/html" />
</head>
<body bgcolor="#DDFFDD" text="#000000">
<address>
Tim Berners-Lee<br />
Date: 2006-11-23, last change: $Date: 2007/01/22 21:05:37
$<br />
Status: personal view only. Editing status: draft.
</address>
<p>
<a href="./">Up to Design Issues</a>
</p>
<hr />
<h1>
Using labels to give semantics to tags
</h1>
<h3>
Abstract
</h3>
<p>
Existing user interfaces for managing, for example, mail,
photos, contacts and songs allow searching using both
user-generated 'tags' and also well-defined properties such
as the date-time of a photograph, or the values of headers in
an email message. Users have on many web sites provided many
tags, but their re-use by others has been limited due to the
fact that the same tag word has quite different meaning when
used by another person or used on another site.
</p>
<p>
Other data, such 'geotagging' of places, declaration of
friends and colleagues, by contrast, have a well-defined
meaning and allow query across data from many sites. This
article discusses how the user interface metaphor of a
luggage label cam used to associate metadata from
well-defined ontology with tags from a particular context.
</p>
<p>
The article discuses ways of encoding the labels in RDF.
</p>
<h3>
Introduction
</h3>
<p>
There are a mixed feelings about the passion for tagging
which typifies the Web 2.0 wave. On the one hand, there is
excitement about the fact that users are, as a large number,
adding re-usable information to the information space,
allowing sites such as del.icio.us and flickr to sort,
cluster and query masses of otherwise amorphous photos and
web content. On the other hand, there is the sinking feeling
that tags are headed the same way as keywords of Information
Retrieval in the 1980s: initial hope, and then being stranded
between the unbearable constraints of a controlled vocabulary
and the hopeless ambiguity of uncontrolled user-generated
keywords. Tom Gruber, writer of books on ontology who runs a
Web 2.0 site himself. gave a talk at ISWC 2006 which touched
on bringing the gap, and taking the passion to organize and
express, and using it to make re-usable data.
</p>
<p>
There is currently a tension in the tagging world as to
whether tags are regarded as global in meaning, or whether
there meaning really depends on the tagger. In del.icio.us,
one can query for thinks tagged with a certain word by a
certain person. (I heard of one online community which was
considering making a system to allow one formally to state
when one has committed to use a given tag in the same way as
another person, or growing mesh of people. That would be a
very interesting feature, as it would allow a useful
definition to gain growing acceptance, to progressively move
from being a private idea to being a group global standard.)
</p>
<p>
Meanwhile, other sites get users to provide semantic web data
with well-defined global ontologies. The locations of people,
events and photos, relationships between people, authorship
of publications, things and people an image depicts, and so
on, is done using well-defined identifiers (under the covers)
for everything involved, including the relationships and
properties. The resulting data is extremely re-usable. The
problem is that it isn't as quick as tagging with a single
word off the top of one's head.
</p>
<h3>
Example: Soccer folders
</h3>
<p>
I face these problems day to day, and like many geeks, am
driven by the urge to make the boring things in life happen
automatically, with the computer helping more effectively.
There are lots of things I can do with N3 rules -- but I'd
like to have a nice user interface to it which hides as much
technology beneath the surface as possible. I'd like as many
non-geeks as possible to be able to use the same tools.
</p>
<p>
Let's take one example. I took a bunch of photos of a local
soccer team, once when they played Wayland, and once when
they played Arlington. I loaded them all into iPhoto. I
wanted to burn a CD for the team of the best of the bunch. I
also want to be able to find them later.
</p>
<p>
On the first day, I didn't take any other photos, so the
simplest thing was to make a 'smart folder' (actually 'smart
Album' in iPhoto) , which had in it by definition the photos
taken on that day. The smart folder allows you to specify a
combination (<em>and</em> or <em>or</em>) a number of
constraints such as time, keyword, text and rating. I called
this one <em>Soccer vs Wayland</em>.
</p>
<p>
On the second day, I took other photos as well, so the smart
folder was going to be more complicated. So instead, I just
found all the photos, selected them, and dumped them in a new
plain folder <em>Soccer vs Arlington</em>.
</p>
<p>
These of course one would represent in RDF as classes. - but
we'll get into that later.
</p>
<p>
Ok, so here's where we get into wish-list territory.
</p>
<p>
1) At that point, I wanted to be able to make a virtual
folder <em>Soccer</em>, and make the two folders subfolders.
(There used to be a photo processing tool called
<em>Retriever</em> which would handle hierarchical
classifications well, but that I lost track of.) This would
indicate that anything in either of the two Soccer subfolders
was a member of the Soccer folder -- or was tagged 'soccer'
if you like.
</p>
<p>
In fact, you can make a smart folder <em>Soccer</em>
consisting of all the things which are either in <em>Soccer
vs Wayland</em> or <em>Soccer vs Arlington</em>. You have to
make it as a smart folder, which is not as intuitive, but
woks fine. It doesn't give me the nice hierarchical user
interface.
</p>
<h3>
Labels
</h3>
<p>
Actually I now want to associate some exportable re-usable
data. The folder names are essentially my local tags.
Exporting them doesn't help much.
</p>
<p>
Suppose, for example, I want to geotag the photos, so that I
can find them on a map, or people interested in sports at the
given field could find them. The current user interface
allows me to select all the photos in one folder and apply
keywords and apply metadata to them, as a batch operation. It
is actually useful that the data is carefully stored in each
photo, but it is sad that the fact that the metadata (such as
a comment about the game) was applied to everything in the
folder.
</p>
<p>
I'd like to be able to associate the random tag name I just
made up with properties to be applied to each of the things
tagged. Suppose at the user interface we introduce a
<dfn>label</dfn>. A label is a set of common metadata that I
want to apply to things at once.
</p>
<p>
The user interface could really milk the <em>label</em>
metaphor, by representing a label as a box with a hole in the
end with a bit of string. It clashes perhaps with the folder
metaphor. If we use both, then I'd like to be able to drop a
label on a folder, and let all the things in the folder
inherit the labeled properties.
</p>
<p>
I'd like to see for each photo firstly what properties it
has, but secondarily which labels and hence folder the
properties came from.
</p>
<p>
The essential thing about a label is that as I build it, I am
prompted to use shared ontologies. They could be group
ontologies which others have exported, they could be globally
understood ontologies like time and place, and email address
of a person depicted. As I create the label from an
(extendable) set of options in menus, and using drag and drop
and other user interface tricks for noting relationships, I
am creating data which will be much more useful than the tag.
The tag then I can slap on very easily.
</p>
<p>
The hope is then that by making label creation something
which is low cost, because I have to do it only once and can
apply it many times, the incentive for me @@
</p>
<h3>
Expressing labels
</h3>
<p>
In this section we leave the user interaction and discuss the
way in which labels can be exchanged in RDF under the covers.
This of course is important for interoperability. A label can
be expressed in many ways. in bits on the wire. The label
describes a set of things, which in RDF is a class<a href=
"#L753">*</a>. Information about the class and the things in
it -- the things labeled -- can be given in various ways.
</p>
<h4>
As a rule
</h4>
<p>
As a rule, it could look like
</p>
<pre>
{ ?x a soc:SoccerWaylandPhoto }
=> { ?x geo:approxLocation [ geo:lat 47. geo:long 78 ];
foaf:depicts soc:ourTeam.
}
</pre>
<h4>
In OWL
</h4>
<p>
A label is a fairly direct use of OWL restrictions:
</p>
<pre>
SoccerWaylandPhoto rdfs:subClassOf [
[ a owl:Restriction; owl:owl:onProperty geo:approxLocation;
owl:hasValue [ geo:lat 47. geo:long 78 ]],
[ a owl:Restriction; owl:onPredicate foaf:depicts;
owl:allValuesFrom soc:ourTeam].
</pre>
<p>
(Let's not discuss the modeling of depiction here, rather
elsewhere.) This is very much the sort of thing OWL is
designed for.
</p>
<h4>
How not to
</h4>
<p>
There is one trap which one must beware of. Remember that the
label is a concept. It is a class. It isn't a photo. The
label may have been created by someone, at a particular time,
but that person and that time have nothing to do with the
creator and time of a photo which is so labeled. You can
<strong>not</strong> write
</p>
<pre>
soc:SoccerWaylandPhoto
geo:approxLocation [ geo:lat 47. geo:long 78 ];
foaf:depicts soc:ourTeam.
</pre>
<h4>
Special vocabulary
</h4>
<p>
It is possible to make a special label terms which are only
used only for labels:
</p>
<pre>
soc:SoccerWaylandPhoto
LAB:approxLocation [ geo:lat 47. geo:long 78 ];
LAB:depicts soc:ourTeam.
</pre>
<p>
and have some metadata like
</p>
<pre>
foaf:depicts ex:labelPredicate LAB:depicts.
geo:approxLocation ex:labelPredicate LAB:approxLocation.
</pre>
<p>
and a general rule like
</p>
<pre>
{ ?x a ?lab. ?lab ?p ?z. ?p ex:labelPredicate ?q }
=> { ?x ?q ?z }.
</pre>
<p>
or
</p>
<pre>
{ ?lab ?p ?z. ?p ex:labelPredicate ?q }
=> { ?lab rdfs:subClassOf [ a owl:Restriction;
owl:onProperty ?q; owl:hasValue ?z] }.
</pre>
<p>
These methods are more or less inter-convertible. There are
various communities which understand OWL and N3 rules, which
may find those forms most convenient.
</p>
<h3>
Sharing tags and labels
</h3>
<p>
The architecture of this system then is that tags are
initially local to the user. Anyone can use any word to to
tag anything they want. Labels are used to associate meaning
with them, but the tag itself is local.
</p>
<p>
Mapped into RDF, tags are classes in a local namespace. They
can of course be shared. Tagging things with other people's
tags attributes to them the properties associated with those
tags, if any. Some people may define tags with rather loosely
defined meaning, and no RDF labels, in which case others will
be less inclined to use those tags.
</p>
<h3>
Smart Labels and one-variable rules
</h3>
<p>
When one combines a selection expression of a 'smart folder'
with a label, then the result is a form of rule which is
restricted to one variable. This can be expressed in OWL as a
subclass relationship between restrictions.
</p>
<p>
A lot of information can be expressed as rules, but finding
an intuitive user interface to allow lay users to express
their needs with rules has been a stumbling block. These
smart folder and label metaphors, combined, could be a route
to solving this problem<a href="#L842">*</a>.
</p>
<h2>
Work in the area
</h2>
<p>
There are many systems which use selection rules to define
virtual sets of things. There probably lots which use an
abstraction equivalent to labels.
</p>
<p>
One system which effectively uses labels is (I think)
described as 'semantic folders' (@@link Lassila and Deepali),
to be published
</p>
<p>
There is a language for labels being defined, as it happens,
by the Web Content Labeling (WCL) Incubator Group at W3C. The
final form of expression has not been decided.
</p>
<h2>
Conclusion
</h2>
<p>
The concept of a label as a preset set of data which is
applied to things and classes of things provides an intuitive
user interface for a operation which should be simple for
untrained users.
</p>
<hr />
<h3>
See also
</h3>
<p>
Newman.R., <a href=
"http://www.holygoat.co.uk/projects/tags/">Tag ontology
design></a>, 2005-03-29.
</p>
<p>
Stefano Mazzochi,<a href=
"http://www.betaversion.org/~stefano/linotype/news/85/">Folksologies:
de-idealizing ontologies</a>, 2005-05-05
</p>
<p>
Tom Gruber, <em>Where the Social Web Meets the Semantic
Web</em>, Keynote, ISWC 2006. ( <a href=
"http://seminars.ijs.si/iswc2006/video.asp?video_id=1831">video</a>)
</p>
<p>
<a href="http://www.w3.org/2005/Incubator/wcl/">W3C Content
Label Incubator Group</a>
</p>
<p>
Dan Connolly, <a href=
"http://www.w3.org/2000/10/swap/test/powder4.n3">Some test
cases from WCL/POWDER work in N3.</a>
</p>
<h2>
Footnotes
</h2>
<p>
<a name="L753" id="L753">*</a>we do not here discuss the
difference between rdfs:Class and owl:Class
</p>
<p>
<a name="L842" id="L842">How</a> could other variables be
added? Other variables can be expressed as paths from the
base variable, and paths can be selected from a menu-like
tree, and so on. The tabulator has a user interface for
selecting a subgraph for a query. The smart folder selection
panel could have the option for adding another similar panel
for an item connected by a search path.
</p>
<hr />
<p>
<a href="Overview.html">Up to Design Issues</a>
</p>
<p>
<a href="../People/Berners-Lee">Tim BL</a>
</p>
</body>
</html>