Metadata-Version: 1.1
Name: MyNQL
Version: 0.2.1
Summary: My Network Query Language
Home-page: http://mynql.readthedocs.io/en/latest/
Author: Florian Scholz
Author-email: livint@posteo.de
License: UNKNOWN
Description: 
        
        Install
        -------
        
        MyNLQ’s source code hosted on `GitHub <https://github.com/livinter/MyNQL>`_.
        
        .. code-block:: bash
        
           git clone https://github.com/livinter/MyNQL.git
           python setup.py install
        
        or just
        
        .. code-block:: bash
        
           pip install MyNQL
        
        Teach the Network
        -----------------
        
        For example if a customer make a purchase of a product you assume a relation between ``customer.id`` and ``product.id``,
        so you connect them. Optional you can specify a distance between nodes, to represent how close the nodes are related.
        
        * ``connect`` - connect two nodes
        * ``delete`` - delete a connection
        
        Nodes are created automatically when you do the connection, and removed if they do not have any more connections. So do not worry about them.
        
        
        Ask the Network
        ---------------
        
        Now you can query all kinds of relations, not only the once you taught. With select you specify a starting point, like
        ``customer.id`` and specify the category where you like to know its closes relation.
        
        * ``select`` - gives you the best related nodes from a specified category
        
        The searching query takes into account all the different routes up to a radius you specify.
        
        Example
        -------
        
        
        Lets imagine we already have a table *customer*
        
        
        .. list-table::
           :header-rows: 1
        
           * - Id
             - Name
             - ..
           * - 101
             - jose
             - ...
           * - 102
             - maria
             - ...
           * - 103
             - juan
             - ...
        
        and you want to teach the network about recent purchases.
        
        .. code-block:: python
        
           from MyNQL import MyNQL
           mynql = MyNQL('store')
        
           mynql.connect('customer.juan', 'product.jeans')
           mynql.connect('customer.juan',  'product.socks')
           mynql.connect('customer.maria', 'product.socks')
        
        If the column ``Name`` is unique you can use it as a key, otherwise you would need column ``Id``\ , and your code would look like this:
        
        .. code-block:: python
        
           mynql.connect("customer.103', 'product.12')
        
        Now you can ask questions from other points of view. You always specify a starting point, and the category where you want to know the best matches:
        
        .. code-block:: python
        
           >>> mynql.select('customer.maria', 'product')
           ['socks', 'jeans']
        
        Maria is more connected to ``socks``, as she has a direct connection, but also a bit to ``jeans`` as there exist an indirect connection through Juan.
        
        .. code-block:: python
        
           >>> mynql.select('product.jeans', 'product')
           ['socks']
        
        Any combination is valid. For example you can ask about how one product is related to other. 
        
        
        Backend
        -------
        
        Storage is done in memory, but if you want to use MySQL, SQLite or PostgreSQL as a backend take a look at ``test/pee_example.py``.
        This will keep a copy of all updates in your database. 
        
Keywords: recommendation query language
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
