265 |
=================== |
=================== |
266 |
|
|
267 |
Fenfire is a free software project aiming at implementing |
Fenfire is a free software project aiming at implementing |
268 |
the user interface concepts on top of an RDF graph, |
the applitude-oriented user interface concepts on top of an RDF graph. |
269 |
|
|
270 |
|
Fenfire is, against some trends, a relatively monolithic system - |
271 |
|
to be able to XXX we have to simultaneously replace the |
272 |
|
backend structure and the user-interface framework. |
273 |
|
|
274 |
|
|
275 |
|
|
276 |
|
Fenfire structures are defined by simple RDF vocabularies, |
277 |
|
|
|
Fenfire structures are defined by as simple RDF vocabularies as possible |
|
278 |
|
|
279 |
- implemented separately by classes |
- implemented separately by classes |
280 |
|
|
281 |
- intent: combine into applitudes, have metadata |
- intent: combine into applitudes, have metadata of the |
282 |
|
structures also in RDF |
283 |
|
|
284 |
Free software |
- possibly at a later date use ontologies and schemas |
285 |
|
&c to allow |
286 |
|
flexible definition of applitudes |
287 |
|
|
|
- situation in the software market is such that it's not likely |
|
|
a new type of product could succeed commercially. |
|
288 |
|
|
289 |
Libvob |
Libvob |
290 |
------ |
------ |
291 |
|
|
292 |
- keys, structures allow "annotations" |
Libvob is a subproject of Fenfire, providing a flexible user-interface |
293 |
|
toolkit with some novel features that allow the independent |
294 |
|
applitudes to work on the same user interface. |
295 |
|
|
296 |
|
Instead of a static structure of widgets or a scene graph, |
297 |
|
the scene is regenerated each time the user presses a key [#libvob-speed]_. |
298 |
|
|
299 |
|
The scene consists of a DAG of coordinate systems (the actual |
300 |
|
coordinate systems), a keyed tree for *identifying* coordinate |
301 |
|
systems and a set of renderable objects (vobs) placed into |
302 |
|
one or more coordinate systems each. |
303 |
|
|
304 |
|
This structure allows |
305 |
|
|
306 |
|
1) Automatically generated animations between successively |
307 |
|
generated scenes: the coordinate systems are matched |
308 |
|
to each other based on the keyed tree and sometimes special |
309 |
|
instructions |
310 |
|
|
311 |
|
2) More importantly, **post-processing** of the view generated |
312 |
|
by other applitudes -- applitudes can **add** new coordinate |
313 |
|
systems and vobs on the view, based on what is already shown. |
314 |
|
|
315 |
|
The buoys are added this way: a connector object goes through |
316 |
|
a generated vobscene and adds buoys to the nodes in it - regardless |
317 |
|
of who placed those nodes in there. |
318 |
|
|
319 |
|
|
320 |
|
|
321 |
An example applitude combining multiple structures: FenPDF |
An example applitude combining multiple structures: FenPDF |
332 |
|
|
333 |
- fluid links |
- fluid links |
334 |
|
|
335 |
|
The implementation is currently flexible; new types of |
336 |
|
structures can be added easily. |
337 |
|
|
338 |
Related work |
Related work |
339 |
============ |
============ |
421 |
|
|
422 |
- working FenPDF system |
- working FenPDF system |
423 |
|
|
424 |
|
Free software |
425 |
|
|
426 |
|
- situation in the software market is such that it's not likely |
427 |
|
a new type of product could succeed commercially. |
428 |
|
|
429 |
Acknowledgments |
Acknowledgments |
430 |
=============== |
=============== |
431 |
|
|
647 |
recommends for discussing the structure used in ZigZag(TM), |
recommends for discussing the structure used in ZigZag(TM), |
648 |
(Nelson's trademark). |
(Nelson's trademark). |
649 |
|
|
650 |
|
.. [#libvob-speed] For some changes (panning, zooming), the scene |
651 |
|
need not be regenerated but only the coordinate system |
652 |
|
parameters adjusted. |
653 |
|
|
654 |
|
Also, scene regeneration is not necessarily slow: we have |
655 |
|
some extremely promising results |
656 |
|
functional programming -related |
657 |
|
caching techniques and are experimenting with recursive vobscenes |
658 |
|
in that context. |
659 |
|
|
660 |
|
|
661 |
|
|
662 |
|
|