License to Sub-License

From XPUB & Lens-Based wiki

Goal of the License

From Aymeric Masoux's thesis and course about free culture licenses and copyrights.
My very first idea would be to popularize the still quiet unknown; misunderstood and underrated process of writing licenses, by proposing to any Web user to create his own from a pre-existing content on a Web page (think about what kind of content). This content could anything, a text, an image, or any other kind of data. The most important would be that the reader/user could implememeent his own thoughts/interpretation/opinion about it by writting and publishing a license, by choosing how much freedom he will give to the content and its potential users. The result of this process could then be an arborescence of licenses written by people all over the world, showcasing a wide range of opinions/political views concerning no only the content, but the act of licensing itself.

Creating a computer assisted licence creation chatbot

PAD

From a simple a serie of 4 essential questions, I am building a chatbot that would allow anybody to create a license for their own content.

0.0 Free access, and freedom to use the work as you wish - (/use/ includes to run a program or to execute a music score)?
PARTIAL / YES
1.0 Freedom to access the /source-code/ and use it as you wish, for study or change it for personal use
YES / NO
2.0 freedom to redistribute copies
YES / NO
2.1 right to quote (freedom to redistribute copies of fragments)
YES SMALL SIZE / YES ANY SIZE
3.0 freedom to distribute copies of your modified versions to others
YES / NO

answer = input("0.0 Free access, and freedom to use the work as you wish - (/use/ includes to run a program or to execute a music score)?\n\n. PARTIAL (some restrictions to execute) \n. YES\n\n ")
#QUESTION 0.0
if answer.lower().strip() == "partial":
#RESPONSE 0.0 — PARTIAL  
    answer = input("\n1. Freedom to access the /source-code/ and use it as you wish, for study or change it for personal use\n\n. YES\n. NO\n\n " )
    #QUESTION 1.0    
    if answer.lower().strip() == "yes":
    #RESPONSE 1.0 — YES    
        answer == input("\n2. freedom to redistribute copies\n\n. YES\n. NO\n\n ")
        #QUESTION 2.0
        if answer.lower().strip() == "yes":
        #RESPONSE 2.0 — YES
            answer == input("\n2.1 right to quote (freedom to redistribute copies of fragments)\n\n. YES, SMALL SIZE\n. YES, ANY SIZE\n\n  ")
            #QUESTION 2.1ye
            if answer.lower().strip() == "yes, small size":
            #RESPONSE 2.1 — YES SMALL SIZE
                answer == input("\n3.0 freedom to distribute copies of your modified versions to others )\n\n. YES\n. NO\n\n  ")
                #QUESTION 3.0
                if answer.lower().strip() == "yes":
                #RESPONSE 3.0 — YES
                    answer == input("\nNEXT STEP")
                    #END                    
            
                
    elif answer.lower().strip() =="no": 
    #RESPONSE 1.0 — NO 
        print("\n2. freedom to redistribute copies\n\n. YES\n. NO\n\n ")
        #Working
        if answer.lower().strip() == "yes":
           #Working
            answer == input("\n2.1 right to quote (freedom to redistribute copies of fragments)\n\n. YES SMALL SIZE\n. YES ANY SIZE\n\n ")
    else:
    #RESPONSE 1.0 — ELSE
        print("We were unable to understand ")
        #RESPONSE 1.0 — Option 3 

#####################################################################################################################################        
        
        
if answer.lower().strip() == "yes":
#RESPONSE 0.0 — YES  
    answer = input("\n1. Freedom to access the /source-code/ and use it as you wish, for study or change it for personal use\n\n. YES\n. NO\n\n " )
    #QUESTION 1.0    
    if answer.lower().strip() == "yes":
    #RESPONSE 1.0 — YES    
        answer == input("\n2. freedom to redistribute copies\n\n. YES\n. NO\n\n ")
        #QUESTION 2.0
        if answer.lower().strip() == "yes":
        #RESPONSE 2.0 — YES
            answer == input("\n2.1 right to quote (freedom to redistribute copies of fragments)\n\n. YES, SMALL SIZE\n. YES, ANY SIZE\n\n  ")
            #QUESTION 2.1ye
            if answer.lower().strip() == "yes, any size":
            #RESPONSE 2.1 — YES
                answer == input("\n3.0 freedom to distribute copies of your modified versions to others )\n\n. YES\n. NO\n\n  ")
                #QUESTION 3.0
                if answer.lower().strip() == "yes":
                #RESPONSE 3.0 — YES
                    answer == input("\nNEXT STEP")
                    #END 
                        
                elif answer.lower().strip() =="no":               
                #RESPONSE 3.0 — NO   
                    answer == input("\n2. freedom to redistribute copies\n\n. YES\n. NO\n\n ")
                    #QUESTION 3.0
                    if answer.lower().strip() == "no":
                    #RESPONSE 2.0 — YES
                        answer == input("\n2.1 right to quote (freedom to redistribute copies of fragments)\n\n. YES\n. NO\n\n ")
                        #QUESTION 2.1
                        if answer.lower().strip() == "no":
                        #RESPONSE 2.1 — YES
                            answer == input("\n3.0 freedom to distribute copies of your modified versions to others )\n\n. YES\n. NO\n\n ")
                            #QUESTION 3.0
                            if answer.lower().strip() == "no":
                            #RESPONSE 3.0 — YES
                                print("\nNEXT STEP") 
                    
            elif answer.lower().strip() =="no":               
            #RESPONSE 2.1 — NO   
                answer == input("\n2. freedom to redistribute copies\n\n. YES\n. NO\n\n ")
                #QUESTION 2.0
                if answer.lower().strip() == "no":
                #RESPONSE 2.0 — YES
                    answer == input("\n2.1 right to quote (freedom to redistribute copies of fragments)\n\n. YES\n. NO\n\n ")
                    #QUESTION 2.1
                    if answer.lower().strip() == "no":
                    #RESPONSE 2.1 — YES
                        answer == input("\n3.0 freedom to distribute copies of your modified versions to others )\n\n. YES\n. NO\n\n ")
                        #QUESTION 3.0
                        if answer.lower().strip() == "no":
                        #RESPONSE 3.0 — YES
                            print("\nNEXT STEP")               
                            
        elif answer.lower().strip() =="no":               
        #RESPONSE 2.0 — NO   
            answer == input("\n2. freedom to redistribute copies\n\n. YES\n. NO\n\n ")
            #QUESTION 2.0
            if answer.lower().strip() == "no":
            #RESPONSE 2.0 — YES
                answer == input("\n2.1 right to quote (freedom to redistribute copies of fragments)\n\n. YES\n. NO\n\n ")
                #QUESTION 2.1
                if answer.lower().strip() == "no":
                #RESPONSE 2.1 — YES
                    answer == input("\n3.0 freedom to distribute copies of your modified versions to others )\n\n. YES\n. NO\n\n ")
                    #QUESTION 3.0
                    if answer.lower().strip() == "no":
                    #RESPONSE 3.0 — YES
                        print("\nNEXT STEP")
                                      
    if answer.lower().strip() =="no":               
    #RESPONSE 1.0 — NO   
        answer == input("\n2. freedom to redistribute copies\n\n. YES\n. NO\n\n ")
        #QUESTION 2.0
        if answer.lower().strip() == "no":
        #RESPONSE 2.0 — NO
            answer == input("\n2.1 right to quote (freedom to redistribute copies of fragments)\n\n. YES\n. NO\n\n ")
            #QUESTION 2.1
            if answer.lower().strip() == "no":
            #RESPONSE 2.1 — NO
                answer == input("\n3.0 freedom to distribute copies of your modified versions to others\n\n. YES\n. NO\n\n ")
                #QUESTION 3.0
                if answer.lower().strip() == "no":
                #RESPONSE 3.0 — NO
                    print("\nNEXT STEP")
                    
#####################################################################################################################################        

                else:
                #RESPONSE 3.0 — ELSE      
                    print("\nINCORRECT ANSWER  to question 3.0  ")  
                    answer = input("\n\n3.0 freedom to distribute copies of your modified versions to others )\n\n. YES\n. NO\n\n  " )
            else:
            #RESPONSE 2.1 — ELSE
                print("\nINCORRECT ANSWER  to question 2.1  ")  
                answer = input("\n\n2.1 right to quote (freedom to redistribute copies of fragments)\n\n. YES, SMALL SIZE\n. YES, ANY SIZE\n\n  " )                           
        else:
        #RESPONSE 2.0 — ELSE 
            print("\nINCORRECT ANSWER  to question 2.0  ")  
            answer = input("\n2. freedom to redistribute copies\n\n. YES\n. NO\n\n " )
    else:
    #RESPONSE 1.0 — ELSE 
        print("\nINCORRECT ANSWER  to question 1.0 ")
        answer = input("\n\n1. Freedom to access the /source-code/ and use it as you wish, for study or change it for personal use\n\n. YES\n. NO\n\n " )
else:
#RESPONSE 0.0 — ELSE
    print("\nINCORRECT ANSWER to question 0.0")
    answer = input("\n0.0 Free access, and freedom to use the work as you wish - (/use/ includes to run a program or to execute a music score)?\n\n. PARTIAL (some restrictions to execute) \n. YES\n\n " )