1
// This file has been auto-generated by the ontology2code script.
2
// Do not modify it directly.
6
* Copyright © 2011 Collabora Ltd.
7
* By Seif Lotfy <seif@lotfy.com>
8
* By Siegfried-Angel Gevatter Pujals <siegfried@gevatter.com>
9
* Copyright © 2011 Michal Hruby <michal.mhr@gmail.com>
11
* This program is free software: you can redistribute it and/or modify
12
* it under the terms of the GNU Lesser General Public License as published by
13
* the Free Software Foundation, either version 2.1 of the License, or
14
* (at your option) any later version.
16
* This program is distributed in the hope that it will be useful,
17
* but WITHOUT ANY WARRANTY; without even the implied warranty of
18
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
* GNU General Public License for more details.
21
* You should have received a copy of the GNU Lesser General Public License
22
* along with this program. If not, see <http://www.gnu.org/licenses/>.
31
private static HashTable<string, Info> all_symbols = null;
32
private static bool initialized = false;
34
public static unowned string get_display_name (string symbol_uri)
36
initialize_symbols ();
38
var symbol = all_symbols.lookup (symbol_uri);
39
if (symbol == null) return symbol_uri;
41
return symbol.display_name;
44
public static unowned string get_description(string symbol_uri)
46
initialize_symbols ();
48
var symbol = all_symbols.lookup (symbol_uri);
49
if (symbol == null) return "";
51
return symbol.description;
54
public static List<unowned string> get_all_parents(string symbol_uri)
56
initialize_symbols ();
58
var results = new List<string> ();
59
var symbol = all_symbols.lookup (symbol_uri);
60
if (symbol == null) return results;
62
foreach (unowned string uri in symbol.parents)
65
// Recursively get the other parents
66
foreach (string parent_uri in get_all_parents (uri))
67
if (results.index (parent_uri) > -1)
68
results.append (parent_uri);
74
public static List<unowned string> get_all_children (string symbol_uri)
76
initialize_symbols ();
78
var results = new List<string> ();
79
var symbol = all_symbols.lookup (symbol_uri);
80
if (symbol == null) return results;
82
foreach (unowned string uri in symbol.all_children)
88
public static List<unowned string> get_children (string symbol_uri)
90
initialize_symbols ();
91
var results = new List<string> ();
92
var symbol = all_symbols.lookup (symbol_uri);
93
if (symbol == null) return results;
95
foreach (unowned string uri in symbol.children)
101
public static List<unowned string> get_parents (string symbol_uri)
103
initialize_symbols ();
105
var results = new List<string>();
106
var symbol = all_symbols.lookup (symbol_uri);
107
if (symbol == null) return results;
109
foreach (unowned string uri in symbol.parents)
110
results.append (uri);
115
public static bool is_a (string symbol_uri, string parent_uri)
117
initialize_symbols ();
119
foreach (unowned string uri in get_all_parents (symbol_uri))
120
if (parent_uri == uri)
125
private static void initialize_symbols ()
127
if (initialized) return;
129
string uri, display_name, description;
130
string[] parents, children, all_children;
132
uri = Zeitgeist.NCAL.ALARM;
133
description = "Provide a grouping of component properties that define an alarm.";
134
display_name = "Alarm";
135
parents = { NIE.INFORMATION_ELEMENT };
138
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
140
uri = Zeitgeist.NCAL.ATTACHMENT;
141
description = "An object attached to a calendar entity. This class has been introduced to serve as a structured value of the ncal:attach property. See the documentation of ncal:attach for details.";
142
display_name = "Attachment";
143
parents = { NFO.ATTACHMENT };
146
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
148
uri = Zeitgeist.NCAL.CALENDAR;
149
description = "A calendar. Inspirations for this class can be traced to the VCALENDAR component defined in RFC 2445 sec. 4.4, but it may just as well be used to represent any kind of Calendar.";
150
display_name = "Calendar";
151
parents = { NIE.INFORMATION_ELEMENT };
154
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
156
uri = Zeitgeist.NCAL.CALENDAR_DATA_OBJECT;
157
description = "A DataObject found in a calendar. It is usually interpreted as one of the calendar entity types (e.g. Event, Journal, Todo etc.)";
158
display_name = "CalendarDataObject";
159
parents = { NIE.DATA_OBJECT };
162
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
164
uri = Zeitgeist.NCAL.EVENT;
165
description = "Provide a grouping of component properties that describe an event.";
166
display_name = "Event";
167
parents = { NIE.INFORMATION_ELEMENT };
170
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
172
uri = Zeitgeist.NCAL.FREEBUSY;
173
description = "Provide a grouping of component properties that describe either a request for free/busy time, describe a response to a request for free/busy time or describe a published set of busy time.";
174
display_name = "Freebusy";
175
parents = { NIE.INFORMATION_ELEMENT };
178
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
180
uri = Zeitgeist.NCAL.JOURNAL;
181
description = "Provide a grouping of component properties that describe a journal entry.";
182
display_name = "Journal";
183
parents = { NIE.INFORMATION_ELEMENT };
186
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
188
uri = Zeitgeist.NCAL.TIMEZONE;
189
description = "Provide a grouping of component properties that defines a time zone.";
190
display_name = "Timezone";
191
parents = { NIE.INFORMATION_ELEMENT };
194
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
196
uri = Zeitgeist.NCAL.TODO;
197
description = "Provide a grouping of calendar properties that describe a to-do.";
198
display_name = "Todo";
199
parents = { NIE.INFORMATION_ELEMENT };
202
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
204
uri = Zeitgeist.NCO.CONTACT;
205
description = "A Contact. A piece of data that can provide means to identify or communicate with an entity.";
206
display_name = "Contact";
207
parents = { NIE.INFORMATION_ELEMENT };
208
children = { NCO.PERSON_CONTACT, NCO.ORGANIZATION_CONTACT };
209
all_children = { NCO.PERSON_CONTACT, NCO.ORGANIZATION_CONTACT };
210
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
212
uri = Zeitgeist.NCO.CONTACT_GROUP;
213
description = "A group of Contacts. Could be used to express a group in an addressbook or on a contact list of an IM application. One contact can belong to many groups.";
214
display_name = "ContactGroup";
215
parents = { NIE.INFORMATION_ELEMENT };
218
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
220
uri = Zeitgeist.NCO.CONTACT_LIST;
221
description = "A contact list, this class represents an addressbook or a contact list of an IM application. Contacts inside a contact list can belong to contact groups.";
222
display_name = "ContactList";
223
parents = { NIE.INFORMATION_ELEMENT };
226
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
228
uri = Zeitgeist.NCO.CONTACT_LIST_DATA_OBJECT;
229
description = "An entity occuring on a contact list (usually interpreted as an nco:Contact)";
230
display_name = "ContactListDataObject";
231
parents = { NIE.DATA_OBJECT };
234
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
236
uri = Zeitgeist.NCO.ORGANIZATION_CONTACT;
237
description = "A Contact that denotes on Organization.";
238
display_name = "OrganizationContact";
239
parents = { NCO.CONTACT };
242
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
244
uri = Zeitgeist.NCO.PERSON_CONTACT;
245
description = "A Contact that denotes a Person. A person can have multiple Affiliations.";
246
display_name = "PersonContact";
247
parents = { NCO.CONTACT };
250
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
252
uri = Zeitgeist.NFO.APPLICATION;
253
description = "An application";
254
display_name = "Application";
255
parents = { NFO.SOFTWARE };
258
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
260
uri = Zeitgeist.NFO.ARCHIVE;
261
description = "A compressed file. May contain other files or folder inside.";
262
display_name = "Archive";
263
parents = { NFO.DATA_CONTAINER };
266
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
268
uri = Zeitgeist.NFO.ARCHIVE_ITEM;
269
description = "A file entity inside an archive.";
270
display_name = "ArchiveItem";
271
parents = { NFO.EMBEDDED_FILE_DATA_OBJECT };
274
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
276
uri = Zeitgeist.NFO.ATTACHMENT;
277
description = "A file attached to another data object. Many data formats allow for attachments: emails, vcards, ical events, id3 and exif...";
278
display_name = "Attachment";
279
parents = { NFO.EMBEDDED_FILE_DATA_OBJECT };
280
children = { NCAL.ATTACHMENT };
281
all_children = { NCAL.ATTACHMENT };
282
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
284
uri = Zeitgeist.NFO.AUDIO;
285
description = "A file containing audio content";
286
display_name = "Audio";
287
parents = { NFO.MEDIA };
288
children = { NMM.MUSIC_PIECE };
289
all_children = { NMM.MUSIC_PIECE };
290
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
292
uri = Zeitgeist.NFO.BOOKMARK;
293
description = "A bookmark of a webbrowser. Use nie:title for the name/label, nie:contentCreated to represent the date when the user added the bookmark, and nie:contentLastModified for modifications. nfo:bookmarks to store the link.";
294
display_name = "Bookmark";
295
parents = { NIE.INFORMATION_ELEMENT };
298
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
300
uri = Zeitgeist.NFO.BOOKMARK_FOLDER;
301
description = "A folder with bookmarks of a webbrowser. Use nfo:containsBookmark to relate Bookmarks. Folders can contain subfolders, use containsBookmarkFolder to relate them.";
302
display_name = "Bookmark Folder";
303
parents = { NIE.INFORMATION_ELEMENT };
306
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
308
uri = Zeitgeist.NFO.CURSOR;
309
description = "A Cursor.";
310
display_name = "Cursor";
311
parents = { NFO.RASTER_IMAGE };
314
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
316
uri = Zeitgeist.NFO.DATA_CONTAINER;
317
description = "A superclass for all entities, whose primary purpose is to serve as containers for other data object. They usually don't have any \"meaning\" by themselves. Examples include folders, archives and optical disc images.";
318
display_name = "DataContainer";
319
parents = { NIE.INFORMATION_ELEMENT };
320
children = { NFO.FILESYSTEM, NFO.ARCHIVE, NFO.FOLDER, NFO.TRASH };
321
all_children = { NFO.FILESYSTEM, NFO.ARCHIVE, NFO.FOLDER, NFO.TRASH, NFO.FILESYSTEM_IMAGE };
322
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
324
uri = Zeitgeist.NFO.DELETED_RESOURCE;
325
description = "A file entity that has been deleted from the original source. Usually such entities are stored within various kinds of 'Trash' or 'Recycle Bin' folders.";
326
display_name = "DeletedResource";
327
parents = { NFO.FILE_DATA_OBJECT };
330
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
332
uri = Zeitgeist.NFO.DOCUMENT;
333
description = "A generic document. A common superclass for all documents on the desktop.";
334
display_name = "Document";
335
parents = { NIE.INFORMATION_ELEMENT };
336
children = { NFO.TEXT_DOCUMENT, NFO.PRESENTATION, NFO.MIND_MAP, NFO.SPREADSHEET };
337
all_children = { NFO.SOURCE_CODE, NFO.SPREADSHEET, NFO.PAGINATED_TEXT_DOCUMENT, NFO.TEXT_DOCUMENT, NFO.HTML_DOCUMENT, NFO.MIND_MAP, NFO.PLAIN_TEXT_DOCUMENT, NFO.PRESENTATION };
338
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
340
uri = Zeitgeist.NFO.EMBEDDED_FILE_DATA_OBJECT;
341
description = "A file embedded in another data object. There are many ways in which a file may be embedded in another one. Use this class directly only in cases if none of the subclasses gives a better description of your case.";
342
display_name = "EmbeddedFileDataObject";
343
parents = { NFO.FILE_DATA_OBJECT };
344
children = { NFO.ARCHIVE_ITEM, NFO.ATTACHMENT };
345
all_children = { NFO.ARCHIVE_ITEM, NCAL.ATTACHMENT, NFO.ATTACHMENT };
346
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
348
uri = Zeitgeist.NFO.EXECUTABLE;
349
description = "An executable file.";
350
display_name = "Executable";
351
parents = { NIE.INFORMATION_ELEMENT };
354
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
356
uri = Zeitgeist.NFO.FILESYSTEM;
357
description = "A filesystem. Examples of filesystems include hard disk partitions, removable media, but also images thereof stored in files such as ISO.";
358
display_name = "Filesystem";
359
parents = { NFO.DATA_CONTAINER };
360
children = { NFO.FILESYSTEM_IMAGE };
361
all_children = { NFO.FILESYSTEM_IMAGE };
362
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
364
uri = Zeitgeist.NFO.FILESYSTEM_IMAGE;
365
description = "An image of a filesystem. Instances of this class may include CD images, DVD images or hard disk partition images created by various pieces of software (e.g. Norton Ghost). Deprecated in favor of nfo:Filesystem.";
366
display_name = "FilesystemImage";
367
parents = { NFO.FILESYSTEM };
370
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
372
uri = Zeitgeist.NFO.FILE_DATA_OBJECT;
373
description = "A resource containing a finite sequence of bytes with arbitrary information, that is available to a computer program and is usually based on some kind of durable storage. A file is durable in the sense that it remains available for programs to use after the current program has finished.";
374
display_name = "file";
375
parents = { NIE.DATA_OBJECT };
376
children = { NFO.EMBEDDED_FILE_DATA_OBJECT, NFO.DELETED_RESOURCE, NFO.REMOTE_DATA_OBJECT };
377
all_children = { NFO.ARCHIVE_ITEM, NFO.EMBEDDED_FILE_DATA_OBJECT, NCAL.ATTACHMENT, NFO.REMOTE_DATA_OBJECT, NFO.ATTACHMENT, NFO.DELETED_RESOURCE };
378
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
380
uri = Zeitgeist.NFO.FOLDER;
381
description = "A folder/directory. Examples of folders include folders on a filesystem and message folders in a mailbox.";
382
display_name = "Folder";
383
parents = { NFO.DATA_CONTAINER };
386
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
388
uri = Zeitgeist.NFO.FONT;
389
description = "A font.";
390
display_name = "Font";
391
parents = { NIE.INFORMATION_ELEMENT };
394
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
396
uri = Zeitgeist.NFO.HARD_DISK_PARTITION;
397
description = "A partition on a hard disk";
398
display_name = "HardDiskPartition";
399
parents = { NIE.DATA_OBJECT };
402
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
404
uri = Zeitgeist.NFO.HTML_DOCUMENT;
405
description = "A HTML document, may contain links to other files.";
406
display_name = "HtmlDocument";
407
parents = { NFO.PLAIN_TEXT_DOCUMENT };
410
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
412
uri = Zeitgeist.NFO.ICON;
413
description = "An Icon (regardless of whether it's a raster or a vector icon. A resource representing an icon could have two types (Icon and Raster, or Icon and Vector) if required.";
414
display_name = "Icon";
415
parents = { NFO.IMAGE };
418
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
420
uri = Zeitgeist.NFO.IMAGE;
421
description = "A file containing an image.";
422
display_name = "Image";
423
parents = { NFO.VISUAL };
424
children = { NFO.ICON, NFO.VECTOR_IMAGE, NFO.RASTER_IMAGE };
425
all_children = { NFO.ICON, NFO.VECTOR_IMAGE, NFO.CURSOR, NFO.RASTER_IMAGE };
426
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
428
uri = Zeitgeist.NFO.MEDIA;
429
description = "A piece of media content. This class may be used to express complex media containers with many streams of various media content (both aural and visual).";
430
display_name = "Media";
431
parents = { NIE.INFORMATION_ELEMENT };
432
children = { NFO.VISUAL, NFO.AUDIO };
433
all_children = { NMM.TVSHOW, NFO.AUDIO, NMM.MUSIC_PIECE, NFO.VIDEO, NMM.MOVIE, NFO.VISUAL, NFO.CURSOR, NFO.ICON, NFO.RASTER_IMAGE, NFO.IMAGE, NFO.VECTOR_IMAGE };
434
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
436
uri = Zeitgeist.NFO.MEDIA_LIST;
437
description = "A file containing a list of media files.e.g. a playlist";
438
display_name = "MediaList";
439
parents = { NIE.INFORMATION_ELEMENT };
440
children = { NMM.MUSIC_ALBUM };
441
all_children = { NMM.MUSIC_ALBUM };
442
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
444
uri = Zeitgeist.NFO.MEDIA_STREAM;
445
description = "A stream of multimedia content, usually contained within a media container such as a movie (containing both audio and video) or a DVD (possibly containing many streams of audio and video). Most common interpretations for such a DataObject include Audio and Video.";
446
display_name = "MediaStream";
447
parents = { NIE.DATA_OBJECT };
450
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
452
uri = Zeitgeist.NFO.MIND_MAP;
453
description = "A MindMap, created by a mind-mapping utility. Examples might include FreeMind or mind mapper.";
454
display_name = "MindMap";
455
parents = { NFO.DOCUMENT };
458
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
460
uri = Zeitgeist.NFO.OPERATING_SYSTEM;
461
description = "An OperatingSystem";
462
display_name = "OperatingSystem";
463
parents = { NFO.SOFTWARE };
466
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
468
uri = Zeitgeist.NFO.PAGINATED_TEXT_DOCUMENT;
469
description = "A file containing a text document, that is unambiguously divided into pages. Examples might include PDF, DOC, PS, DVI etc.";
470
display_name = "PaginatedTextDocument";
471
parents = { NFO.TEXT_DOCUMENT };
474
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
476
uri = Zeitgeist.NFO.PLAIN_TEXT_DOCUMENT;
477
description = "A file containing plain text (ASCII, Unicode or other encodings). Examples may include TXT, HTML, XML, program source code etc.";
478
display_name = "PlainTextDocument";
479
parents = { NFO.TEXT_DOCUMENT };
480
children = { NFO.SOURCE_CODE, NFO.HTML_DOCUMENT };
481
all_children = { NFO.SOURCE_CODE, NFO.HTML_DOCUMENT };
482
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
484
uri = Zeitgeist.NFO.PRESENTATION;
485
description = "A Presentation made by some presentation software (Corel Presentations, OpenOffice Impress, MS Powerpoint etc.)";
486
display_name = "Presentation";
487
parents = { NFO.DOCUMENT };
490
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
492
uri = Zeitgeist.NFO.RASTER_IMAGE;
493
description = "A raster image.";
494
display_name = "RasterImage";
495
parents = { NFO.IMAGE };
496
children = { NFO.CURSOR };
497
all_children = { NFO.CURSOR };
498
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
500
uri = Zeitgeist.NFO.REMOTE_DATA_OBJECT;
501
description = "A file data object stored at a remote location. Don't confuse this class with a RemotePortAddress. This one applies to a particular resource, RemotePortAddress applies to an address, that can have various interpretations.";
502
display_name = "RemoteDataObject";
503
parents = { NFO.FILE_DATA_OBJECT };
506
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
508
uri = Zeitgeist.NFO.REMOTE_PORT_ADDRESS;
509
description = "An address specifying a remote host and port. Such an address can be interpreted in many ways (examples of such interpretations include mailboxes, websites, remote calendars or filesystems), depending on an interpretation, various kinds of data may be extracted from such an address.";
510
display_name = "RemotePortAddress";
511
parents = { NIE.DATA_OBJECT };
514
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
516
uri = Zeitgeist.NFO.SOFTWARE;
517
description = "A piece of software. Examples may include applications and the operating system. This interpretation most commonly applies to SoftwareItems.";
518
display_name = "Software";
519
parents = { NIE.INFORMATION_ELEMENT };
520
children = { NFO.OPERATING_SYSTEM, NFO.APPLICATION };
521
all_children = { NFO.APPLICATION, NFO.OPERATING_SYSTEM };
522
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
524
uri = Zeitgeist.NFO.SOFTWARE_ITEM;
525
description = "A DataObject representing a piece of software. Examples of interpretations of a SoftwareItem include an Application and an OperatingSystem.";
526
display_name = "SoftwareItem";
527
parents = { NIE.DATA_OBJECT };
530
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
532
uri = Zeitgeist.NFO.SOFTWARE_SERVICE;
533
description = "A service published by a piece of software, either by an operating system or an application. Examples of such services may include calendar, addressbook and mailbox managed by a PIM application. This category is introduced to distinguish between data available directly from the applications (Via some Interprocess Communication Mechanisms) and data available from files on a disk. In either case both DataObjects would receive a similar interpretation (e.g. a Mailbox) and wouldn't differ on the content level.";
534
display_name = "SoftwareService";
535
parents = { NIE.DATA_OBJECT };
538
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
540
uri = Zeitgeist.NFO.SOURCE_CODE;
541
description = "Code in a compilable or interpreted programming language.";
542
display_name = "SourceCode";
543
parents = { NFO.PLAIN_TEXT_DOCUMENT };
546
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
548
uri = Zeitgeist.NFO.SPREADSHEET;
549
description = "A spreadsheet, created by a spreadsheet application. Examples might include Gnumeric, OpenOffice Calc or MS Excel.";
550
display_name = "Spreadsheet";
551
parents = { NFO.DOCUMENT };
554
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
556
uri = Zeitgeist.NFO.TEXT_DOCUMENT;
557
description = "A text document";
558
display_name = "TextDocument";
559
parents = { NFO.DOCUMENT };
560
children = { NFO.PAGINATED_TEXT_DOCUMENT, NFO.PLAIN_TEXT_DOCUMENT };
561
all_children = { NFO.SOURCE_CODE, NFO.HTML_DOCUMENT, NFO.PAGINATED_TEXT_DOCUMENT, NFO.PLAIN_TEXT_DOCUMENT };
562
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
564
uri = Zeitgeist.NFO.TRASH;
565
description = "Represents a container for deleted files, a feature common in modern operating systems.";
566
display_name = "Trash";
567
parents = { NFO.DATA_CONTAINER };
570
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
572
uri = Zeitgeist.NFO.VECTOR_IMAGE;
574
display_name = "VectorImage";
575
parents = { NFO.IMAGE };
578
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
580
uri = Zeitgeist.NFO.VIDEO;
581
description = "A video file.";
582
display_name = "Video";
583
parents = { NFO.VISUAL };
584
children = { NMM.TVSHOW, NMM.MOVIE };
585
all_children = { NMM.TVSHOW, NMM.MOVIE };
586
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
588
uri = Zeitgeist.NFO.VISUAL;
589
description = "File containing visual content.";
590
display_name = "Visual";
591
parents = { NFO.MEDIA };
592
children = { NFO.IMAGE, NFO.VIDEO };
593
all_children = { NMM.TVSHOW, NFO.VECTOR_IMAGE, NFO.VIDEO, NMM.MOVIE, NFO.CURSOR, NFO.ICON, NFO.IMAGE, NFO.RASTER_IMAGE };
594
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
596
uri = Zeitgeist.NFO.WEBSITE;
597
description = "A website, usually a container for remote resources, that may be interpreted as HTMLDocuments, images or other types of content.";
598
display_name = "Website";
599
parents = { NIE.INFORMATION_ELEMENT };
602
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
604
uri = Zeitgeist.NFO.WEB_DATA_OBJECT;
605
description = "An information resources of which representations (files, streams) can be retrieved through a web server. They may be generated at retrieval time. Typical examples are pages served by PHP or AJAX or mp3 streams.";
606
display_name = "web data object";
607
parents = { NIE.DATA_OBJECT };
610
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
612
uri = Zeitgeist.NIE.DATA_OBJECT;
613
description = "A unit of data that is created, annotated and processed on the user desktop. It represents a native structure the user works with. The usage of the term 'native' is important. It means that a DataObject can be directly mapped to a data structure maintained by a native application. This may be a file, a set of files or a part of a file. The granularity depends on the user. This class is not intended to be instantiated by itself. Use more specific subclasses.";
614
display_name = "DataObject";
616
children = { NFO.MEDIA_STREAM, NFO.FILE_DATA_OBJECT, NFO.SOFTWARE_SERVICE, NFO.HARD_DISK_PARTITION, NCO.CONTACT_LIST_DATA_OBJECT, ZG.EVENT_MANIFESTATION, NMO.MAILBOX_DATA_OBJECT, NFO.WEB_DATA_OBJECT, NFO.REMOTE_PORT_ADDRESS, NFO.SOFTWARE_ITEM, NCAL.CALENDAR_DATA_OBJECT };
617
all_children = { NCAL.ATTACHMENT, ZG.EVENT_MANIFESTATION, NFO.SOFTWARE_SERVICE, ZG.HEURISTIC_ACTIVITY, NCO.CONTACT_LIST_DATA_OBJECT, NFO.SOFTWARE_ITEM, NFO.FILE_DATA_OBJECT, NFO.HARD_DISK_PARTITION, NFO.EMBEDDED_FILE_DATA_OBJECT, NFO.DELETED_RESOURCE, NMO.MAILBOX_DATA_OBJECT, NFO.WEB_DATA_OBJECT, NCAL.CALENDAR_DATA_OBJECT, ZG.SYSTEM_NOTIFICATION, NFO.MEDIA_STREAM, NFO.ARCHIVE_ITEM, ZG.SCHEDULED_ACTIVITY, NFO.REMOTE_DATA_OBJECT, NFO.ATTACHMENT, ZG.USER_ACTIVITY, NFO.REMOTE_PORT_ADDRESS, ZG.WORLD_ACTIVITY };
618
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
620
uri = Zeitgeist.NIE.INFORMATION_ELEMENT;
621
description = "A unit of content the user works with. This is a superclass for all interpretations of a DataObject.";
622
display_name = "InformationElement";
624
children = { NFO.EXECUTABLE, NCAL.JOURNAL, NMO.MESSAGE, NFO.WEBSITE, NCAL.TODO, NFO.MEDIA_LIST, NCAL.ALARM, NCAL.CALENDAR, NCO.CONTACT, NCAL.EVENT, NFO.BOOKMARK_FOLDER, NFO.BOOKMARK, NFO.FONT, NFO.DATA_CONTAINER, ZG.EVENT_INTERPRETATION, NFO.DOCUMENT, NMO.MAILBOX, NCAL.FREEBUSY, NCO.CONTACT_LIST, NMM.TVSERIES, NCO.CONTACT_GROUP, NFO.SOFTWARE, NCAL.TIMEZONE, NMO.MIME_ENTITY, NFO.MEDIA };
625
all_children = { NFO.EXECUTABLE, NCAL.JOURNAL, ZG.MODIFY_EVENT, NMO.IMMESSAGE, NMO.MESSAGE, NFO.WEBSITE, NCAL.TODO, NFO.SPREADSHEET, ZG.CREATE_EVENT, NFO.MEDIA_LIST, NFO.FILESYSTEM, NCAL.ALARM, NCO.PERSON_CONTACT, NCAL.CALENDAR, NFO.BOOKMARK, NFO.TRASH, NCAL.EVENT, ZG.LEAVE_EVENT, NFO.ARCHIVE, ZG.ACCESS_EVENT, NFO.VECTOR_IMAGE, NFO.HTML_DOCUMENT, NFO.VIDEO, NFO.BOOKMARK_FOLDER, ZG.ACCEPT_EVENT, NCO.CONTACT, ZG.EXPIRE_EVENT, NFO.FONT, NFO.DATA_CONTAINER, NFO.RASTER_IMAGE, NFO.IMAGE, NFO.PLAIN_TEXT_DOCUMENT, ZG.EVENT_INTERPRETATION, NMO.MIME_ENTITY, NFO.APPLICATION, NFO.DOCUMENT, NMM.MUSIC_PIECE, NMO.MAILBOX, NMO.EMAIL, NFO.TEXT_DOCUMENT, NFO.FILESYSTEM_IMAGE, NFO.ICON, NFO.PRESENTATION, NCO.ORGANIZATION_CONTACT, NMM.MUSIC_ALBUM, NFO.SOURCE_CODE, NFO.VISUAL, ZG.DENY_EVENT, NFO.PAGINATED_TEXT_DOCUMENT, NMM.TVSHOW, NCO.CONTACT_LIST, NMM.TVSERIES, NFO.AUDIO, NCO.CONTACT_GROUP, NFO.OPERATING_SYSTEM, NFO.SOFTWARE, NMM.MOVIE, ZG.MOVE_EVENT, NCAL.TIMEZONE, NFO.MIND_MAP, NFO.FOLDER, ZG.SEND_EVENT, NFO.CURSOR, NCAL.FREEBUSY, NFO.MEDIA, ZG.DELETE_EVENT, ZG.RECEIVE_EVENT };
626
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
628
uri = Zeitgeist.NMM.MOVIE;
629
description = "A Movie";
630
display_name = "movie";
631
parents = { NFO.VIDEO };
634
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
636
uri = Zeitgeist.NMM.MUSIC_ALBUM;
637
description = "The music album as provided by the publisher. Not to be confused with media lists or collections.";
638
display_name = "music album";
639
parents = { NFO.MEDIA_LIST };
642
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
644
uri = Zeitgeist.NMM.MUSIC_PIECE;
645
description = "Used to assign music-specific properties such a BPM to video and audio";
646
display_name = "music";
647
parents = { NFO.AUDIO };
650
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
652
uri = Zeitgeist.NMM.TVSERIES;
653
description = "A TV Series has multiple seasons and episodes";
654
display_name = "tv series";
655
parents = { NIE.INFORMATION_ELEMENT };
658
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
660
uri = Zeitgeist.NMM.TVSHOW;
661
description = "A TV Show";
662
display_name = "tv show";
663
parents = { NFO.VIDEO };
666
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
668
uri = Zeitgeist.NMO.EMAIL;
669
description = "An email.";
670
display_name = "Email";
671
parents = { NMO.MESSAGE };
674
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
676
uri = Zeitgeist.NMO.IMMESSAGE;
677
description = "A message sent with Instant Messaging software.";
678
display_name = "IMMessage";
679
parents = { NMO.MESSAGE };
682
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
684
uri = Zeitgeist.NMO.MAILBOX;
685
description = "A mailbox - container for MailboxDataObjects.";
686
display_name = "Mailbox";
687
parents = { NIE.INFORMATION_ELEMENT };
690
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
692
uri = Zeitgeist.NMO.MAILBOX_DATA_OBJECT;
693
description = "An entity encountered in a mailbox. Most common interpretations for such an entity include Message or Folder";
694
display_name = "MailboxDataObject";
695
parents = { NIE.DATA_OBJECT };
698
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
700
uri = Zeitgeist.NMO.MESSAGE;
701
description = "A message. Could be an email, instant messanging message, SMS message etc.";
702
display_name = "Message";
703
parents = { NIE.INFORMATION_ELEMENT };
704
children = { NMO.EMAIL, NMO.IMMESSAGE };
705
all_children = { NMO.EMAIL, NMO.IMMESSAGE };
706
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
708
uri = Zeitgeist.NMO.MIME_ENTITY;
709
description = "A MIME entity, as defined in RFC2045, Section 2.4.";
710
display_name = "MimeEntity";
711
parents = { NIE.INFORMATION_ELEMENT };
714
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
716
uri = Zeitgeist.ZG.ACCEPT_EVENT;
717
description = "Event triggered when the user accepts a request of some sort. Examples could be answering a phone call, accepting a file transfer, or accepting a friendship request over an IM protocol. See also DenyEvent for when the user denies a similar request";
718
display_name = "ACCEPT_EVENT";
719
parents = { ZG.EVENT_INTERPRETATION };
722
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
724
uri = Zeitgeist.ZG.ACCESS_EVENT;
725
description = "Event triggered by opening, accessing, or starting a resource. Most zg:AccessEvents will have an accompanying zg:LeaveEvent, but this need not always be the case";
726
display_name = "ACCESS_EVENT";
727
parents = { ZG.EVENT_INTERPRETATION };
730
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
732
uri = Zeitgeist.ZG.CREATE_EVENT;
733
description = "Event type triggered when an item is created";
734
display_name = "CREATE_EVENT";
735
parents = { ZG.EVENT_INTERPRETATION };
738
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
740
uri = Zeitgeist.ZG.DELETE_EVENT;
741
description = "Event triggered because a resource has been deleted or otherwise made permanently unavailable. Fx. when deleting a file. FIXME: How about when moving to trash?";
742
display_name = "DELETE_EVENT";
743
parents = { ZG.EVENT_INTERPRETATION };
746
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
748
uri = Zeitgeist.ZG.DENY_EVENT;
749
description = "Event triggered when the user denies a request of some sort. Examples could be rejecting a phone call, rejecting a file transfer, or denying a friendship request over an IM protocol. See also AcceptEvent for the converse event type";
750
display_name = "DENY_EVENT";
751
parents = { ZG.EVENT_INTERPRETATION };
754
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
756
uri = Zeitgeist.ZG.EVENT_INTERPRETATION;
757
description = "Base class for event interpretations. Please do no instantiate directly, but use one of the sub classes. The interpretation of an event describes 'what happened' - fx. 'something was created' or 'something was accessed'";
758
display_name = "EVENT_INTERPRETATION";
759
parents = { NIE.INFORMATION_ELEMENT };
760
children = { ZG.DENY_EVENT, ZG.ACCESS_EVENT, ZG.EXPIRE_EVENT, ZG.LEAVE_EVENT, ZG.CREATE_EVENT, ZG.MOVE_EVENT, ZG.ACCEPT_EVENT, ZG.SEND_EVENT, ZG.MODIFY_EVENT, ZG.DELETE_EVENT, ZG.RECEIVE_EVENT };
761
all_children = { ZG.DENY_EVENT, ZG.ACCESS_EVENT, ZG.EXPIRE_EVENT, ZG.LEAVE_EVENT, ZG.CREATE_EVENT, ZG.MOVE_EVENT, ZG.ACCEPT_EVENT, ZG.SEND_EVENT, ZG.MODIFY_EVENT, ZG.DELETE_EVENT, ZG.RECEIVE_EVENT };
762
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
764
uri = Zeitgeist.ZG.EVENT_MANIFESTATION;
765
description = "Base class for event manifestation types. Please do no instantiate directly, but use one of the sub classes. The manifestation of an event describes 'how it happened'. Fx. 'the user did this' or 'the system notified the user'";
766
display_name = "EVENT_MANIFESTATION";
767
parents = { NIE.DATA_OBJECT };
768
children = { ZG.USER_ACTIVITY, ZG.WORLD_ACTIVITY, ZG.HEURISTIC_ACTIVITY, ZG.SCHEDULED_ACTIVITY, ZG.SYSTEM_NOTIFICATION };
769
all_children = { ZG.USER_ACTIVITY, ZG.SYSTEM_NOTIFICATION, ZG.HEURISTIC_ACTIVITY, ZG.SCHEDULED_ACTIVITY, ZG.WORLD_ACTIVITY };
770
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
772
uri = Zeitgeist.ZG.EXPIRE_EVENT;
773
description = "Event triggered when something expires or times out. These types of events are normally not triggered by the user, but by the operating system or some external party. Examples are a recurring calendar item or task deadline that expires or a when the user fails to respond to an external request such as a phone call";
774
display_name = "EXPIRE_EVENT";
775
parents = { ZG.EVENT_INTERPRETATION };
778
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
780
uri = Zeitgeist.ZG.HEURISTIC_ACTIVITY;
781
description = "An event that is caused indirectly from user activity or deducted via analysis of other events. Fx. if an algorithm divides a user workflow into disjoint 'projects' based on temporal analysis it could insert heuristic events when the user changed project";
782
display_name = "HEURISTIC_ACTIVITY";
783
parents = { ZG.EVENT_MANIFESTATION };
786
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
788
uri = Zeitgeist.ZG.LEAVE_EVENT;
789
description = "Event triggered by closing, leaving, or stopping a resource. Most zg:LeaveEvents will be following a zg:Access event, but this need not always be the case";
790
display_name = "LEAVE_EVENT";
791
parents = { ZG.EVENT_INTERPRETATION };
794
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
796
uri = Zeitgeist.ZG.MODIFY_EVENT;
797
description = "Event triggered by modifying an existing resources. Fx. when editing and saving a file on disk or correcting a typo in the name of a contact";
798
display_name = "MODIFY_EVENT";
799
parents = { ZG.EVENT_INTERPRETATION };
802
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
804
uri = Zeitgeist.ZG.MOVE_EVENT;
805
description = "Event triggered when a resource has been moved from a location to another. Fx. moving a file from a folder to another.";
806
display_name = "MOVE_EVENT";
807
parents = { ZG.EVENT_INTERPRETATION };
810
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
812
uri = Zeitgeist.ZG.RECEIVE_EVENT;
813
description = "Event triggered when something is received from an external party. The event manifestation must be set according to the world view of the receiving party. Most often the item that is being received will be some sort of message - an email, instant message, or broadcasted media such as micro blogging";
814
display_name = "RECEIVE_EVENT";
815
parents = { ZG.EVENT_INTERPRETATION };
818
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
820
uri = Zeitgeist.ZG.SCHEDULED_ACTIVITY;
821
description = "An event that was directly triggered by some user initiated sequence of actions. For example a music player automatically changing to the next song in a playlist";
822
display_name = "SCHEDULED_ACTIVITY";
823
parents = { ZG.EVENT_MANIFESTATION };
826
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
828
uri = Zeitgeist.ZG.SEND_EVENT;
829
description = "Event triggered when something is send to an external party. The event manifestation must be set according to the world view of the sending party. Most often the item that is being send will be some sort of message - an email, instant message, or broadcasted media such as micro blogging";
830
display_name = "SEND_EVENT";
831
parents = { ZG.EVENT_INTERPRETATION };
834
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
836
uri = Zeitgeist.ZG.SYSTEM_NOTIFICATION;
837
description = "An event send to the user by the operating system. Examples could include when the user inserts a USB stick or when the system warns that the hard disk is full";
838
display_name = "SYSTEM_NOTIFICATION";
839
parents = { ZG.EVENT_MANIFESTATION };
842
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
844
uri = Zeitgeist.ZG.USER_ACTIVITY;
845
description = "An event that was actively performed by the user. For example saving or opening a file by clicking on it in the file manager";
846
display_name = "USER_ACTIVITY";
847
parents = { ZG.EVENT_MANIFESTATION };
850
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
852
uri = Zeitgeist.ZG.WORLD_ACTIVITY;
853
description = "An event that was performed by an entity, usually human or organization, other than the user. An example could be logging the activities of other people in a team";
854
display_name = "WORLD_ACTIVITY";
855
parents = { ZG.EVENT_MANIFESTATION };
858
Symbol.Info.register (uri, display_name, description, parents, children, all_children);
863
private class Symbol.Info
865
public List<string> parents;
866
public List<string> children;
867
public List<string> all_children;
869
public string display_name;
870
public string description;
872
private Info (string uri, string display_name, string description,
873
string[] parents, string[] children, string[] all_children)
876
this.display_name = display_name;
877
this.description = description;
878
this.parents = new List<string> ();
879
for (int i = 0; i < parents.length; i++)
880
this.parents.append (parents[i]);
881
this.children = new List<string> ();
882
for (int i = 0; i < children.length; i++)
883
this.children.append (children[i]);
884
this.all_children = new List<string> ();
885
for (int i = 0; i < all_children.length; i++)
886
this.all_children.append (all_children[i]);
889
internal static void register (string uri, string display_name,
890
string description, string[] parents, string[] children,
891
string[] all_children)
893
if (all_symbols == null)
894
all_symbols = new HashTable<string, Info> (str_hash, str_equal);
895
Info symbol = new Info (uri, display_name, description,
896
parents, children, all_children);
897
all_symbols.insert (uri, symbol);
904
// vim:expandtab:ts=4:sw=4