ISSUE-94 Objects. Six options have been discussed 1.Annotate, in the RIF document, the attribute as...
-
Upload
maria-morris -
Category
Documents
-
view
214 -
download
1
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) ]