Menu

predicates relating terms

Help
2014-11-21
2014-11-25
  • Douglas Summers-Stay

    How would one find out the following? (If it's impossible using a Cyc query, a subl command or API command would be fine. Or you could just let me know it's impossible.):

    What assertions have been made regarding a term? In the browser, when you search on a term, you can get this information: on the left-hand side it says All Assertions. I'd just like to know what command that is running.

    What predicate relates two terms? This would be something like (?X Dog CanineAnimal) and return "?X -> genls" but of course that doesn't work.

    What chain of predicates relates two terms? This would show the chain of genls relating Dog to Animal, for example.

     
    • Douglas Summers-Stay

      (assertedPredicateArg OBJ N PREDICATE)
      This seems to work as an answer the first question.

      I think this works for the second question:
      (#$and
      (#$assertedPredicateArg #$Dog 1 ?X)
      (#$assertedPredicateArg #$CanineAnimal 2 ?X))

      But I still don't have a good idea for the third question.

       

      Last edit: Douglas Summers-Stay 2014-11-21
      • David Baxter

        David Baxter - 2014-11-21

        The second question might be too hard to answer. There are so many possible
        ways a pair of terms could be linked. If the two terms appear in an
        assertion together, you can use something like
        (assertedTermSetSentences
        (TheSet Beagle Dog) ?SENTENCE)
        => (genls Beagle Dog)

        But this misses all the facts that are implied by the asserted facts, but
        not actually asserted, e.g. (genls Dog CanineAnimal).

        For the third question, Cyc has a system for expanding on the supports it
        gives for an answer. If you ask the query (genls Dog CanineAnimal) and then
        click on the answer you'll see something like

        Justifications :
        :GENLS (genls Dog CanineAnimal)
        in (MtSpace CurrentWorldDataCollectorMt-NonHomocentric (MtTimeDimFn Now))

        If you then click on the :GENLS it will show you a recursive justification
        of that fact, which in the case of subsumption reasoning like this, will
        show you the chain of connections between the two terms:

        Justification :
        :ISA (isa genls TransitiveBinaryPredicate) in UniversalVocabularyMt

        (genls Dog CanisGenus) in UniversalVocabularyMt
        (genls CanisGenus CanineAnimal) in UniversalVocabularyMt

        This can also be done progammatically in SubL like so:
        (query-justified '(#$genls #$Dog #$CanineAnimal) #$BaseKB)
        ((NIL ((:GENLS (#$genls #$Dog #$CanineAnimal) #$BaseKB :TRUE-DEF))))

        (hl-justify '(:GENLS (#$genls #$Dog #$CanineAnimal) #$BaseKB :TRUE-DEF))
        ((:ISA (#$isa #$genls #$TransitiveBinaryPredicate) #$UniversalVocabularyMt
        :TRUE-DEF)
        #<as:(#$genls #$dog="" #$canisgenus):#$universalvocabularymt="">
        #<as:(#$genls #$canisgenus="" #$canineanimal):#$universalvocabularymt="">)</as:(#$genls></as:(#$genls>

        On Fri, Nov 21, 2014 at 10:43 AM, Douglas Summers-Stay dsummerstay@users.sf.net wrote:

        (assertedPredicateArg OBJ N PREDICATE)
        This seems to work as an answer the first question. Perhaps one could
        formulate a more complex query using assertedPredicateArg to answer the
        other two questions? I'll give it a try.


        predicates relating terms
        https://sourceforge.net/p/opencyc/discussion/85728/thread/f576a6ee/?limit=25#0614/a91f


        Sent from sourceforge.net because you indicated interest in
        https://sourceforge.net/p/opencyc/discussion/85728/

        To unsubscribe from further messages, please visit
        https://sourceforge.net/auth/subscriptions/

         
  • Douglas Summers-Stay

    Thanks! that's helpful.

     

Log in to post a comment.