- From: Jos de Bruijn <debruijn@inf.unibz.it>
- Date: Tue, 06 May 2008 10:15:18 +0200
- To: Michael Kifer <kifer@cs.sunysb.edu>
- CC: Dave Reynolds <der@hplb.hpl.hp.com>, "Boley, Harold" <Harold.Boley@nrc-cnrc.gc.ca>, "Public-Rif-Wg (E-mail)" <public-rif-wg@w3.org>
- Message-ID: <48201396.2030600@inf.unibz.it>
<snip/> >> All I want to do is identify a rule with an IRI (no arbitrary Consts) >> and attach RDF compatible metadata to it. >> >> I see no RDF mapping in this proposal. It is clear that one could use >> the RDF to Frame mapping to map from RDF to Frames and attach them via >> this metadata representation but (a) that doesn't account for the *i >> component and how that relates to any Frame identifiers and (b) the >> reverse mapping is not possible. I'm not comfortable with introducing a >> metadata notation to the semantic web which can't be mapped to RDF >> without some serious consultation. > > The *i component was a concession to Jos' proposal who also had that. > Its mapping to RDF is trivial (it is just a constant!). In my proposal the identifier was the subject of the metadata. > Regarding the relationship between *i and the objects of metadata frames, > we showed by the examples that there is no builtin relationship. The *i There should be a built-in relationship, because the metadata you write is about the component you are identifying. Best, Jos > component identifies the corresponding part of the formula. The objects of > the metadata frames are for cross-referencing those frames and are used > to share metadata (cf. Paul's email). > > > --michael > > >> This is not yet a formal objection. Up to now, to avoid blocking >> progress, I've abstained (+/- 0) rather than objected to schemes I'm >> less happy with. For this one I'd need to think about it some more and >> consult with colleagues. >> >> Dave >> >> Boley, Harold wrote: >>> Hi RIF WG, >>> >>> Here is a new proposal for moving forward with identification >>> and metadata, which we hope will satisfy everyone. >>> >>> The idea, initially articulated by Sandro, is to allow IRIMETA >>> annotations to appear at any level, now also separating optional >>> identification from optional metadata, as suggested by Jos and >>> others. >>> >>> In the presentation syntax, IRIMETA has the following form: >>> >>> ('*i' Const)? ('*m' FORMULA)? >>> or >>> '<*' Const? FORMULA? '*>' >>> >>> (Left open here: in the first case, an *i marks the Const >>> as identifier and an *m marks the FORMULA as metadata, while >>> in the second case the IRIMETA is bracketed with a <* *> pair.) >>> >>> The Const acts as an optional identifier and the FORMULA (e.g. a Frame >>> or >>> a conjunction of Frames) acts as optional metadata. FORMULA cannot be a >>> constant or a variable (this latter restriction is always fulfilled in >>> BLD, >>> but is needed for FLD). >>> >>> Why formulas instead of just frames? In most cases it would be just a >>> single frame. Conjunctions of (unnested) frames can be used to express a >>> set of nested RDF descriptions. But, in general, one might say that the >>> publisher is either Springer or MIT Press. Or, that the publisher is >>> NOT Springer. In BLD we might decide to restrict the allowed formulas. >>> >>> The above annotations can appear in front of any formula, subformula, >>> or term. Most often they will be used in front of rules or groups, >>> but other places are also allowed. >>> >>> This provides for the identification of individual rules as well as >>> groups, facts, etc. Metadata can also be attached everywhere. >>> >>> For example, the IRI part >>> >>> *i "http://sample.org"^^rif:iri >>> >>> and the META part >>> >>> *m "pd"^^rif:local[dc:publisher->w3:W3C >>> dc:date->"2008-04-04"^^xsd:date] >>> >>> can be used individually or together in a modified RIF-BLD Example 3 >>> (IRI and META parts): >>> >>> *i "http://sample.org"^^rif:iri >>> *m "pd"^^rif:local[dc:publisher->w3:W3C >>> dc:date->"2008-04-04"^^xsd:date] >>> Group ( rule fact ) >>> >>> or >>> >>> <* "http://sample.org"^^rif:iri >>> "pd"^^rif:local[dc:publisher->w3:W3C >>> dc:date->"2008-04-04"^^xsd:date] >>> *> >>> Group ( rule fact ) >>> >>> Annotation works the same way at the level of rules. >>> For example, the following is a rule annotated with a meta part, but >>> without the id part. >>> >>> *m "cn"^^rif:local[dc:creator->nrc:NRC] >>> Forall ?item ( >>> cpt:reject(ppl:Fred ?item) :- cpt:unsolicited(?item) >>> ) >>> >>> or >>> >>> <* "cn"^^rif:local[dc:creator->nrc:NRC] *> >>> Forall ?item ( >>> cpt:reject(ppl:Fred ?item) :- cpt:unsolicited(?item) >>> ) >>> >>> Here is a similar example where metadata annotates an atom: >>> >>> *m "cs"^^rif:local[dc:creator->tools:SIEVE] >>> cpt:unsolicited(spam:flyer12) >>> >>> or >>> >>> <* "cs"^^rif:local[dc:creator->tools:SIEVE] *> >>> cpt:unsolicited(spam:flyer12) >>> >>> This can be extended down to the level of Constants like spam:flyer12. >>> >>> The annotated rule and atomic fact can be inside an annotated Group: >>> >>> *i "http://sample.org"^^rif:iri >>> *m "pd"^^rif:local[dc:publisher->w3:W3C >>> dc:date->"2008-04-04"^^xsd:date] >>> Group ( >>> *m "cn"^^rif:local[dc:creator->nrc:NRC] >>> Forall ?item ( >>> cpt:reject(ppl:Fred ?item) :- cpt:unsolicited(?item) >>> ) >>> *m "cs"^^rif:local[dc:creator->tools:SIEVE] >>> cpt:unsolicited(spam:flyer12) >>> ) >>> >>> Note that now the object names of metadata frames are no longer >>> the identifiers of rules/groups -- unlike in our earlier proposal. >>> The object names of metadata frames can be rif:local, rif:iri, etc., >>> and can now be used to cross-reference other pieces of metadata >>> (which annotate other formulas). This also captures Paul's desiderata >>> of sharing metadata. >>> >>> For example, metadata, below, references the above pd metadata: >>> >>> *i "http://sample.org/rule"^^rif:iri >>> *m >>> "http://sample.org/meta"^^rif:iri["crossref"^^xsd:string->"pd"^^rif:loca >>> l >>> >>> "cost"^^xsd:string->"12"^^currency:USD] >>> Group ( rule1 rule2 rule3 ) >>> >>> The EBNF for RIF-BLD can be generalized thus: >>> >>> IRIMETA ::= ('*i' Const)? ('*m' FORMULA)? >>> or >>> IRIMETA ::= '<*' Const? FORMULA? '*>' >>> >>> Document ::= IRIMETA? 'Document' '(' DIRECTIVE* Group? ')' >>> Group ::= IRIMETA? 'Group' '(' (RULE | Group)* ')' >>> RULE ::= IRIMETA? 'Forall' Var+ '(' CLAUSE ')' | CLAUSE >>> CLAUSE ::= Implies | ATOMIC >>> Implies ::= IRIMETA? ATOMIC ':-' FORMULA >>> . . . >>> UNITERM ::= IRIMETA? Const '(' (TERM* | (Name '->' TERM)*) ')' >>> Equal ::= IRIMETA? TERM '=' TERM >>> . . . >>> >>> In the XML syntax, IRIMETA can likewise be split into >>> an <id>-striped Const and a <meta>-striped FORMULA. >>> The stripes/roles <id> and <meta> can be XSD-specified >>> as the optional initial children of <Document>, <Group>, >>> <Forall>, <Implies>, <Atom>, <Equal>, etc. >>> >>> The semantics for now just discards IRIMETA, as already done for >>> Document and Group. >>> >>> Best, >>> Harold & Michael >>> >> >> >> > > > -- Jos de Bruijn debruijn@inf.unibz.it +390471016224 http://www.debruijn.net/ ---------------------------------------------- An expert is a person who has made all the mistakes that can be made in a very narrow field. - Niels Bohr
Received on Tuesday, 6 May 2008 08:15:27 UTC