- 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