ISSUE-94 Objects. Six options have been discussed 1.Annotate, in the RIF document, the attribute as...

Post on 27-Mar-2015

214 views 1 download

Transcript of ISSUE-94 Objects. Six options have been discussed 1.Annotate, in the RIF document, the attribute as...

ISSUE-94

Objects

Six options have been discussed

1. Annotate, in the RIF document, the attribute as single-valued, e.g. using RIF meta-data construct;

2. Modify the Frame construct, so that the multiplicity of an attribute is indicated explicitly, e.g. adding a "cardinality" attribute to the <slot> element;

3. Specify a new construct, specific to the case of single valued attributes (that is, with multiplicity = 1), keeping the Frame construct unchanged (that is the multiplicity of attributes is 0..*). E.g. csma's proposal to introduce a new basic term to represent the value of a single valued attribute;

4. Leave attribute multiplicity implicit in condition formulas and rely on RIF document analysis to determine attributes multiplicity: the only attributes that need be modelled as single valued are those of Frames that appear in assertions with replacement semantics, in the conclusion of at least one rule

5. Rely on out-of-band information (e.g. interchange of the intended data model, in parallel to the RIF document) to determine the multiplicity of Frames' attributes;

6. Add syntax to declare the multiplicity (and type?) of frame slots in a RIF document

1. Annotate, in the RIF document, the attribute as single-valued, e.g. using RIF

meta-data construct;<Frame>

<object>…</object><slot rif:ordered=‘yes’>

<Const type=‘rif:iri’><id><Const type=‘rif:local’>example1</Const></id><meta><Frame>

<object><Const type=‘rif:local’>example1</Const>

</object> <slot rif:ordered=‘yes>

<Const type=‘rif:iri’>rif:multiplicity</Const><Const type=‘rif:multiplicity’>one</Const>

</slot> </Frame>

</meta>my:slot

</Const>slot value

</slot></Frame>

2. Modify the Frame construct, so that the multiplicity of an attribute is indicated explicitly, e.g. adding a "cardinality"

attribute to the <slot> element

<Frame><object>…</object><slot rif:ordered=‘yes’ rif:multiplicity=‘one’>

<Const type=‘rif:iri’>my:slot

</Const>slot value

</slot></Frame>

3. Specify a new construct, specific to the case of single valued attributes

TERM           ::= IRIMETA? (Const | Var | 'External' '(' Expr ')' | Getter) Getter         ::= TERM '.' (Const | Expr)

<Getter><object> … </object> <member>

<Const type=‘rif:iri’>my:slot</Const></member>

</Getter>

4. Leave attribute multiplicity implicit in condition formulas and rely on RIF document analysis to

determine attributes multiplicity<Implies>

<if><Frame>

<object><Var>?x</Var></object><slot rif:ordered=‘yes’>

<Const type=‘rif:iri’>my:slot</Const>slot value

</slot></Frame>

</if><then>

<Do><Modify> <target>

<Frame> <object><Var>?x</Var></object> <slot rif:ordered=‘yes’>

<Const type=‘rif:iri’>my:slot</Const>new slot value

</slot></Frame>

</target></Modify>

</Do></then>

</Implies>

5. Rely on out-of-band information

<Import><schema-location rif:prefix=‘exsd’>…</schema-location>

</Import>…<Forall>

<declare><Var>?x</Var></declare><pattern>

<And><Member><object><Var>?x</Var></object><class><Const type=‘rif:iri’>exsd:foo</Const></class>

</Member> <Frame>

<object><Var>?x</Var></object><slot rif:ordered=‘yes’>

<Const type=‘rif:iri’>exsd:bar</Const>slot value

</slot> </Frame></And>

</pattern>…

</Forall>

6. Add syntax to declare the multiplicity (and type?) of frame slots in a RIF document

Class

eg:MyClass [ eg:att_1->singleton (xs:string),

eg:att_2->set (xs:date) ]