[Top] [All Lists]

Re: [ontolog-forum] Accommodating legacy software

To: "'[ontolog-forum] '" <ontolog-forum@xxxxxxxxxxxxxxxx>
From: "doug foxvog" <doug@xxxxxxxxxx>
Date: Fri, 7 Sep 2012 11:38:16 -0400
Message-id: <5445b9a651d2925d21d0c0c042ae7973.squirrel@xxxxxxxxxxxxxxxxx>
On Thu, September 6, 2012 10:25, Andries van Renssen wrote:
> Doug,
> Thanks for your comments. I concur with most of it, although binary
> relations do not imply triples,    (01)

The triple that i was referring to for a statement using a binary relation
was the three items: <relation argument1 argument2>.  Adding meta-
properties to this encodes more data and requires more items to
be represented.    (02)

I did not mean to suggest that such triples needed to be encoded as
triples.    (03)

A flat database encodes binary relations a cells, with the columns
signifying relations, row keys signifying the first argument, and the
cell value signifying the second argument.  This can be a very efficient
way of encoding a mass of data if there are not a massive number of
relations or if the matrix is not sparse.    (04)

A flat database encodes higher-arity relations the same way,
with a set of columns representing the relation
(with the column header often indicating the type of cell filler,
not the relation it holds to the row key's filler).  Note that in such
cases there may be no binary relation between the the row key filler
and the cell value (which may, for example be "grams").    (05)

An advantage of such an encoding is that each statement encoded in
a database (whether a binary or higher-arity relation instance)
is intrinsically reified allowing meta-relations on the statement
to be expressed in additional column -- the column signifying the
relation as before, but the set of cells signifying the statement
representing the first argument.    (06)

I would hold that in a database the triple is certainly implied for each
encoded binary relation instance, although it is not expressed as a
triple.    (07)

> whereas I see big advantages of expressing
> facts as collections of binary relations.    (08)

The vast majority of data that people want to store can be
easily expressed using binary relations.    (09)

> The expression of higher order relations as collections of binary
> relations, does not imply that those binary relations
> have to be expressed as triples (such as in RDF).    (010)

Agreed.    (011)

> Each binary relation    (012)

I presume you mean binary relation statement.    (013)

> requires a number of 'auxiliary facts',
> such as the classification of the relation (the reification), but
> also the intention, validity context, its language, terms, dates, time,
> author, etc.    (014)

I like hearing a claim that such metadata is required, since it is so
often missing.    (015)

> In my opinion it is inefficient to express that all as different triples.    (016)

I agree.  This is a dense array of data that can efficiently be encoded
in a flat database.  It can be even more efficient if multiple statements
with the same metadata are encoded on the same database line.
However, that brings up the issue of how to provide metadata for
updated values in the database as (say) the author and date/time of
assertion can be different.    (017)

> Therefore a Gellish Data Table defines a standard n-tuple that enables to
> specify a large number of such 'auxiliary facts' in a single tuple in
> addition to the main binary fact. (although there are people who
> implemented Gellish in a triple store)    (018)

Good.    (019)

> A big advantage of this standard n-tuple is that all Gellish databases can
> have basically a uniform data structure, so that any Gellish enabled
> application can read (and interpret) any Gellish compliant data store!
> Furthermore, various data stores can be merged or combined
> without the need to restructure the data
> because of the various N-tuples with different argument definitions.
> Indeed, if we have two expressions of which one is the inverse of another,
> then one of them might be redundant, although one may be a statement of
> one person and the other a confirmation by another person.    (020)

This also holds for cases in which identical statements are made by two
authors -- or are concluded from different rules.  It is useful to provide
for multiple justifications for the same statement.  Or, in more general
terms, most meta-data relations need not be functional in their second
argument.    (021)

> It is an advantage when a formal language allows both
> and leaves the choice to its users.    (022)

It is an advantage when a formal language has a canonical way to
encode inverse relations, but allows input and output using the
predicate which a user chooses.    (023)

> On completeness of an expression
> The definition of the kinds of relations determine which roles are
> required and which ones are optional,
> including cardinality constraints.    (024)

Agreed.    (025)

For example, a betweenOnPath relation requires one middleObject
role, two boundingObject roles, and one referencedPath role.    (026)

> With binary
> relations it is even easier to specify those constraints and flexibilities
> for each binary relation.    (027)

Why is it easier?    (028)

Even if it is easier to specify for binary relations, that does not mean
that it is easier to specify for higher-arity ones.    (029)

Maybe i don't understand what you meant here.    (030)

> Thus a completeness verification is possible anyway. We don't need the
> higher arity expression for that. (Note that the higher arity relation
> itself is also explicitly present as one of the related things in a binary
> representation)    (031)

I'm a little unclear on what you mean.  I think you mean:
* First, reify a higher arity relation statement
* Relate each of the arguments of the higher arity relation statement
   to the reified statement by named required roles
* Relate the higher arity relation (not the statement using it) to the
   reified statement by another binary relation    (032)

Or in CycL for the ternary predicates of the "between" form:
      (isa ?SENTENCE CycLSentence)
      (argN ?SENTENCE 0 ?PRED)
      (argN ?SENTENCE 1 ?ARG1)
      (argN ?SENTENCE 2 ?ARG2)
      (argN ?SENTENCE 3 ?ARG3)
      (requiredRoleForArgs ?PRED ?ROLE1 1)    ; new predicate not in Cyc
      (requiredRoleForArgs ?PRED ?ROLE2 2 3))
      (?ROLE1 ?SENTENCE ?ARG1)
      (?ROLE2 ?SENTENCE ?ARG2)
      (?ROLE2 ?SENTENCE ?ARG3)))    (033)

> On reification
> In both ways of expression of higher order relations there is (indeed) an
> implicit or explicit individual relation that is classified by a kind of
> relation (reified relation).    (034)

Agreed.    (035)

> In Gellish each fact (the topic) is explicitly represented by a UID. An
> expression of a fact (or topic) plus an intention (or illocutionary force)
> makes it an expression of a statement, or a question, or a denial, or a
> confirmation, etc.    (036)

OK.  Can this be recursed?  Can you state that Joe questioned whether
Mary denied that Sasha confirmed that <statement>?    (037)

> Binary representation enables that these auxiliary facts can be expressed
> on a binary level, for each involvement relation.    (038)

Isn't it the reification of the statement that allows this?  The meta-
statements you list are binary, but does not mean that the statement
they refer to must be.    (039)

> That would not be possible
> when the fact is expressed by one higher order relation.    (040)

As long as the higher order relation statement were reified in some
way it could have a URI and this would be possible.    (041)

Or am i missing something?    (042)

> Furthermore, binary involvement relations may be added to
> (or terminated from) the collection in the course of time,
> without the need to redundantly
> respecify the other involved things.    (043)

Sure.    (044)

> Below I inserted some additional comments between the lines.
> On 5 september 2012 23:01 doug foxvog wrote:
>> On Wed, September 5, 2012 08:47, Andries van Renssen wrote:    (045)

>> > In any relation (of any arity) the related things play roles of
>> > different
>> > kinds that are specific for the kind of relation.
>> > The semantics of the kind of relation depends on the roles that the
>> > related things play in the relation.
>> > An explicit specification of roles is required to define the
>> >  semantics.
>> > This is independent of the sequence of arguments in an expression.
>> > If you don't make those roles explicit, then you have find an
>> > alternative,
>> > such as the sequence of the arguments (as in <is between on path>).
>> > Their sequence becomes a pseudo specification of the kinds of roles in
>> > the
>> > definition of the meaning of the relation.    (046)

>> Well said.  However, note that in a relation such as isBetweenOnPath,
>> that multiple arguments are equivalent for a bidirectional path.    (047)

>> > Furthermore, the inverse expression has a different sequence of
>> > arguments, and is also a valid expression of the same fact.    (048)

>> Inverse relations are redundant information.  Some languages like them
>> because using them makes things easier for their reasoners.  Other
>> languages, e.g. Cyc, discourage them as being redundant.  If inverse
>> relations are defined in Cyc, Cyc makes one relation primary and
>> converts
>> all statements using one into statements using the other.  Queries using
>> the non-canonical form are converted to the canonical form, answers are
>> computed, and converted back to the form of the query.    (049)

>> > Therefore, semantically it is purer to explicitly specify the kinds of
>> > roles.    (050)

>> This requires reifying the statement of relation and ensuring that all
>> necessary statements for encoding the relation are asserted.  Using a
>> higher-arity relation obviates the necessity for reification and
>> guarantees that none of the roles are accidentally omitted.    (051)

> [AvR] A higher arity expression implies also a reification.    (052)

It permits, but does not require reification depending upon the
implementation technique.    (053)

> The verification of completeness should be a standard procedure
> in the semantic verification
> of the expressions when they are created.    (054)

Agreed.    (055)

>> > Therefore, a basic semantic structure for the expressions of facts
>> could
>> > be:
>> > * kind of relation - kind of role - related thing    (056)

>> Actually, you need
>> * reified relation - kind of role - related thing
> [AvR] Indeed, the expression requires an explicit classification of the
> relation.    (057)

>> Without the reification you can not determine that the individual
>> arguments have anything to do with each other.
> [AvR] Agreed.    (058)

>> > For an n-ary relation you need n such expressions.    (059)

>> and an n+1st expression that the reified relation is an instance of
>> kind of relation.    (060)

>> Reification allows one to make additional statements, such the time
>> period for which the statement is valid.
> [AvR] Exactly, that is why it is valuable to be able to do so for every
> binary component.    (061)

>> > The form
>> > * related thing - kind of relation - related thing
>> > is just a short cut for a pair of such expressions,    (062)

>> Actually, three.  One has to identify the reified relation as being
>> an instance of kind of relation.
> [AvR] If we are precise there are also the classifications of the roles.    (063)

>> > in which the kinds of
>> > roles are assumed to be known from the definition of the kinds of
>> > relation.
>> > This short cut is only suitable for binary relations and needs a
>> > mechanism
>> > to determine which role is played by the left hand thing and right
>> > hand thing respectively.    (064)

>> Agreed, provided that reification is included.    (065)

>> > A semantic model of the definition of a kind of relation requires even
>> > more detailed relations.    (066)

>> More relations that are detailed; yes.  Ones that are "more detailed";
>> i don't see that.
> [AvR] O.K.    (067)

>> > Such a model requires the specification of which kinds of roles are
>> > required by which kind of relation and
>> > which kinds of things may play such a role.
>> > This implies expressions such as:
>> > * kind of relation - required played - kind of role
>> > * kind of role - required player - kind of thing    (068)

>> Of course, this can be done with n-ary relations, as Cyc has done for
>> over 15 years.    (069)

>> > Note that the individual relations and roles are not yet explicit in
>> > these expressions. The basic semantic structures that I developed
>> > includes also
>> > the individual roles and relations and allows for the short cut
>> > expressions
>> > (see http://www.gellish.net/topics/semantic-modelling.html).    (070)

>> > Each of these triples requires the expression of auxiliary facts, such
>> > as
>> > their intention (illocutionary force), author, dates, context, etc.
>> > In my view it is therefore not a question whether facts can be
>> > expressed
>> > in triples, but whether triples are a suitable structure
>> > when we in practice always model in collections of triples.    (071)

>> Another question is whether triples are an efficient structure.    (072)

>> > The Gellish Data Table is a universal structure for all these kinds of
>> > expressions, including the expression of auxiliary facts. That table
>> > is an
>> > alternative to RDF (with some creativity it can be converted into
>> > collections of triples if you like). It is described in the document
>> > "Definition of Universal Semantic Databases and Data Exchange
>> >  Messages"
>> > on http://www.gellish.net/downloads/category/2-english.html.    (073)

>> > Andries
>> >
>> >
>> > -----Oorspronkelijk bericht-----
>> > Van: ontolog-forum-bounces@xxxxxxxxxxxxxxxx
>> > [mailto:ontolog-forum-bounces@xxxxxxxxxxxxxxxx] Namens doug foxvog
>> > Verzonden: woensdag 5 september 2012 6:02    (074)

>> > On Tue, September 4, 2012 17:02, Kingsley Idehen wrote:
>> >> On 9/4/12 3:41 PM, doug foxvog wrote:
>> >>> On Tue, September 4, 2012 12:34, Kingsley Idehen wrote:
>> > ...
>> >
>> >>>> I believe Data denotes Subject Observation.
>> >>>> I believe all observations are comprised of:
>> >>>> 1. a subject
>> >>>> 2. subject attributes
>> >>>> 3. subject attribute values.
>> >
>> > ...
>> >>> One common type of observation is that A is between B and C.
>> >>> How would you express this with a single triple?    8)#
>> >
>> >> I would state that A is between B. A is Between C. Then I would
>> define
>> >> the semantics of  the  'Between' predicate  .
>> >
>> > !??
>> > Let's explore this:
>> >   (and
>> >      (between   10 5 11)
>> >      (between   10 4 11)
>> >      (between   10 6 11)
>> >      (between   10 7 11))
>> > Using the KI translator this becomes:
>> >   AND
>> >     10 is between 5
>> >     10 is between 11
>> >     10 is between 4
>> >     10 is between 11
>> >     10 is between 6
>> >     10 is between 11
>> >     10 is between 7
>> >     10 is between 11.
>> >
>> > What semantics does the between predicate have?
>> >
>> > How about the quaternary predicate, isBetweenOnPath?
>> > Can you express the following with triples:
>> >
>> > (and
>> >   (isBetweenOnPath WashingtonDC Maryland Virginia I95)
>> >   (not (isBetweenOnPath WashingtonDC Maryland Virginia I495)))
>> >
>> >
>> > -- doug foxvog
>> > ...
>> >>
>> >> Kingsley
>> >>>
>> >>> -- doug foxvog    (075)

Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/  
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/  
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/ 
To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J    (076)

<Prev in Thread] Current Thread [Next in Thread>