我想创建一个可以使用一阶逻辑进行简单推理的应用程序.任何人都可以推荐一个可以接受任意数量的FOL表达式的"引擎",并允许查询这些表达式(最好通过Python访问)吗?
import java.util.UUID
public class Person implements Serializable {
private UUID uuid;
public Person() {
uuid = UUID.fromString("3856c3da-ea56-4717-9f58-85f6c5f560a5");
}
public UUID getUuid() {
return uuid;
}
}
Run Code Online (Sandbox Code Playgroud) 在java中为推理过程实现前向链接和后向链接的最佳方法是什么?
我们获得了Horn形式的知识库,其中包含一系列陈述.
我试图在互联网上搜索,但我无法找到关于如何将这些人工智能概念实现到编码中的任何描述.
我的理解 :
到目前为止,我一直认为我将阅读每个句子(Horn-Form)并创建它的对象.每个Sentence类对象都有关系变量,当我要求Backward或Forward链的知识库时,它将检查这些对象的数组并构造我想要的链.
public class Sentence{
private String impliedBy;
private String implementedVar;
public Sentence(String sentence){
String[] relation = sentence.split("=>");
this.impliedBy = relation[0];
this.implementedVar = relation[1];
}
...
}
Run Code Online (Sandbox Code Playgroud)
通过说...来打电话给上课
Sentence s = new Sentence("a&b=>c");
Run Code Online (Sandbox Code Playgroud)
对于这些复杂的编程而言,我是正确的道路,并且根据我的预测,我可能需要进行大量优化才能在非常高的水平上运行这些推理.但似乎我需要一些人的理解,如果你们中的一些人可以提供帮助,谢谢你......
谢谢!
我正在使用AllegroGraph来存储这样的语句:
<newsid1 hasAnnotation Gamma>
<newsid1 hasAnnotation Beta>
Run Code Online (Sandbox Code Playgroud)
我想在这个staments上定义一条规则:如果主题 newsid1 hasAnnotation
是 Gamma
或者 Beta
,那么 在triplestore中添加一个说明主题的新语句hasAnnotation Theta
,即语句
<newsid1 hasAnnotation Theta>
Run Code Online (Sandbox Code Playgroud)
我的问题如下:
我想在Hadoop平台上使用Web规模的并行推理引擎(WebPIE)推理器.我已经使用两个Ubuntu虚拟机实现了Hadoop结构,并且运行良好.当我想使用WebPie对RDF文件进行推理时,由于需要序列文件格式,该过程失败.该WebPIE教程只字不提序列文件格式为Hadoop的一个先决条件推理.为了生成Sequence文件格式,我编写了以下代码:
public static void main(String[] args) {
FileInputStream fis = null;
SequenceFile.Writer swriter = null;
try {
Configuration conf = new Configuration();
File outputDirectory = new File("output");
File inputDirectory = new File("input");
File[] files = inputDirectory.listFiles();
for (File inputFile : files) {
//Input
fis = new FileInputStream(inputFile);
byte[] content = new byte[(int) inputFile.length()];
fis.read(content);
Text key = new Text(inputFile.getName());
BytesWritable value = new BytesWritable(content);
//Output
Path outputPath = new Path(outputDirectory.getAbsolutePath()+"/"+inputFile.getName());
FileSystem hdfs = outputPath.getFileSystem(conf);
FSDataOutputStream dos …
Run Code Online (Sandbox Code Playgroud) 我知道,要从给定的绝对路径在Qt中创建一个新路径,您可以使用QDir::makepath()
as dir.makepath(path)
,就像在这个问题中所建议的那样.我使用它没有任何问题,它工作正常.我的问题是针对为什么开发人员不会提供静态函数来调用类似的方式QDir::makepath("/Users/me/somepath/");
.QDir
我不需要创建一个新实例.
我只能想到两个可能的原因:
1.开发人员"懒惰"或没有时间,所以他们没有添加一个,因为它不是绝对必要的.
2.调用QDir
它的实例也mkpath(path)
将被设置path
,因此它可以方便进一步使用 - 但我似乎无法找到任何提示,这是文档中的实际行为.
我知道我重复自己,但同样,我也没有需要帮助的中如何做到这一点,但是我作为很感兴趣,为什么一个人必须这样做的.谢谢你可能错过了任何理由.
我正在为Fuseki 2中的TDB数据集提供一个包含10-20个命名图的数据集。我想使用推理程序对我的数据进行推断。我想看到的行为是,在每个图中推断出的三元组应该出现在这些图中(尽管如果三元组也出现在默认图中也可以)。有没有简单的配置方法?我还没有找到与我要尝试匹配的任何配置示例。
我尝试过的配置与以下标准示例非常相似。
数据集TDB-> GraphTDB-> InfModel-> RDFDataset
我看到的数据的最终视图只是数据的很小一部分(似乎所有命名的图都沿着该管道放置在某个地方,只剩下很小的默认图)。使用tdb:unionDefaultGraph似乎对此没有影响。
prefix : <#> .
@prefix fuseki: <http://jena.apache.org/fuseki#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> .
@prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .
# Example of a data service with SPARQL query and update on an
# inference model. Data is taken from TDB.
## ---------------------------------------------------------------
## Service with only SPARQL query on an inference model.
## Inference model base data is in TDB.
<#service2> rdf:type fuseki:Service ;
fuseki:name "inf" ; …
Run Code Online (Sandbox Code Playgroud) 我坚持Kripke语义,并想知道是否有educational software
我可以测试语句的等价性等,因为我开始认为它更容易通过实例学习(即使在抽象变量上).
我会用的
do☐true,☐false,♢true,♢false评估值,如果是的话,从什么值集合({true,false}或者{必要,可能})?[1]
我想我读过所有Kripke models
使用的duality axiom
:
(☐A) - >(¬♢¬A)
即如果有必要,paytax
那么它是不允许的paytax
(不论它是否需要纳税......)
IE2.如果它earnmoney
不被允许不被允许earnmoney
(再次无论赚钱是否真的有必要,逻辑成立,到目前为止)
因为A-> B相当于¬A<-B让我们测试
¬☐A< - ♢¬A
没有必要,upvote
如果允许不这样做upvote
这个公理是双重的:
♢A->¬☐¬A
如果它允许earnmoney
那么它没有必要earnmoney
并非所有模态都表现相同,并且不同Kripke model
的模型更适合模拟一个模态而不是全部模态:不是所有模态都Kripke models
使用相同的模态axioms
.(经典量词也是模态吗?如果Kripke models
可以的话,可以对它们进行建模吗?)
我将通过常见公理列表,并试图找到使其看起来违反直觉或不必要假设的例子......
如果(必要的(赚钱金意味着支付))那么((赚钱的必要性)暗示(支付货币的必要性))
请注意,赚钱并不意味着纳税,暗示A-> B的谎言不影响公理的真值......
你花了很长时间才能说出我试图理解这一切的问题......随意编辑
如何计算大数阶乘数的最后几个非零数字?
从大到大,我的意思是n = 10 ^ 100或者其他东西
(编辑:10 ^ 100是n中'n'的大小!)
少数,我的意思是直到7-8 ...
我试着谷歌搜索它,发现这个 -
我试图将其扩展到最后2个非零数字或更多,但失败了......
我发现谷歌上的其他网站显示了如何计算最后x个数字,但不清楚,我无法理解它...
谁能帮我这个?
此外,我无法得到这个,99的最后两个非零数字!是64,所以我认为(199!/ 99!)的最后两个非零数字也应该是64,但它们结果是24,我知道我在这个中犯了一个非常大的逻辑错误,我只是不能把手指放在上面!
可能重复:
减少Scala中的循环?
在通过Scala For The Impatient进行工作时,我接受了以下练习:
Write a Scala equivalent for the Java loop for (int i = 10; i >= 0; i--) System.out.println(i);
我花了很长时间才提出以下解决方案:
for (i <- 1 to 10 reverse) {
println(i)
}
Run Code Online (Sandbox Code Playgroud)
然而,这让我想知道如何推断这样做的成本.反向方法是否进行了范围的O(n)遍历,还是用一些花式索引算法来装饰它?还有其他结构可以做得更好吗?
reasoning ×10
logic ×3
algorithm ×2
java ×2
allegrograph ×1
factorial ×1
fuseki ×1
hadoop ×1
import ×1
inference ×1
jena ×1
math ×1
modal-logic ×1
named-graphs ×1
performance ×1
python ×1
qdir ×1
qt ×1
rdf ×1
scala ×1
scala-2.9 ×1
semantic-web ×1
tdb ×1
unique ×1
uuid ×1