- From: Jos de Bruijn <debruijn@inf.unibz.it>
- Date: Fri, 08 Feb 2008 16:52:16 +0100
- To: RIF WG <public-rif-wg@w3.org>
- Message-ID: <47AC7AB0.1030205@inf.unibz.it>
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 UTC