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, 08 Feb 2008 16:52:16 +0100
Message-ID: <47AC7AB0.1030205@inf.unibz.it>
To: RIF WG <public-rif-wg@w3.org>
I included an example of the use of directives and metadata that might 
clarify the envisioned use of the proposed language constructs:
http://www.w3.org/2005/rules/wiki/Annotations#Extension_of_the_presentation_syntax

Best, Jos

Jos de Bruijn wrote:
> 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, 8 February 2008 15:52:51 GMT

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