ontolog-forum
[Top] [All Lists]

Re: [ontolog-forum] Accommodating legacy software

To: ontolog-forum@xxxxxxxxxxxxxxxx
From: Kingsley Idehen <kidehen@xxxxxxxxxxxxxx>
Date: Wed, 05 Sep 2012 17:36:48 -0400
Message-id: <5047C5F0.4080507@xxxxxxxxxxxxxx>
On 9/5/12 4:21 PM, doug foxvog wrote:
> Preview:
>
>>> Can you express the following with triples:
>>> (and
>>>     (isBetweenOnPath WashingtonDC Maryland Virginia I95)
>>>     (not (isBetweenOnPath WashingtonDC Maryland Virginia I495)))
>>> ?
>> I think we are now talking past ourselves.
> Does that mean no?    (01)

As per earlier comments, you can express anything in triples. The issue 
is that its ultimately going to be verbose and awkward.    (02)

I made my comment above because we are veering away from the core issue 
here re. legacy software accommodation and RDF etc..    (03)


> ========
> On Wed, September 5, 2012 07:22, Kingsley Idehen wrote:
>> On 9/5/12 12:02 AM, doug foxvog wrote:
>>> 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?
>> And that isn't what I was conveying to you.
> I'm sorry.  I now (think i) understand that you understood my English
> description of a ternary relation as the conjunction of two binary
> relations.  I agree that an alternate parse of
>     "A is between B and C"
> could be:
>     "A is between B AND A is between C".
> If i used "above" instead of "between", this would be appropriate.
>
> However, the semantics of "between" is that it designates some sort of
> figurative space, the boundaries of which are its two arguments.
>
> The sentence then means that a figurative space exists; that space is
> bounded by B and C and does not overlap them, and that A is figuratively
> located in that figurative space.  Depending upon the common type
> of thing that A, B, and C are, the type of the figurative space is
> constrained.
>
> With this model you CAN model "A is between B and C" using triples
> relatively easily, as long as you also use a function:
>    (locationOf A (BetweenFn B C))
>
>> Basically, at what point did
>> you indicate we where dealing with typed literals?
> I did not.  I was using English, not a logical language.    (04)

Yes, but this is typically the problem. Context is mercurial etc..    (05)

>
> This is immaterial to the point we were discussing.
>
>> You said A between B and B between C.
> I did not say "A between B and B between C".  I said that a common type
> of observation is "A is between B and C".  This is naturally a ternary
> relationship.  I was providing it as a ternary relationship and asking how
> you would model it with binary relationships.
>
>>   Why on earth should I assume A, B, and C are typed literals?
> You shouldn't.  But what does that have to do with modeling using
> triples?
>
> I simplified things for you by only using a ternary relationship.
> Betweenness implies some sort of path.  Using integers
> gave a default path.  My next example uses spatial objects (which
> are instances of classes) instead of literals.
>
>> Just because you used the literal 'Between' in some kind of
>> fuzzy context?
>> RDF is pretty clear about the semantics for typed literals.
> So i expected you to know what i meant with one integer
> being between two other integers.    (06)

Yes, of course, and these things are actually dealt with in our 
products, but they are not what I see as the crux of the matter here.    (07)

>
>>> 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)))
>> I think we are now talking past ourselves.
> Huh?  This is what i was talking about from the beginning.
>
> Does that mean no?    (08)

We are arguing (I think an hope) about the utility of 3-tuples vs 
n-tuples as the basic foundation for expressing facts. I am vouching for 
the simplicity of 3-tuples (maybe 4-tuples if the model theory is 
standardized) as the base. That's my focus. The other stuff isn't 
interesting to me since we already deal with these matters in our 
products. I am more interested in something that isn't bound to any 
particular product (mine included) or platform (mine included), it just 
enables folks express and share facts, at Web-scale.    (09)

>
>> If you have some alternative to RDF that works, just point me to it. I
>> think that's the best use of our respective time at this juncture.
> We have been discussing problems with existing implementations (e.g.,
> RDF) and the utility of less restrictive SW encoding languages.  I have
> not been pushing an already implemented web scale solution.    (010)

But I am trying to get you to present your alternative to RDF since you 
believe its flawed.    (011)

>
> Do i know current KIF, Cyc, or Prolog reasoners that operate efficiently
> at web scale?  No.    (012)

But I can demonstrate massively scaled RDF to you if need be, with 
reasoning etc.. to boot. But its kinda beside the key point right now.    (013)

>   Do they require all terms to be represented by URIs?
> No.
Neither does RDF.    (014)

Linked Data (which isn't RDF) does require de-referencable URIs and 
specific indirection behavior. But again, these are separate threads of 
discussion.    (015)

>   Could implementations that map between expressions in such
> languages and terms using URIs be created?  Certainly.
>
> Can Cyc express the above type of statements and reason about them
> with thousands of assertions?  Yes.  The current OpenCyc could not
> handle billions of assertions, though.    (016)

We handle 55 Billion+, but again, I don't think this thread is about me 
showcasing all of that.    (017)

>
> Can Prolog express the above type of statements and reason about them
> with thousands of assertions?  Yes.  I don't know what the limits are on
> current Prolog reasoners.    (018)

They don't scale. That was part of the problem from the past. To make 
them scale you need massive hardware setups. When I talk about 55 
Billion triples, I am talking about commodity hardware and an 8-node 
cluster. Pooled RAM set from the cluster is in the range of 384 GB.    (019)

>    I note that the "SICStus Prolog User’s Manual"
> (https://www.sncnw.se/sicstus/docs/latest4/pdf/sicstus.pdf)
> uses such constructs as examples:
>      "connects(san_francisco, oakland, bart_train)."
> that can be reasoned with.  My guess is that existing Prolog reasoners are
> more efficient than existing RDF reasoners.  I may, of course, be wrong.    (020)

Show me one that can work on a 1 Billion triples dataset let alone 55 
Billion :-)    (021)

Kingsley
>
> -- doug
>
>> Kingsley
>>> -- doug foxvog
>>> ...
>>>> Kingsley
>>>>> -- doug foxvog
>
>> Regards,
>>
>> Kingsley Idehen
>> Founder & CEO
>> OpenLink Software
>> Company Web: http://www.openlinksw.com
>> Personal Weblog: http://www.openlinksw.com/blog/~kidehen
>> Twitter/Identi.ca handle: @kidehen
>> Google+ Profile: https://plus.google.com/112399767740508618350/about
>> LinkedIn Profile: http://www.linkedin.com/in/kidehen
>
>
>   
> _________________________________________________________________
> 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
>   
>
>    (022)


--     (023)

Regards,    (024)

Kingsley Idehen 
Founder & CEO
OpenLink Software
Company Web: http://www.openlinksw.com
Personal Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca handle: @kidehen
Google+ Profile: https://plus.google.com/112399767740508618350/about
LinkedIn Profile: http://www.linkedin.com/in/kidehen    (025)

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature


_________________________________________________________________
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    (01)

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