【Hacker News搬运】Logica——用于数据的声明性逻辑编程语言
-
Title: Logica – Declarative logic programming language for data
Logica——用于数据的声明性逻辑编程语言
Text:
Url: https://logica.dev/
由于我无法直接访问网络内容,包括您提供的链接,因此无法使用JinaReader或其他工具来抓取和分析该链接的内容。不过,我可以提供一些一般性的步骤和指导,如果您想要使用JinaReader或其他类似工具来抓取和分析网络内容,包括翻译非中文内容到中文。 以下是一般步骤: 1. **安装JinaReader**: 首先,您需要安装JinaReader。由于JinaReader并不是一个广为人知的工具,我假设您是指使用Jina框架来构建一个内容抓取和分析的应用。以下是一个使用Python和Jina框架的基本安装和设置步骤: ```bash pip install jina
-
配置Jina流程:
使用Jina,您可以创建一个流程来处理数据。以下是一个简单的配置示例,用于抓取网页内容并使用一个简单的处理器(例如,使用requests
库获取网页内容):from jina import Flow # 创建一个Flow flow = Flow().add( uses="requests", input_type="text", output_type="text" ) # 加载Flow flow.load() # 抓取内容 url = "https://logica.dev/" flow.post( inputs=url, output_key="text" ) # 打印抓取的内容 print(flow.get_output()[0]['text'])
-
翻译非中文内容:
如果抓取的内容不是中文,您可以使用翻译API来将其翻译成中文。例如,您可以使用Google Cloud Translation API。以下是如何在Jina流程中集成翻译的示例:from google.cloud import translate_v2 as translate client = translate.Client() def translate_text(text, target='zh-CN'): # 翻译文本 result = client.translate(text, target_language=target) return result['translatedText'] # 在Flow中添加翻译处理器 flow = Flow().add( uses=translate_text, input_type="text", output_type="text" ) # 加载Flow flow.load() # 翻译抓取的内容 url = "https://logica.dev/" flow.post( inputs=url, output_key="text" ) # 打印翻译后的内容 print(flow.get_output()[0]['text'])
请注意,以上代码仅为示例,您需要根据实际情况进行调整。对于Google Cloud Translation API,您还需要设置环境变量以提供API密钥,并且可能需要处理认证等问题。
由于我无法直接访问网络内容,我无法提供实际的抓取和翻译结果。如果您按照上述步骤操作,您将能够抓取指定链接的内容,并将其翻译成中文。
## Post by: voat ### Comments: **dang**: Related:<p><i>Google is pushing the new language Logica to solve the major flaws in SQL</i> - <a href="https://news.ycombinator.com/item?id=29715957">https://news.ycombinator.com/item?id=29715957</a> - Dec 2021 (1 comment)<p><i>Logica, a novel open-source logic programming language</i> - <a href="https://news.ycombinator.com/item?id=26805121">https://news.ycombinator.com/item?id=26805121</a> - April 2021 (98 comments) > **dang**: 相关:<p><i>谷歌正在推出新的语言Logica来解决SQL中的主要缺陷</i>-<a href=“https:”news.ycombinator.com:”item?id=29715957“>https:”/;news.ecombinator.com;项目?id=29715957</a>-2021年12月(1条评论)<p><i>Logica,一种新颖的开源逻辑编程语言</i>-<a href=“https:/;news.ycombinator.com�;>/;news.ecombinator.com;项目?id=26805121</a>-2021年4月(98条评论) **Y_Y**: If, like me, your first reaction is that this looks suspiciously like Datalog then you may be interested to learn that they indeed consider Logical to be "in the the Datalog family". > **Y_Y**: 如果像我一样,你的第一反应是这看起来很像数据日志,那么你可能有兴趣了解他们确实认为逻辑是";在Datalog家族中;。 **Agraillo**: I think it is a good direction imho. Once being familiar with SQL I learned Prolog a little and similarities struck me. I wasn't the first one sure, and there are others who summarized it better than me [1] (2010-2012):<p><i>Each can do the other, to a limited extent, but it becomes increasingly difficult with even small increases in complexity. For instance, you can do inferencing in SQL, but it is almost entirely manual in nature and not at all like the automatic forward-inferencing of Prolog. And yes, you can store data(facts) in Prolog, but it is not at all designed for the "storage, retrieval, projection and reduction of Trillions of rows with thousands of simultaneous users" that SQL is.</i><p>I even wanted to implement something like Logica at the moment, primarily trying to build a bridge through a virtual table in SQLite that would allow storing rules as mostly Prolog statements and having adapters to SQL storage when inference needs facts.<p>[1]: <a href="https://stackoverflow.com/a/2119003" rel="nofollow">https://stackoverflow.com/a/2119003</a> > **Agraillo**: 我认为这是一个好的方向。一旦熟悉了SQL,我就学习了Prolog,其中的相似之处让我印象深刻;当然不是第一个,还有其他人比我更好地总结了它[1](2010-2012):<p><i>每个人都可以在有限的范围内完成另一个任务,但随着复杂性的小幅增加,这变得越来越困难。例如,您可以在SQL中进行推理,但它本质上几乎完全是手动的,根本不像Prolog的自动正向推理。是的,你可以在Prolog中存储数据(事实),但它根本不是为";存储、检索、投影和减少数万亿行,同时有数千个用户";</i><p>我现在甚至想实现类似Logica的东西,主要是试图通过SQLite中的虚拟表构建一个桥,允许将规则主要存储为Prolog语句,并在推理需要事实时具有SQL存储的适配器<p> [1]:<a href=“https:/;stackovoverflow.com/! 2119003”rel=“nofollow”>https:/;stackoverflow.com;a;2119003</a> **avodonosov**: > Composite(a * b) distinct :- ...<p>Wait, does Logica factorize the number passed to this predicate when unifying the number with a * b?<p>So when we call Composite (100) it automatically tries all a's and b's who give 100 when m7ltiplied<p>I'd be curious to see the SQL it transpiles to. > **avodonosov**: >;复合材料(a*b)不同:-<p> 等等,Logica在将数字与a*b统一时,会对传递给此谓词的数字进行因式分解吗<p> 因此,当我们调用Composite(100)时,它会自动尝试所有a;s和b;当m7ltplied时,谁会给100;我很好奇它能转换成什么样的SQL。 **anorak27**: There's also Malloy[0] from Google that compiles into SQL<p>> Malloy is an experimental language for describing data relationships and transformations.<p>[0]: <a href="https://github.com/malloydata/malloy">https://github.com/malloydata/malloy</a> > **anorak27**: 那里;还有来自谷歌的Malloy[0],它可以编译成SQL<p>>;Malloy是一种用于描述数据关系和转换的实验性语言<p> [0]:<a href=“https:/;github.com/-malloydata/malloy”>https:"/;github.com;malloydata;马洛伊</a>
-