Hi Amirouche,

yes, those are the feature structures I am talking about. Your idea for
representing them seems interesting, I am wondering whether you have a
solution for unification? Say I have [Agr [number sg]] and want to unify it
with [Agr [person 1]], it should produce: [Agre [number sg, person 1]]
(where order doesn't matter). However, it should fail if I want to unify
[Agr [number sg]] [Agr [number pl]]. Ideally, it should also run in
reverse: I should be able to ask what [Agr [number sg]] needs to unify with
to produce [Agr [number sg, person 1]].

Can your system do this?

Best,

El sáb., 1 dic. 2018 a las 16:52, Amirouche Boubekki (<
[email protected]>) escribió:

>
>
> On Saturday, December 1, 2018 at 4:24:31 PM UTC+1, Amirouche Boubekki
> wrote:
>>
>> Hello Matías,
>>
>> On Sunday, November 18, 2018 at 9:31:24 PM UTC+1, Matías Guzmán Naranjo
>> wrote:
>>>
>>> Hi all,
>>>
>>> are there any updates on this topic? Tahnks
>>>
>>
>> Do you have reference about feature structure you are talking about?
>>
>> Is it the same thing that is described in
>> http://www.nltk.org/howto/featstruct.html?
>>
>
> FWIW, My latest work on this subject boils down to  mimicking more of
> datomic <https://www.datomic.com/>, as a simpler than RDF triple store.
> I started my experiments with GNU Guile, but I am moving to Chez Scheme.
> Like I said, previously my work is around
> a database that you can query (recursively) using minikanren.
>
> I did not find enough papers about feature structures per se to know how
> they are useful. My understanding is that
> you can implement feature structures in my database. E.g the following feature
> structure taken from wikipedia
> <https://en.wikipedia.org/wiki/Feature_structure>:
>
>    { category :  noun phrase, agreement: { number: singular, person: third
> }}
>
> Can be encoded a set of three tuples (subject, predicate, object):
>
>    (P4X432, category noun, phrase)
>    (P4X432, agreement, ZXP202)
>    (ZXP202, number, singular)
>    (ZXP202, person, third)
>
> Then you can query it using minikanren using a specific -o procedure here a
> full example with data
> <https://framagit.org/a-guile-mind/guile-wiredtiger/blob/070ed68139d99c279f058a6c293f00292d35dbd7/tests/feature-space.scm#L81-103>
> :
>
> (test-check "microkanren fs:queryo"
>   (with-env (env-open* "wt" (list *feature-space*) "create")
>     ;; fixture
>     (let* ((concept/fruit (fs:add! (list '(name . "fruit"))))
>            (concept/strawberry (fs:add! (list '(name . "strawberry"))))
>            (concept/fig (fs:add! (list '(name . "fig"))))
>            (link/strawberry-is-a-good-fruit (fs:add! (list `(from .
> ,concept/strawberry)
>                                                            `(name . "is
> good")
>                                                            `(to .
> ,concept/fruit))))
>            (link/fig-is-a-good-fruit (fs:add! (list `(from . ,concept/fig)
>                                                     `(name . "is good")
>                                                     `(to .
> ,concept/fruit)))))
>       ;; execute query
>       (sort (map car
>                  (run* (name?)
>                    (fresh (concept?? link?? a-fruit-that-is-good??)
>                      (fs:queryo concept?? 'name "fruit")
>                      (fs:queryo link?? 'to concept??)
>                      (fs:queryo link?? 'name "is good")
>                      (fs:queryo link?? 'from a-fruit-that-is-good??)
>                      (fs:queryo a-fruit-that-is-good?? 'name name?))))
>             string<)))
>   '("fig" "strawberry"))
>
> The query anwser the question : what fruit is good? Which boils down to
> follow relation along a predefined path. This is a example of
> neighborhood querying, recursive queries are also possible but I did not
> find a good example / real life example of such query.
>
> I am super thrilled to work together on this if you don't mind sharing
> some of your knowledge regarding this subject.
>
> Also you might be interested by https://github.com/webyrd/mediKanren/
>
>
> Best regards,
>
>
> Amirouche
>
> --
> You received this message because you are subscribed to the Google Groups
> "minikanren" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/minikanren.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"minikanren" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/minikanren.
For more options, visit https://groups.google.com/d/optout.

Reply via email to