Thanks, Kingsley, I certainly didn't expect *you* personally to respond
to my lengthy questions. (Haven't I pummeled you enough already!) :)
However, this does give me a chance to further explain the background to
some of the questions. See inline below:
Kingsley Idehen wrote:
Michael K. Bergman wrote:
To All and the OpenLink Crew,
As my first posting to this list, I have some getting started newbie
developer questions. I have installed the Windows binaries (with
everything running fine) and have downloaded and extracted the source
code as well. I should note that my immediate interest is in interface
mods and refinements, so that I am focusing on ODS and its associated
.vspx and .css files.
Welcome!
Fred is a good companion re. ODS customization since he is working on
this as part of Zitgist :-)
Great; I will contact Fred directly.
A guiding principle for ODS is to look at it a being comprised of:
(V)iewer - VSPX or VSP
(C)ontroller - Web Services and Virtuoso PL based APIs
(M)odel - SQL (at its core) and RDF instance data for SIOC, FOAF, SKOS,
AtomOWL, Annotea Bookmarks, and others.
I articulate the architecture above due to the fact that it is really
possible to exploit ODS via the (C) and (M) components implying you can
easily build an alternative (V).
1. The ODS Quick Start guide
(http://virtuoso.openlinksw.con/wiki/main/Main/OdsConfig) indicates I
can install the ods_filesystem.vad package to make Web page changes on
the fly. I could not find that package, nor explanations of which
source files go in it if I wanted to re-build it
The VAD packages on the ODS Web Site are out of date :-(
I've uploaded a new set (ods_*) available from:
http://myopenlink.net:8890/DAV/home/kidehen/Public/Installers/ODS (there
are WebDAV and Filesystem folders. I recommend WebDAV since there are
one or two missing filesystem VADs. Also, the WebDAV approach is better
since all the components are in one logical DB unit associated with one
or more Physical DB files depending on whether you stripe your Physical
Virtuoso Storage files (.db files).
I tried to access the directories, but it did not like my
login/passwords (I thought I was using the "standards"); also, are you
saying to simply retrieve from WebDAV?
I'm also confused about WebDAV v filesystem. Documentation says the
ods_filesystem.vad package puts the "dynamic web pages in the filesystem
and you can edit them as the server is running" --> exactly what I want
to do. What happens if both VAD and individual files are both resident
locally? (In other words, I do not want to start/re-start the server
during active UI development.)
BTW, I think I saw that the <resources> within a VAD file indicate the
inclusive list of needed files.
2. I have checked the excellent (but some dated, and most geared to
the commercial version) Virtuoso documentation and can find no
documentation on ods_dav.vad. Would I be correct that *after* making
any UI code changes that is advisable to re-build this package?
Not really, you are better off putting your modifications into a
separate VAD.
3. Are there any utilities to access and modify either .vsp or .vspx
files? Working with the XML directly is pretty hairy
Various Editors will work (in some cases you tell them to recognize the
vsp and vsp extensions e.g DreamWeaver and others). I use TextMate on
Mac OS X.
4. It would seem that either an adoption or a bridge to XUL would make
sense for VSPX (or perhaps some way to cross-link the two). It strikes
me that take up for anything with a UI component depends on having a
critic mass in a user community
Yes.
XUL can act as an alternative (V) as per my earlier comments if your
choose.
OAT is another option.
Yeah, I have gotten it for some time about the MVC split. What I'm
getting at here is *not* separation, which is cool and good design in
any case, but ways to gain broader market acceptance. My thoughts here are:
1. So far, I *like* the coupling I see of the VSPX M component to the
rest of the system (and at first blush the VAD packaging as well !) and
would just as soon use the VSPX framework (that is why I'm testing it !)
as any other, *but*:
2. VSPX bears much similarity to XUL. Are the distinctions minor
enough to bring the many XUL developers closer to Virtuoso (think of the
10,000 FF add-ins)
3. Further, there are also IDEs and visual design tools emerging
(XULRunner, others) that will increasingly be a part of the M. An
emerging linkage of such tools with Virtuoso could be very attractive to
the marketplace (well, OK, me!! :) )
5. Where might I find any documentation regarding how to create my own
Virtuoso/ODS plug-ins?
We are lacking a little on the documentation front.
What would you be plugging in here? If we are talking Metadata
Extractors for instance, then a tutorial doc is being completed. Where
are you looking to extend? (V), (C), or (M)?
Actually, I *am* thinking personally about some specific plug-ins,
mostly in IE extractors and independent client tools (a la Zotero) that
could do some stuff with Virtuoso on the server side (a later discussion
topic). However, the broader reason for this question is again market
acceptability:
1. A clean plug-in structure helped WordPress significantly. As I look
to ODS, I can see spam things, little utilities, you know, the dozens of
plug-ins that hundreds of developers have created. I use about a dozen
plug-ins in my own WP and I think that is pretty typical
2. More generally, which is not news to anyone here, strong plug-in
frameworks and APIs I think are extremely important to market acceptance
per WP or Firefox.
6. Is there documentation for how best to include OAT with ODS, and
does it add anything at present out of the box?
From OAT's vantage point ODS is just another data source through which
it interacts with data via:
- SQL (over XMLA)
- RDF (SPARQL)
- XML (REST / Basic HTTP GET)
- Web Services that return JSON or XML (REST or SOAP variants)
Thus you can build a form using the various data bound controls against
ODS Data.
What is powerful but not always obvious is the fact that when you take
the RDF route you simply focus on URIs that are processed via SPARQL
(where you construct the SPARQL using the Query Builder).
Forgive me for the number of questions; there will certainly be more
to come.
Thanks, Mike
Basically, we need to update our screencasts for ODS and OAT :-)
I know, there's never enough time in the day. Insofar as I need to
figure out some stuff for my own purposes, I want to do what I can as
well to contribute to the documentation pool / knowledge base.
BTW, I can't believe how much rich functionality I keep discovering
under the hood on this stuff. Most impressive!
Thanks, Mike