Annotation of wikisrc/projects/project/apropos.mdwn, revision 1.3

1.1       jmmv        1: [[!template id=project
                      2: 
                      3: title="Apropos replacement based on mandoc and SQLite's FTS"
                      4: 
                      5: contact="""
                      6: [tech-userlevel](mailto:tech-userlevel@NetBSD.org)
                      7: """
                      8: 
                      9: mentors="""
                     10: [Jörg Sonnenberger](mailto:joerg@NetBSD.org)
                     11: """
                     12: 
1.2       jmmv       13: category="userland"
                     14: difficulty="easy"
1.1       jmmv       15: duration="3 months"
1.3     ! wiki       16: done_by="Abhinav Upadhyay"
1.1       jmmv       17: 
                     18: description="""
                     19: NetBSD ships a lot of useful documentation in the form of manual pages.
                     20: Finding the right manual page can be difficult though.
                     21: If you look for a library function, it will sometimes fail, because it is part of a larger manual page and doesn't have a MLINKS entry.
                     22: If you look for a program, but don't know the exact name, it can be hard to find as well.
                     23: 
                     24: Historically, the content of the NAME section of each manual page has been extracted and put into a special file.
                     25: The apropos command has been used to search this file based on keywords.
                     26: This brings severe limitations as it restricts the list of potential matches significantly and requires very good descriptions of the content of a manual page in typically one line.
                     27: 
                     28: The goal of this project is to provide a modern replacement based on the [Full Text Search of SqLite](http://sqlite.org/fts3.html).
                     29: The most basic version of the new apropos builds an index from the text output of [mandoc](http://mdocml.bsd.lv/mandoc.1.html) and queries it using appropriate SQL syntax.
                     30: Some basic form of position indications should be provided as well (e.g. line number).
                     31: 
                     32: A more advanced version could use the mandoc parser directly too.
                     33: This would easily allow relatively precise position marks for the HTML version of manual pages.
                     34: It would also allow weighting the context of a word.
                     35: Consider Google's preference of URLs that contain the keywords or documents containing them in the head lines as an example.
                     36: 
                     37: Another idea is to use the index for directly handling manual page aliases.
                     38: This could replace the symbolic links currently used via the MLINKS mechanism.
                     39: The aliases can be derived automatically from the .Nm macros in the manual page.
                     40: """
                     41: ]]
                     42: 
                     43: [[!tag gsoc]]

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb