[讨论] 如何界定开源项目的“原创性”? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
uiuing
V2EX    开源软件

[讨论] 如何界定开源项目的“原创性”?

  •  1
     
  •   uiuing 2024-07-15 18:23:31 +08:00 1757 次点击
    这是一个创建于 498 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前情提要:

    还在上学时,我苦于英语能力弱,经常被变量命名问题困扰,于是通过 NLP + 翻译做了个小网站 VARBook ,专门用于翻译变量命名。后面服务器欠费了,我也没有精力继续维护,就下线了。

    今年很多朋友发邮件关心 VARBook 是否还有人维护,还收到了几十块的赞助。所以最近我重新开始维护 VARook ,今年 LLM 大火,所以用上了 llama3 + milvus 优化命名功能,然后换了个域名继续开放。前端代码托管在 https://github.com/uiuing/varbook,使用 GNU GPL v3.0 协议开源。

    最近,我发现了一个名为 xiaojingge-varbook 的项目 (https://github.com/xiaoxiaojingge/xiaojingge-varbook),该项目使用了 Apache License 2.0 协议。xiaojingge-varbook 的 UI 设计和部分前端代码与我的 VARBook 项目非常相似。

    我的项目:

    相似的项目:

    相似之处: UI 、Logo 、名称、SEO 、部分前端代码有相似的地方。


    这引发了我对开源协议和项目权益的一些疑问,希望可以与大家探讨一下:

    疑问:

    1. 开源协议问题: 我的项目使用 GNU GPL v3.0 协议,而 xiaojingge-varbook 使用 Apache 2.0 协议。GPL v3.0 要求衍生作品也必须使用相同的协议,请问在 UI 和前端代码上有相似之处的地方,并且使用不同的协议,是否违反了 GPL v3.0 协议?

    2. 项目名称和 Logo 、SEO: 对方 repo 与我的 repo 有非常相似的名称和 Logo 、SEO 。虽然后端实现有不同,但功能和目标用户群体高度重合。请问这种行为是否构成对我的项目权益的侵犯?

    目的: 我发起这次讨论并非出于恶意或攻击,而是希望能够更好地理解开源协议和项目权益,并与大家交流如何更好地保护开源项目原创性,或者确定原创性的边界。(有点标题党 sorry )


    题外话:

    以下是回答部分朋友邮件的内容:

    1. 问:为什么没有开源后端? 答: 本身后端基本没有什么技术难度,大部分是可能会涉及侵权的数据,所以就不开源了。本身开源前端代码也是为了占坑。

    2. 问:为什么开源了还会有版权相关疑虑? 答: 曾经有不少朋友发邮件问我是否可以给他们开放 IP 限额,他们人很多,需要用这一类工具做规范,并表示可以付费。因为本身就没什么技术含量,所以就算用到服务器内存满了我也没啥意见,我主动问需不需要命名数据(中文 -> 英文命名,当然不涉及任何隐私问题)。但此贴问题不同,并非使用/安全问题,而是权益相关讨论;

    7 条回复    2024-07-18 22:39:58 +08:00
    renmu
        1
    renmu  
       2024-07-15 19:10:11 +08:00 via Android
    你直接去看核心代码看看是否相同,或者代码结构是否几乎相同,一些独特的命名是否有抄袭
    uiuing
        2
    uiuing  
    OP
       2024-07-15 19:45:51 +08:00
    @renmu

    有最直观的体现:
    我的: https://varbook.uius.site/
    对方: https://varbook.xiaojingge.com/

    从 Logo 至风格极其相似,代码中的就太多了(仅前端部分)

    正常尝试走 GitHub DMCA ,不过或许我该考虑联系对方
    renmu
        3
    renmu  
       2024-07-15 20:20:19 +08:00 via Android
    看了代码很明显就是抄袭,连前端依赖版本都一样,直接 fork 保存证据,然后去 issue 质疑他,不认就挂他
    uiuing
        4
    uiuing  
    OP
       2024-07-16 10:46:14 +08:00
    @renmu 感谢老哥,今天就安排
    charslee013
        5
    charslee013  
       2024-07-18 07:46:08 +08:00
    好奇问一下 milvus 在整个翻译变量项目中起到什么作用?

    我查阅了其他项目都是用 LLM 直接返回翻译/润色后的变量名名称,不是很明白向量数据库在这里面的具体发挥作用,希望 OP 有时间能解答一下
    uiuing
        6
    uiuing  
    OP
       2024-07-18 09:37:40 +08:00   1
    @charslee013 我的用途比较偏门,也许不合理,供参考

    VARBook 项目中 Milvus 的主要作用:
    1 、存储和索引库: 存储从优质代码仓库中提取的变量命名示例 (通过爬虫获取并用 AST 解析 + 文本嵌入模型转换为向量数据)。
    2 、相似性搜索: 基于用户输入,找到相近的变量命名示例(利用 LLaMA 3 将中文描述转为英文索引)。
    3 、上下文增强: 为 LLaMA 3 提供相关上下文,提高翻译准确性(Milvus 检索结果用于 LLaMA 3 生成变量命名含义参考 prompt)。

    最终形成的 prompt 结构为:
    1 、自定义的变量命名基础 prompt
    2 、Milvus 检索 + LLaMA 3 生成的含义参考
    3 、用户输入变量描述(英文)

    主要目的是给 LLaMA 3 提供更丰富的上下文

    ------ 分割 ------

    各个作用的参考数据(仅供参考):

    1. 存储和索引库:
    - 变量名: user_login_time
    - 代码片段: datetime user_login_time = getCurrentTimestamp();
    - 向量表示: [0.23, -0.45, 0.67, ..., 0.12]

    2. 相似性搜索:
    用户输入: "用户最后登录时间"
    LLaMA 3 翻译: "user last login time"
    Milvus 检索结果:
    - user_login_time (相似度: 0.92)
    - last_access_timestamp (相似度: 0.89)
    - user_last_active_date (相似度: 0.85)

    3. 上下文增强:
    Milvus 检索结果用于 LLaMA 3 prompt:
    "Consider these similar variable names:
    - user_login_time: represents the timestamp when a user logs in
    - last_access_timestamp: indicates the most recent time a user accessed the system
    - user_last_active_date: stores the date of the user's last activity"

    最终 prompt 结构:
    1. 基础 prompt: "Generate a meaningful and concise variable name in English."
    2. 含义参考: [Milvus 检索结果 + LLaMA 3 生成的描述]
    3. 用户输入: "user last login time"
    charslee013
        7
    charslee013  
       2024-07-18 22:39:58 +08:00
    @uiuing #6 原来如此!非常感谢楼主开源
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4350 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 00:14 PVG 08:14 LAX 16:14 JFK 19:14
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86