- From: Michael Kifer <kifer@cs.sunysb.edu>
- Date: Mon, 28 Apr 2008 13:27:59 -0400
- To: Dave Reynolds <der@hplb.hpl.hp.com>
- Cc: Chris Welty <cawelty@gmail.com>, Sandro Hawke <sandro@w3.org>, Jos de Bruijn <debruijn@inf.unibz.it>, public-rif-wg@w3.org
Dave, there are several possibilities. First, values in the frames can be terms with named arguments, which solves your problem, I believe. Second, we actually talked in a previous telecon that more complex formulas could also be allowed as metadata. --michael > > As mentioned in last week's call ... orthogonal to the issue of where > the metadata can go is the question of what metadata can be expressed. > > My starting point is that the metadata should be mappable to RDF since > that is the metadata standard for the semantic web. > > In Jos' original proposal metadata values were expressed in an > RDF-compatible way using an N3/Turtle like notation. This had the > disadvantage that a separate RDF mapping needed to be specified but the > advantage that structured metadata values are possible, indeed easy to > express. > > In particular, I would like to be able do things like use the FOAF > vocabulary to describe a rule author. This requires the ability to have > structured values ideally including blank nodes. Jos' proposal handled > this fine. > > In the current BLD proposal metadata is restricted to Frames, one per > Rule/Group. This has the converse advantages/disadvantages - the RDF > mapping is already defined but there is no ability to express structured > values other than via Uniterms. > > To address this issue would it be appropriate to either (a) define a > notion of nested Frames or (b) allow multiple Frames within the metadata > block which can then use explicit Consts to link from one frame to a > related frame? > > Dave > -- > Hewlett-Packard Limited > Registered Office: Cain Road, Bracknell, Berks RG12 1HN > Registered No: 690597 England > > Chris Welty wrote: > > > > > > Here's another hopefully intermediate/compromise proposal for the meta > > data. > > > > The current BLD draft shows: > > > > Document ::= 'Document' '(' IRIMETA? DIRECTIVE* Group? ')' > > Group ::= 'Group' IRIMETA? '(' (RULE | Group)* ')' > > > > I suggest something like: > > > > Document ::= 'Document' '(' IRIMETA? DIRECTIVE* (Group | Rule)* ')' > > Group ::= 'Group' IRIMETA? '(' (RULE | Group)* ')' > > Rule ::= 'Rule' IRIMETA? '(' RULE ')' > > > > This basically tries to address both Jos (et al) and Michael (et al) > > conflicting concerns. If you don't want to use Group, you don't have > > to, if you don't want to use Rule, you don't have to. I think this > > proposed syntax allows us to keep these names, avoids having to nest the > > Rule inside the group, and also for future extensibility to e.g. FOL you > > can just drop the Rule part and extend through Group. > > > > It makes the grammar a little more verbose, but the actual syntax of > > rules and rulesets is no more verbose that either current proposal. > > > > Also, *as a different point*, if we keep this I would suggest modifiying > > the Group production so that you don't have to type 'Group' for every > > repeated rule within a group, something like: > > > > Group ::= 'Group' IRIMETA? '(' (RULE* | Group)* ')' > > > > > > -Chris > > > > > > Sandro Hawke wrote: > >>> > Thinking over today's difficult discussion about metadata, it > >>> seems to > >>>> me that the right solution is this: > >>>> > >>>> 1. Allow metadata, syntactically, on every object, by way of a > >>>> <meta> child element which is legal on every capitalized (class) > >>>> element. No need for wrapper elements. In a normal rule, the > >>>> "Forall" is where you'd hang the metadata. I have some ideas > >>>> for > >>>> the PS, but no favorites. > >>>> > >>>> 2. Add a "group" element, for making these conceptual groupings > >>>> that > >>>> Michael speaks of (and I'm familiar with from my own rule > >>>> programming), where the metadata applies to a set of a few > >>>> rules). > >>>> > >>>> What about this approach would be so bad? > >>> For me the question was not how to attach metadata, but rather > >>> whether and how to identify rules. > >> > >> It sounds like the question is about how people conceptualize the > >> structure and elements of their rulesets. When programming, if you put > >> a comment block above some code, which code does it apply to? It's > >> mostly the blank lines and comment characters (eg big horizontal lines) > >> that answer this, in my code (although it depends on the language, a > >> bit). > >> > >> So, it seems like we should allow: > >> > >> <Document> > >> <Group> > >> <Group> > >> ... > >> <Rule> > >> <Forall, etc> > >> > >> where Group and Rule are optional. Metadata, including URIs, go on the > >> Document, Group, and Rule elements. (I'm skipping the rule stripes, > >> for brevity here.) > >> > >> This has no formal semantics in BLD, of course. It's for humans and > >> rule management, like other non-semantic metadata. Writing translators, > >> you can ignore these tags, unless your rule language has some > >> similar/equivalent structure. Maybe you even translate them to/from > >> blank lines. [ half joking - the point is that it wouldn't be wrong. ] > >> > >> If people start to want semantic metadata (rule priorities?), this > >> probably adapts to that just fine, too -- it's obviously general -- but > >> we can't worry about that too much, with only a month to go on BLD. > >> > >> Similarly, some seem to see the asymmetry between Group and Rule as > >> reflecting real concepts, while some see Rules as silly, some see Groups > >> as silly, ... etc. I don't think it's a huge burden to have both. Some > >> people want one, some want the other, some want both -- let's just have > >> both. Can we live with that? > >> > >> -- Sandro > >> > >>> For a long time our top-level element in RIF was the ruleset and the > >>> second-level element was the rule. > >>> > >>> Recently the notion of "group" was introduced, which lies between the > >>> ruleset and the rule: a ruleset contains groups and groups contain > >>> rules. > >>> So, we have: > >>> > >>> Ruleset > >>> | > >>> Group > >>> | > >>> Rule > >>> > >>> I myself do not really see the need for this group element in BLD, > >>> but I do not strongly object to it. > >>> > >>> The current draft of BLD allows identifying rule sets and groups, but > >>> not rules. I was arguing that it should be possible to identify rules. > >> > >> > > > > >
Received on Monday, 28 April 2008 17:29:13 UTC