Re: Identification and Metadata at Any Level

<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