W3C home > Mailing lists > Public > www-rdf-interest@w3.org > January 2001

RDF, N3 syntax and Metalog

From: Dan Brickley <Daniel.Brickley@bristol.ac.uk>
Date: Mon, 22 Jan 2001 00:43:20 +0000 (GMT)
To: www-rdf-interest@w3.org
Message-ID: <Pine.GSO.4.21.0101220028190.23254-100000@mail.ilrt.bris.ac.uk>


I've seem quite a few mentions of TimBl's "Notation3" experiment here
lately, so thought I'd remind you all of an older, similar
effort: Metalog.

Metalog -- http://www.w3.org/RDF/Metalog/ is presented as...
[[
... a new querying language, Metalog, allows users to write inference rules
and queries in English-like syntax.
     We will demonstrate how these reasoning rules have equivalent
representation both as RDF descriptions and as logic programs.
]]

While N3, (http://www.w3.org/DesignIssues/Notation3) presents an
alternate text serialisation for RDF and RDF-Logic expressions, Metalog
focusses on the natural language aspect.

[[

     In the first component, a particular data semantics is
established. Metalog provides way to express logical relationships like
"and", "or" and
     so on, and to build up complex inference rules that encode logical
reasoning.
[...]
The second component consists of a "logical interpretation" of RDF data
(optionally enriched with the semantic schema) into logic
     programming. This way, the understood semantics of RDF is unwielded
into its logical components 
[...]
The third component is a language interface to writing structured data
and reasoning rules. In principle, the first component already suffices:
     data and rules can be written directly in RDF, using RDF syntax and
the metalog schema. However, this is not convenient from the practical
     viewpoint. Indeed, RDF syntax aims at being more an encoding
language rather than a user-friendly language, and it is well recognised
in the
     RDF community and among vendors that the typical applications will
provide more user-friendly interfaces between the "raw RDF" code and
     the user. Our proposed language is innovative in that it tries to
stress user-friendliness as much as possible: a program is a collection
of
     natural language assertions. We think this feature will be
particularly important for the wide deployment not only of metalog, but
of RDF itself
]]

While Metalog itself is not currently being actively developed, like N3
it helps us weight the costs and benefits of the various XML and non-XML
syntaxes for RDF and RDF-Logic expressions.

Examples:

	[[[

            if SHE has a "degree" in "math" then SHE "is" "smart"
            is translated into the logical formula
            degree(SHE,"math") => is(SHE,"smart")

	if SHE has a "degree" in "math" and SHE has a "degree" in "computer
	science" as well then SHE "is" "really smart".
        is translated into the logical formula
        (degree(SHE,"math") and degree(SHE,"computer science"))=>
        is(SHE,"really smart")


           the "technical report 231" has as "authors" "Mary" and "John".
            is translated into the logical formulas (the translation
	    here is more involved since the RDF Bag construct is used):
            authors("technical report 231",foo).
            rdf:type(0,rdf:Bag).
            rdf:_1(0,"Mary").
            rdf:_2(0,"John"). 


	Note: metalog programs also have a facility to express namespaces via
	the keyword namespace. We will not go in further details since we
	     won't be explicitly using namespaces sugaring here, but en passant
	we just mention that essentially the namespace keyword has the same
	     functionality as the xmlns attribute for XML namespaces. Also,
	there are a number of other keywords that deal. for example, with
	numbers
	     operations (e.g., greater, less, etc.), but for the sake of 

	]]]

See http://www.w3.org/RDF/Metalog/ for further documentation and code.

I've no particular point to make, just that this makes for an
interesting compare-and-contrast. We might also compare N3 and Metalog 
to the RDFdb (http://web1.guha.com/rdfdb/) and Squish
(http://xmlhack.com/read.php?item=937) strategies for making RDF query
expressions more mainstream-intuitive through echoing SQL-ish structures. 
Would be interesting to do some usability tests on these contrasting
approaches, perhaps by locking a few Web developers in a room with 2-way
mirrors and a variety of RDF databases. Something to try for the RDF IG
boston meeting perhaps? ;)

Dan
Received on Sunday, 21 January 2001 19:44:32 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:51:47 GMT