- From: Dan Brickley <Daniel.Brickley@bristol.ac.uk>
- Date: Mon, 22 Jan 2001 00:43:20 +0000 (GMT)
- To: www-rdf-interest@w3.org
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 UTC