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

Reply via email to