Dan Brickley wrote:
(I changed subject line again, sorry but to avoid misleaing further :)
OK, you goaded me into writing up what I was thinking about...
On 31/5/09 21:09, Andreas Harth wrote:
Hi,
Dan Brickley wrote:
Basic idea in a nutshell is that SPARQL is great for data access, but
there may be additional query-oriented data structures worth spec'ing
based around the set-oriented navigation very nicely articulated by
David Huynh in the Parallax screencast. And that if such a structure
could be exchanged between systems we could hope that the navigational
paradigm it supports could be found in various concrete UIs, and that
the results of exploring data this way could become useful and
standard artifacts in the public Web, rather than just bookmarks
within some specific system.
there's at least two issues with using standard SPARQL endpoints
in a faceted browsing system (as far as I can see from my experiements
with SWSE and VisiNav):
* A lot of end-user systems for RDF data navigation offer keyword
search, which is not in standard SPARQL. Emulating fulltext search
with SPARQL regex's seems suboptimal. Using endpoint-specific
FILTERs or magic predicates requires adaptations depending on
the RDF store used, and might be tricky when you want to mix
SPARQL endpoints from different vendors.
* Ranking is essential for systems offering navigation over web data.
LIMIT is ok to improve performance by keeping the result size small,
but query processors will then return arbitrary results that wouldn't
satisfy end users who expect relevant (i.e. ranked) results.
Oh, I quite agree. Actually I made a lot of these same points re what
to expect from SPARQL last friday at LIDA2009 -
http://www.slideshare.net/danbri/understanding-the-standards-gap ...
...ie that SPARQL is good for what it's meant for, but people
expecting standards-supporting tools to do more will be in for a
dissapointment.
What I was getting at instead in the conversation here is that we
could directly serialize the "box of box of related things" conceptual
model that we see in various SW toolsets. Am avoiding other container
words like (rdf:)Bag, Set, Class etc although the concepts are
obviously related. So for here it's "boxes".
So to take David's example,
Box 1: A journey exploring information about presidents, their kids
and their education...
box 1.1: All things that are US presidents
box 1.2: All things that are children of things in bag_1.1
box 1.3: All things that are educational institutions, attended by
things in bag 1.2
bag1.4: All things that are places that are locations of things in bag
1.3...
Box 2: A journey into info about hong kong skyscrapers, their
designers, and the buildings those designers have made
box 2.1: All things that are skyscrapers in Hong Kong
box 2.2: All things that are the architects of things in bag 2.1
box 2.3: All things that are buildings designed by things that are in
bag 2.2 ...etc
Note: each sub-box is an RDFesque expression couched in terms of types
and relations, with a reference to the set of things handed along from
the previously box. In theory each of these could also evaluated with
different "according to..." criteria, which could map into SPARQL
GRAPH provenance, different databases, or various other ways of
indicating who-said-what. Also note that the class hierarchies beloved
of OWL enthusiasts is potentially useful here: if a trail goes cold,
eg. because you only find 3 or 4 things that are schools of kids of
presidents, you could explore higher up the class hierarchy in one of
these expression ("Not much found. Try Politician instead of US
President? Try Educational Institution instead of School?")...
Each of the outer boxes captures a journey into some data. In the
Freebase/Parallax articulation, the data is from the same
mega-database. Obviously Semwebby people are fascinated by distributed
systems and standards, which is what I'm getting at here. The
conceptual model above - navigating by groups of things, is pretty
basic and potentially universal. The restrictions in old style boolean
query against bibliographic databases, or the set machinery in OWL,
are closely related. What I'd like to see is something in this
direction that can be made separate of UI, separate from particular
database, and universal enough to be taught in schools.
The sketch above is playing with a spec that could ultimately be
compiled down to SPARQL (though maybe not so simplistically, given the
need for counts etc), but which captures something a little closer to
UI and user intent too, so that the query could be usefully mutated if
it didn't throw up many results...
Sorry this is so sketchy, but am I making any sense here?
This sounds pretty exciting! I'm glad you're thinking of doing something
in this direction!
A while ago, I did think about formulating a query language to capture
the browsing paradigm of Parallax, but I was afraid that the query
language might restrict innovations, at least at that early stage of the
game. But over the long term, however, once we've understood the
conceptual model, and all of the nuances that are required for
user-friendliness, then it's definitely worthwhile to have some
standard, perhaps in the form of a query language, that lets different
system work together, as you envision.
So I'd say that the best practical plan here is to develop a real
working and usable system alongside with the query language (or protocol
or whatever kind of abstraction), but make the system the primary
artifact--fine-tuning it to make it usable--and keep the query language
up to date with the system. Of course the elegance of the query language
should also inform the design and implementation of the system.
It would be really neat if you can even set this up as an open source
project that everyone here can work together on. (The worst case
scenario is that it's just a paperware project that falls apart after
the paper has been published.)
David