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.
