[Mulgara-general] graph types

Gregg Reynolds dev at mobileink.com
Sat Aug 29 16:52:59 UTC 2009


On Fri, Aug 28, 2009 at 10:56 PM, Paul Gearon <gearon at ieee.org> wrote:

>
> Accessing a graph (for reading or writing) is done through a module
> called a "Resolver". Resolvers are libraries that access data in some
> form, and return it as triples. Read/write resolvers, are also able to
> write triples back out into the given format.


> Resolvers register themselves with the system as being able to handle
> graphs of a certain type, or being able to handle a certain protocol.
> So now the steps above can be more properly described as:
>
...

Ok, read the docs on the wiki about resolvers.  Here's my take, using
somewhat different language:

1.  A "resolver" consists of two functional components; one ("protocol
resolver", per http://www.mulgara.org/trac/wiki/ResolverTutorials) resolves
(=dereferences?) an address (URL), the other ("content handler") converts
the data at the address into triples.

2.  The "type" of a graph actually refers to "the registered resolver that
handles that type" (per
http://mulgara.org/pipermail/mulgara-general/2009-August/000900.html),
rather than a type in the generally accepted sense of the term; i.e. from
the client perspective graphs are just graphs, and Mulgara's notion of graph
type is an implementation detail.  In other words, a difference in graph
type does not imply a difference in semantics, as one might expect.  (Not
quite true, since e.g. matching is fuzzy for LuceneModel graphs.)

3.  One might argue that graph type refers to the format of the originating
data source.  But we can't know what the original source format is, since we
don't know how the data may have been transformed by other processes, so the
most we can say is it refers to the data format that the "content handler"
accepts.

4.  On the other hand, we have types "Model" and "ViewModel", which don't
expose the resolver/content handler, unlike "LuceneModel" and "ID3v1" (which
I take to mean "MP3 resolver/handler", based on the tutorial), etc.

5.  The Resolvers wiki page (http://www.mulgara.org/trac/wiki/Resolvers)
says that even e.g. RDF/XML and N3 files are dealt with by resolvers and
content handlers; does this mean that the graphs of such files have
corresponding graph types?  Or would they have the default type "Model"?

Long story short, it still isn't clear to me what precisely the notion of
graph type is intended to capture, and how it is intended to be used.

How does Mulgara decide which type to assign?

On the other hand, I can see a use for such of property when it comes to
inferencing, where you might want to distinguish between the explicitly
asserted graph (type "assertedGraph"?), the inferred graph
("inferredGraph"?), the TBox graph ("terminologyGraph"?), etc.

-gregg
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mulgara.org/pipermail/mulgara-general/attachments/20090829/6dbde6ac/attachment.htm>


More information about the Mulgara-general mailing list