Posted by: Roger King
when relevant content is
added and updated.
What “declarative” really means
In programming languages, we use the word “declarative” to refer to a language that does not force a programmer to specify more sequencing information than is strictly necessary. The idea is for the program to tell the computer what needs to be done, and not precisely how to do it. Instead of an algorithm, we provide a static specification of what the result will look like. In an imperative (or non-declarative) language, the programmer might specify that an array is to be read from position 0 to position 99, and that at each position in the array, the value at that position is to be increased by 1. In a declarative language, the programmer might be able to simply state that every entry in the array is to be incremented by 1.
But what does the word “declarative” really mean, English-wise? Well, it refers to the process of making a declaration, of making a formal statement about something.
Searching web-based media assets: today’s tools
What does this have to do with the Semantic Web and/or Web 3.0? That’s what this blog is dedicated to: next generation web technology.
A major growth area for the web will be applications that manage complex forms of media, and the automatic searching of blob and continuous media, such as images, video, sound, animation, 3D models, and of mixed-mode media. These will present a major challenge. Simply put, our best technology for making advanced forms of media searchable is tagging. And this low-level tool doesn’t come close to allowing us to search according to the true meaning of media assets. Searching for blob and continuous media is still painstaking and manual.
So, how could we make things like video and 3D models more searchable? How could we improve the search process? Two important technologies offer significant help. The first is more sophisticated, high level, and content-ful tagging protocols, such as MPEG-7. Another is image processing, which is actually a highly developed area, since the U.S. government has poured many millions of dollars into it over the past several decades. It’s also true that language processing tools have been used to parse and interpret textual descriptions of media, but this sort of freeform analysis is difficult to make accurate and predictable, given the extreme complexity and ambiguity of natural language. People write “stories” with language, and a long piece of text has to be read from beginning to end, in order to understand it.
What about using notes?
But perhaps the future lies is a sort of compromise technology, one where tagging information made with tools like MPEG-7, combined with image processing, and/or natural language processing, is used to cut the search space from many thousands of media artifacts to something that could be processed interactively by humans. This is in contrast to downloading potentially huge files and viewing them in real time. Even downloading small video and audio clips and low-pixel count preview images can overwhelm the average interactive web user. These often don’t give an accurate vision of what the full pieces of media contain.
The answer might lie in highly organized “notes”, written with note-taking applications. These applications provide quick, compact, and highly visual ways for people to document their thoughts. They range from lists to outlines to hierarchically structured blocks of text to diagrammatic “mind-maps”. Note-taking applications often support video and images and sound; in a way that might seem ironic, an individual could create mini-multimedia artifacts to facilitate the searching of large multimedia assets. But in truth, this is could be a very powerful technique – because one of the primary attributes of most note-taking applications is that they provide “at-a-glance” semantics. In other words, if used right, a note or a list or a mind-map is captured on in a single screen image. And, when users build more complex notes, these applications typically facilitate very top-down structures. Notebooks have tables of content; hierarchical notes have root nodes; mind-maps are expandable.
And above all else, there is something about the note-taking philosophy that encourages compactness. In other words, they are in a sense, declarative. A note makes a quick, firm statement.