- From: Jos de Bruijn <debruijn@inf.unibz.it>
- Date: Tue, 29 Jan 2008 17:13:02 +0100
- To: Dave Reynolds <der@hplb.hpl.hp.com>
- CC: RIF WG <public-rif-wg@w3.org>
- Message-ID: <479F508E.6040108@inf.unibz.it>
>> == 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 Tuesday, 29 January 2008 16:13:17 UTC