W3C home > Mailing lists > Public > public-rif-wg@w3.org > February 2008

Re: Annotations and metadata in RIF

From: Jos de Bruijn <debruijn@inf.unibz.it>
Date: Fri, 01 Feb 2008 10:54:04 +0100
Message-ID: <47A2EC3C.7070803@inf.unibz.it>
To: Dave Reynolds <der@hplb.hpl.hp.com>
CC: RIF WG <public-rif-wg@w3.org>
I incorporated all the comments and put the proposal online at:

http://www.w3.org/2005/rules/wiki/Annotations

Best, Jos

Jos de Bruijn wrote:
>>> == prelude ==
>>>
>>> We distinguish between two kinds of annotations:
>>> 1 annotations which can be ignored for rule set processing (e.g., 
>>> author, date, title, natural language description); we call these 
>>> annotations *metadata*
>>> 2 annotations which cannot be ignored for rule set processing (e.g., 
>>> imports, data set references); we call these annotations *attributes* 
>>> [this name is not very good; suggestions are welcome]
>>
>> I agree we have this distinction at present, and your proposal cleanly 
>> separates them.
>>
>> [We could choose to only support metadata and move everything else of 
>> semantic significance into the language - specifically imports and 
>> required datasets. I'm not sure this is the right approach but we 
>> should at least consider it.]
>>
>> A possible alternative to the name "attributes" might be "processing 
>> instructions", not sure I like it but it's the only plausible option 
>> that has sprung to mind so far.
> 
> I'm not really comfortable with the term "processing instruction".  For 
> example, a data set reference is not necessarily a processing instruction.
> 
>>
>>> Annotations can be written about any rule set or rule.
>>>
>>> Since metadata can be ignored for rule set processing, we do not 
>>> restrict the metadata properties which can be used in any dialect.
>>
>> For interoperability purposes I believe we should recommend a core 
>> vocabulary for metadata terms. In particular, I think that it will be 
>> quite common to want to give rules and rulesets a name, a longer 
>> descriptive comment (possibly multi-lingual), author attribution, 
>> creation dates and references to external documentation. If people in 
>> general use the same vocabulary for these then editors, viewers and 
>> other tools will be more functional and practical interoperation often 
>> benefits from being able to find things like comments.
>>
>> Specifically for these meatadata terms I suggest:
>>    rdfs:label
>>    rdfs:comment
>>    dc:creator
>>    dc:date
>>    rdfs:seeAlso
> 
> I agreed that we can recommend a core vocabulary.  However, I'm not so 
> sure whether the RDFS metadata vocabulary is the best way to go. 
> Personally, I prefer using Dublin core (e.g. title, description).  To be 
> honest, I never understood why RDFS does not simply use of Dublin core.
> 
>>
>>> Attribute properties cannot be ignored; in fact, all attribute 
>>> properties must be understood by anyone who processes rule sets of a 
>>> particular dialect.  Therefore, every dialect has a fixed set of 
>>> attributes properties which may be used.
>>> Suggested attribute properties for BLD: rif:imports, 
>>> rif:requiresDataSet, rif:dataModel (see [1] for a description of the 
>>> rif:requiresDataSet and rif:dataModel properties).
>>>
>>> == Extension of the presentation syntax ==
>>>
>>> The syntax for rule sets and rules needs to be extended to allow for 
>>> rule set and rule identification.  Furthermore, it is convenient to 
>>> group annotations together with rule sets and rules. Finally, it is 
>>> currently foreseen that rule sets can have both metadata and 
>>> attributes, and rules can only have metadata.  We propose the 
>>> following modification of the grammar:
>>>
>>>   Ruleset  ::= ' Ruleset( ' iri? Attribute* Metadata* RULE* ' ) '
>>>   Attribute ::= ' Attribute ( ' iri Const ' ) '
>>>   Metadata ::= ' Metadata ( ' iri Const ' ) '
>>>   RULE     ::= ' Rule( ' iri? Metadata* RuleContent ' ) '
>>>   RuleContent ::= ' Forall ' Var+ ' ( ' RULE ' ) ' | Implies | ATOMIC
>>>   Implies  ::= ATOMIC ' :- ' CONDITION
>>>
>>> Metadata properties can be any IRI; each RIF dialect prescribes a 
>>> fixed list of attributes properties.
>>
>> A nice simple approach but ...
>>
>> (1) It would be useful to enable metadata property values to be 
>> structured. Specifically the proposal in [1] uses RDF resources and 
>> bNodes for this.
> 
> I agree.  I think we can simply use turtle syntax.  I will put my 
> proposal on a wiki page and update it.
> 
>>
>> (2) I would like to have a documented mapping from our metadata syntax 
>> to RDF. This would *not* require an implementer to process the 
>> metadata as RDF nor be able to understand RDF syntax but would help 
>> (a) forestall questions at Last Call on the relationship, (b) allow us 
>> to use RDFS as in [1] to document the intended domain/ranges of the 
>> metadata properties. This mapping could be informative rather than 
>> normative.
> 
> Agreed.  I will add this to my proposal.
> 
> Best, Jos
> 
>>
>>> Neither attributes nor metadata are reflected in the model theory.
>>>
>>> If it is deemed necessary that arbitrary metadata statements (not 
>>> only about rule sets and rules) can be added, the following change 
>>> could be made to the Ruleset production:
>>>
>>>   Ruleset  ::= ' Ruleset( ' iri? Attribute* Metadata* (RULE | 
>>> MetadataStatement)* ' ) '
>>>   MetadataStatement  ::= ' MetadataStatement ( ' Const iri Const ' ) '
>>>
>>> == Extension of the XML syntax ==
>>>
>>> Ruleset(  rs1
>>>   Attribute("a1"^^rif:iri "v1"^^rif:iri)
>>>   Attribute("a2"^^rif:iri "v2"^^xsd:string)
>>>   Metadata("a3"^^rif:iri  "v3"^^xsd:string)
>>>   Metadata("a4"^^rif:iri  "v4"^^rif:iri)
>>>   Rule( r1
>>>     Metadata("a5"^^rif:iri  "v5"^^xsd:string)
>>>   ....
>>>   )
>>> )
>>>
>>> translates to
>>>
>>> <Ruleset rif:identifier="rs1">
>>>   <Attribute rif:identifier="a1" type="rif:iri">v1</Attribute>
>>>   <Attribute rif:identifier="a2" type="xsd:string">v2</Attribute>
>>>   <Metadata rif:identifier="a3" type="xsd:string">v3</Metadata>
>>>   <Metadata rif:identifier="a4" type="rif:iri">v4</Metadata>
>>>   <Rule rif:identifier="r1">
>>>     <Metadata rif:identifier="a5" type="xsd:string">v5</Metadata>
>>>     ....
>>>   </Rule>
>>> </Ruleset>
>>>
>>>
>>> best, Jos
>>>
>>> [1] http://www.w3.org/2005/rules/wg/wiki/Arch/Data_Sets
>>
>>
>> Dave
> 

-- 
Jos de Bruijn            debruijn@inf.unibz.it
+390471016224         http://www.debruijn.net/
----------------------------------------------
Doubt is not a pleasant condition, but
certainty is absurd.
   - Voltaire


Received on Friday, 1 February 2008 09:54:20 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 2 June 2009 18:33:45 GMT