Tag: jena

添加更复杂的子类公理

我偶然发现了另一个问题…… 我想实现与此类似的东西: 我想使用RDFList这样做,将必要的属性添加到列表中,然后调用方法createUnionClass(或createIntersectionClass)并将它们组合在一起。 然后,将使用addSuperClass()将此方法的结果添加到特定的ontClass中。 这是错的吗? 我从一些非常简单的东西开始,比如: RDFList rdfList = ontModel.createList(); rdfList.addProperty(ExampleResource1); rdfList.addProperty(ExampleResource2); UnionClass uc = ontModel.createUnionClass(null, rdfList); ExampleClass.addSuperClass(uc); 但结果不是subClassOf之前所说的两者的联合,而只是subClassOf为零。 任何帮助,将不胜感激。

在TDB Triple Store中加载RDF三元组时出错

我有一个问题问你: 我在TDB Triple Store中加载了我的文件RDF: Dataset dataset = TDBFactory.createDataset(directory); Model model = dataset.getNamedModel(“http://nameFile”); TDBLoader.loadModel(model, file ); 现在,我想实现一个程序,检查图表是否在三重商店。 我写了这段代码: String queryStr = “select * {graph { ?s ?p ?o }}”; Dataset dataset = TDBFactory.createDataset(directory); Query query = QueryFactory.create(queryStr); QueryExecution qexec = QueryExecutionFactory.create(query, dataset); qexec.getContext().set(TDB.symUnionDefaultGraph, true); /*Execute the Query*/ ResultSet results = qexec.execSelect(); if (!results.hasNext()) { Model model […]

读取OWL / XML的问题

我使用Jena从Java读取OWL / XML文件时遇到问题。 我在读取RDF / XML文件时没有问题,但每当我从Protege创建一个OWL / XML文件并尝试读取它时,Java都会给出以下错误:WARN [main](RDFDefaultErrorHandler.java:36)线程“main”中的exceptioncom.hp.hpl.jena.rdf.arp.impl.XMLHandler.endElement(XMLHandler.java:143)中的java.lang.NullPointerException 我用来检索RDF / XML的代码如下: OntModel ontModel = ModelFactory.createOntologyModel(); InputStream in = FileManager.get().open(inputFileName); if (in == null) { throw new IllegalArgumentException( “File: ” + inputFileName + ” not found”); } ontModel.read(in, “”); 此代码完美地适用于RDF / XML。 但是,我无法读取OWL / XML。 我看着互联网,我找不到任何东西。 如果有人给我指路,我真的很感激。 非常感谢

如何使用Jena API将资源与其他资源相关联

我创建了一个包含两个类的本体,第一个名为Father ,第二个是名为Son的子类。 我想使用Jena为类父设置以下条件 只有儿子。 有一些儿子。 然后我会对Son这样做: 有一些父亲。 我的第二个问题是我不知道如何将类Son的实例与使用Jena的Father类联系起来。 我知道使用Protégé操纵我的课程是可能的,但我想探索耶拿。

Apache Jena框架的推理示例存在问题

我有一个严重的问题,让任何推理器运行起来。 此外,文档中的示例: https : //jena.apache.org/documentation/inference/在此处不起作用。 我将示例转移到unit testing中,以便可以更容易地再现问题。 推理仅限于某些环境,如空间JDK等,或者我遇到了什么问题? 谢谢 这里的示例代码(作为javaunit testing): import static org.junit.Assert.assertNotNull; import java.io.PrintWriter; import java.util.Iterator; import org.junit.Before; import org.junit.Test; import com.hp.hpl.jena.rdf.model.InfModel; import com.hp.hpl.jena.rdf.model.Model; import com.hp.hpl.jena.rdf.model.ModelFactory; import com.hp.hpl.jena.rdf.model.Property; import com.hp.hpl.jena.rdf.model.Resource; import com.hp.hpl.jena.rdf.model.Statement; import com.hp.hpl.jena.rdf.model.StmtIterator; import com.hp.hpl.jena.reasoner.Derivation; import com.hp.hpl.jena.reasoner.rulesys.GenericRuleReasoner; import com.hp.hpl.jena.reasoner.rulesys.Rule; import com.hp.hpl.jena.vocabulary.RDFS; public class ReasonerTest { String NS = “urn:x-hp-jena:eg/”; // Build a […]

java(jena)的本体论

我正在做一些基于本体的项目。我想识别用户输入的文本的语义。 是否有任何可能的方法来完成我通过jena处理本体的任务?

如何获取Jena查询的所有主题?

假设我有一些jena查询对象: String query = “SELECT * WHERE{ ?s ?o …etc. }”; Query q = QueryFactory.create(query, Syntax.syntaxARQ); 在查询中获取三元组的所有主题的最佳方法是什么? 优选地,不必手动进行任何字符串解析/操作。 例如,给定一个查询 SELECT * WHERE { ?s ?p ?o; ?p2 ?o2. ?s2 ?p3 ?o3. ?s3 ?p4 ?o4. ?p5 ?o5. } 我希望能够返回一些看起来像的列表 [?s, ?s2, ?s3, ] 换句话说,我想要查询中所有主题的列表。 即使只有那些变量或文字/ uris的主题也会有用,但我想在查询中找到所有主题的列表。 我知道有方法可以返回结果变量( Query.getResultVars )和其他一些信息(参见http://jena.apache.org/documentation/javadoc/arq/com/hp/hpl/jena/query/Query.html ),但我似乎找不到任何具体的查询主题(所有结果变量的列表也将返回谓词和对象)。 任何帮助赞赏。

使用Jena以编程方式生成OWL类层次结构

我想通过提供向量以编程方式使用OWL生成本体。 我的目标是能够在Protégé中打开生成的OWL文件并使用Jena。 输入向量 我要通过的向量: [[layer, network layer, data link layer, physical layer], [network, computer network], [data link], [ontology, ontology extraction]]. 预期产出 输出应具有以下树状层次结构: layer -network layer -data link layer -physical layer network -computer network ontology -ontology extraction data link 层次结构,其中network layer在layer下面等等,是非常重要的。 这是我想要生成的文件的示例:

如何使用JENA创建owl文件?

我陷入了本体创作的中间。 我想用Java创建一个OWL文件,这是我的目标。 我已经创建了分层集群,但现在我必须在本体创建中使用这些集群。 提前致谢。 到目前为止我已经尝试过了。 我得到了狄金森的观点。 现在这是我的代码,我在线程“main”中获得Exception as Exception com.hp.hpl.jena.shared.BadURIException:只有格式良好的绝对URIrefs可以包含在RDF / XML输出中:代码:57 / REQUIRED_COMPONENT_MISSING在SCHEME中:缺少该方案所需的组件。 JenaOwl.java public class JenaOwl { static OntModel jenaModel = null; public static void main(String[] args) throws IOException { JenaOwl jo = new JenaOwl(); FileWriter fw = null; try { jenaModel = createModel(); } catch (Exception ex) { Logger.getLogger(JenaOwl.class.getName()).log(Level.SEVERE, null, ex); } […]

Jena / ARQ:模型,图形和数据集之间的差异

我开始使用Jena Engine,我想我已经掌握了语义是什么。 然而,我很难理解在Jena和ARQ中代表一堆三元组的不同方法: 你在开始时偶然发现的第一件事就是Model和文档说明它的RDF图的Jenas名称。 然而,当我想查询模型联合时,还有Graph似乎是必要的工具,但是它似乎没有与Model共享一个公共接口,尽管可以从Model中获取Graph 然后在ARQ中有DataSet ,它似乎也是某种三元组的集合。 当然,有些人在API中查看,我找到了以某种方式从一个转换为另一个的方法。 但是我怀疑它还有3个不同的界面用于同样的事情。 所以,问题是:这三者之间的关键设计差异是什么? 我什么时候应该使用哪一个? 特别是:当我想要保持单个三元组但是将它们视为一大堆(联合)时,我应该使用哪些数据结构(以及为什么)? 另外,当从一个“转换”到另一个时,我“松散”任何东西(例如, model.getGraph()以某种方式包含的信息少于model )?