全面chrome翻译插件ChaZD,支持有道智云api

第一放开上该项目之github地址:https://github.com/codethereforam/ChaZD

无缝嵌入主语言

  • 集合主开发语言和图查询语言
    经数据库查询语言(如SQL)被认为与最终于产环境面临采用的编程语言截然不同。因此,经典数据库要求开发人员既而修主编程语言,还要编写数据库相应的询问语言。Gremlin统一了这分,因为遍历可以据此支持作用结合和嵌套(主要编程语言都支持)的任何编程语言编写。因此,用户的Gremlin遍历可以使用应用程序语言(主语言,Host
    language)编写,并受益于主语言及其工具(例如类型检查,语法高亮,点完等)所提供的亮点。目前是各种Gremlin语言变体,包括:Gremlin-Java,Gremlin-Groovy,Gremlin-Python,Gremlin-Scala等。

  • 演示程序
    比较之下简单种方式,高低立判:

    public class GremlinTinkerPopExample {
      public void run(String name, String property) {
    
    Graph graph = GraphFactory.open(...);
    GraphTraversalSource g = graph.traversal();
    
    double avg = g.V().has("name",name).
                   out("knows").out("created").
                   values(property).mean().next();
    
    System.out.println("Average rating: " + avg);
      }
    }
    

public class SqlJdbcExample {
  public void run(String name, String property) {

    Connection connection = DriverManager.getConnection(...)
    Statement statement = connection.createStatement();
    ResultSet result = statement.executeQuery(
      "SELECT AVG(pr." + property + ") as AVERAGE FROM PERSONS p1" +
        "INNER JOIN KNOWS k ON k.person1 = p1.id " +
        "INNER JOIN PERSONS p2 ON p2.id = k.person2 " +
        "INNER JOIN CREATED c ON c.person = p2.id " +
        "INNER JOIN PROJECTS pr ON pr.id = c.project " +
          "WHERE p.name = '" + name + "');

    System.out.println("Average rating: " + result.next().getDouble("AVERAGE")
  }
}

次、使用验证

 

OLTP 和 OLAP遍历

  • 一律蹩脚编写,到处运行
    Gremlin遵循“一次于编写,到处运行”的宏图哲学。这意味着不但抱有的TinkerPop启用的图形系统都能实施Gremlin遍历,而且每个Gremlin遍历都好叫评估为实时数据库查询或批处理查询。(前者被誉为在线交易流程(OLTP),后者于喻为在线分析流程(OLAP))。

  • 协调多种贪图遍历
    这种普遍性是由于Gremlin遍历机实现之。这种分布式、基于图形的虚拟机了解如何协调多机器图遍历的履。好处是,用户不需要上学数据库查询语言和域特定的BigData分析语言(例如Spark
    DSL,MapReduce等)。Gremlin是构建基于图的应用程序所不可或缺之,其余全部还交由Gremlin遍历机处理。
    图片 1

三、结尾

 

生道翻译旧的api于明天即终止运转了,原来的这插件应就是不可知因此了,我等到在前天到家了转此插件,之前的一直用户可持续采取。如果你未曾因此了,欢迎尝试。

是因为时间匆忙加上自身刚好点插件才两天,代码应该还有一对题目,欢迎提出问题。后面我会继续全面代码,添加一些定制功能。

 

参考资料

The Gremlin Graph Traversal Machine and
Language

2.3 切实翻译说明

参考原作者github项目的README.md:https://github.com/ververcpp/ChaZD

 

命令式和声明式遍历

Gremlin遍历可以因命令式(程序式)方式,声明性(描述性)方式编写,也堪分包命令性和声明性的混合方式编写。

  • 命令式编写方式
    获得Gremlin合作者的顶头上司名字分布:

    g.V().has("name","gremlin").as("a").
      out("created").in("created").
    where(neq("a")).
      in("manages").
      groupCount().by("name")
    

    一个命令式的Gremlin遍历告诉运行器如何执行遍历中之每一样步;然后,遍历器分裂到具备的“Gremlin”的合作者(去除Gremlin自己);下一样步,遍历器走至“Gremlin”合作者的顶头上司(managers),最终根据上级的讳进行统计分发。

为此是命令式的Gremlin遍历,就是其不言而喻地、程序化地报遍历器“去这里,然后去那边”。

  • 声明式编写方式
    以下使用声明式编写方式实现了一致的结果:

    g.V().match(
      as("a").has("name","gremlin"),
      as("a").out("created").as("b"),
      as("b").in("created").as("c"),
      as("c").in("manages").as("d"),
    where("a",neq("c"))).
      select("d").
      groupCount().by("name")
    

    声明式的Gremlin遍历并无能够告遍历器执行其的手续的相继,而是允许每个遍历器从一个(可能嵌套的)模式的集聚中选择一个模式来执行。

而,声明遍历具有额外的益处,它不光使了编译时查询计划器(如命令式遍历),而且还是一个运转时查询计划器,根据每个模式的历史统计信息选择下一个实施哪个遍历模式

  • 利那些倾向于减少/过滤大多数数的模式。

用户可选择上述提出的艺术编写好之遍历语句。不管怎样,用户的遍历语句都见面依据现实的实践引擎以及遍历策略traversal
strategies于重写。Gremlin为用户提供灵活性表达好的查询的;图系统吧针对实际启用TinkerPop的数据系统进行实用地评估图遍历提供了灵活性。

其一插件用之是发道翻译旧的api,由于有道范围每个api
key每时只能调用1000不良,有时候会翻不了,而且原来的api于 2017-12-31
后止运行。

Gremlin简介

Gremlin是Apache TinkerPop
框架下之希冀遍历语言。Gremlin是一样种函数式数据流语言,可以教用户使用简单的主意发挥复杂的特性图(property
graph)的遍历或询问。每个Gremlin遍历由同名目繁多步骤(可能在嵌套)组成,每一样步都以数据流(data
stream)上实行一个原子操作。

Gremlin包括三独着力的操作:

  • map-step
    针对数码流中的目标开展转换;
  • filter-step
    本着数码流中的对象就尽过滤;
  • sideEffect-step
    本着数据流进行计算统计;

以下是Gremlin在局部情景中之实际以:

  • 1.查寻找Gremlin朋友之情侣

    g.V().has("name","gremlin").
      out("knows").
      out("knows").
      values("name")
    
  • 2.寻觅那些由片只朋友齐声创建的门类

    g.V().match(
      as("a").out("knows").as("b"),
      as("a").out("created").as("c"),
      as("b").out("created").as("c"),
      as("c").in("created").count().is(2)).
    select("c").by("name")
    
  • 3.受闹Gremlin的富有上司,直至CEO

    g.V().has("name","gremlin").
      repeat(in("manages")).
    until(has("title","ceo")).
      path().by("name")
    
  • 4.赢得Gremlin合作者的衔分布

    g.V().has("name","gremlin").as("a").
      out("created").in("created").
    where(neq("a")).
      groupCount().by("title")
    
  • 5.收获Gremlin购买活之连带制品列表并排序

    g.V().has("name","gremlin").
      out("bought").aggregate("stash").
      in("bought").out("bought").
    where(not(within("stash"))).
      groupCount().order(local).by(values,decr)
    
  • 6.取排名前十的基本人物

    g.V().hasLabel("person").
      pageRank().
    by("friendRank").
    by(outE("knows")).
      order().by("friendRank",decr).
      limit(10)
    

遂,我哪怕变更写了此插件,使其可以调用有道智云新的api。我fork的是lytofb/ChaZD,作者在原先ChaZD代码的功底及加以了起定义api
key的意义。

 

2.1 下载插件

下载地址:ChaZD-thinkam

倘您的浏览器支持使用非Web
Store的插件,直接用下载的crx拖到chrome://extensions/页面。

如若非支持,将crx文件扩展名改为zip并解压,在chrome://extensions/勾选开发者模式,接着以
Chrome
设置开展之地方,点击加载未从包之展开。详细步骤见[chrome怎么设置非官方市场的插件?

  • 小赖的答问](https://www.zhihu.com/question/24027794/answer/34500157)。

 

2.2申请生道智云翻译服务

  • 注册起道智云帐号并登录到控制台页面
  • 开创一个翻译实例:控制台 > 自然语言翻译 > 翻译实例 >
    创建翻译实例
  • 始建一个用并绑定翻译服务:控制台 > 应用管理 > 我之运用 >
    创建以 > 绑定服务
  • 在插件中绑定以——将上手续的动ID和用密钥填写到插件设置页中相应的职位,如下图

图片 2

 

如出一辙、新增功能

 

改用有道智云新的api,可以从定义应用ID和密钥

 

前想寻找一个chrome支持划词翻译的插件,最终以知乎上收看了这答复,推荐的凡ChaZD,用了一段时间我就算好上它们的简单方便。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图