- 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