W3C home > Mailing lists > Public > public-rdf-wg@w3.org > April 2011

aside: "contexts" in RDF

From: Dan Brickley <danbri@danbri.org>
Date: Fri, 15 Apr 2011 21:23:44 +0200
Message-ID: <BANLkTinvH2pUXWanQXkWQ8V9G7rvQkk9nQ@mail.gmail.com>
To: nathan@webr3.org, Ivan Herman <ivan@w3.org>, Pierre-Antoine Champin <pierre-antoine.champin@liris.cnrs.fr>, RDF WG <public-rdf-wg@w3.org>, David Wood <david.wood@talis.com>
On 15 April 2011 19:11, Nathan <nathan@webr3.org> wrote:
> Ivan Herman wrote:
>> On Apr 15, 2011, at 14:03 , Pierre-Antoine Champin wrote:
>>> On 04/14/2011 03:18 PM, Dan Brickley wrote:
>>>> rdfms-contexts: Suggestion that the concept of context is missing from
>>>> RDF.
>>
>> ...
>> I am not sure what context is.
>
> context = old term for quoted-graphs in N3 iirc

Closer :) It's not  reallyJSON or N3, but dates from RDF's MCF
ancestry and R.V.Guha.

Guha did his phd on the topic,
http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=guha+contexts
http://tw.rpi.edu/wiki/Ramanathan_V._Guha
http://tw.rpi.edu/wiki/Contexts:_A_Formalization_and_Some_Applications
http://www-formal.stanford.edu/guha/guha-thesis.ps

This was related to the '90s Cyc work (maybe Pat Hayes knows more
detail), micro-theories and suchlike. It allowed for a kind of
modularity, through partitioning a knowledge base into areas that had
different perspectives and levels of detail. A slimmed down version of
these ideas showed up in MCF, Meta Content Format, ... Guha's thing
while he was at Apple, and which moved with him to Netscape ~1996 I
guess.

I recommend reading http://www.guha.com/mcf/wp.html - and try to see
'rdf' wherever you read 'mcf'.

The idea of Context is presented there: "Compositable Descriptions: We
often need to have multiple layers of descriptions, each adding to or
modifying lower layers." The MCF API described there has contexts as
layers.

MCF is an important technology, historically. It had some notable
grassroots deployment in the early Web as a sitemaps format, and was
the real ancestor to all the subsequent syndication formats in the RSS
and Atom tradition. Definitely also inspired FOAF.

So this MCF work went to Netscape ~1997. As I understand it, Tim 'XML'
Bray was brought in as a consultant and locked in a room with Guha
until an XMLified version was created and documented as
http://www.w3.org/Submission/1997/8/

 * http://www.w3.org/TR/NOTE-MCF-XML/ "Meta Content Framework Using
XML" and also
 * also a tutorial http://www.w3.org/TR/NOTE-MCF-XML/MCF-tutorial.html

At the same time, the PICS-NG group were working to make W3C's PICS
format flexible and extensible enough to accomodate the needs of
communities like Dublin Core (see Ora's
http://www.w3.org/TR/NOTE-pics-ng-metadata ) alongside other ideas
like http://www.w3.org/TR/NOTE-XMLsubmit and XML-Data. XML itself was
still being finalised (esp around namespaces). So MCF dissapeared in
the first RDF Working Group (Model + Syntax), which delivered  a first
public working draft of something that looked like modern RDF to the
public in October 1997, a few days before the Dublin Core conference.
(I read it for the first time on the flight to
http://www.kansalliskirjasto.fi/extra/muut/meta/DC5.html ... and as an
MCF implementor recognised where it was heading and got involved).

So contexts kind of dissapeared from MCF as a data model and standard
as it became RDF. In the specs it was replaced by the clunky
reification vocabulary. The work we're starting now on graphs/quads is
closer to the original idea.

But contexts continued to exist in the implementation environment.
Mozilla for some years had the world's first RDF implementation, and
it began earlier as an MCF implementation; you can still poke around
the source code here:
http://mxr.mozilla.org/classic/source/modules/rdf/src/

Mozilla's RDF APIs were defined in
http://mxr.mozilla.org/classic/source/modules/rdf/src/mcf.c and show
it's datasource stacking architecture, which is familiar to most of us
here as similar to most modern triple store and RDF APIs. You could
compose a composite datasource by putting other sources inside it, so
other application layers needn't worry exactly where the data lived.
The application/UI story behind all this is archived at
http://www-archive.mozilla.org/rdf/doc/aurora.html

So this basic idea in a few flavours was floating around in the RDF
hacking community, surfaced in N3 as contexts, in Dave Beckett's
Redland system - http://librdf.org/notes/contexts.html - and in some
nice work from Graham Klyne, eg. see

http://www.ninebynine.org/RDFNotes/RDFContexts.html "Contexts for RDF
Information Modelling"
and http://www.ninebynine.org/RDFNotes/UsingContextsWithRDF.html

Really there's no real single thing that is "RDF contexts", ... but
rather a decades-spanning conversation and hackathon (that goes back
further than I listed) about how best to build information-merging
environments. It ranges from simple triple-tagging and datasource
stacking to mechanisms in logic-based languages, and eventually gave
rise to SPARQL's GRAPH mechanism (since most RDF toolkits followed
Mozilla's lead and eventually implemented something to group triples).

cheers,

Dan
Received on Friday, 15 April 2011 19:24:16 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:25:41 GMT