- From: Dave Reynolds <der@hplb.hpl.hp.com>
- Date: Mon, 28 Apr 2008 18:33:00 +0100
- To: Michael Kifer <kifer@cs.sunysb.edu>
- CC: Chris Welty <cawelty@gmail.com>, Sandro Hawke <sandro@w3.org>, Jos de Bruijn <debruijn@inf.unibz.it>, public-rif-wg@w3.org
Michael Kifer wrote:
> Dave, there are several possibilities.
> First, values in the frames can be terms with named arguments, which solves
> your problem, I believe.
How? There is no RDF mapping to such terms and the semantics of those
make such a mapping ... unlikely.
> Second, we actually talked in a previous telecon that more complex formulas
> could also be allowed as metadata.
I missed that in the minutes (I know I've missed a few telecons of
late). Is there a proposal for the details of that?
Dave
>
>
> --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:33:59 UTC