Tag: semantic web

如何查询多个实体的特定DBpedia资源/页面?

我有许多DBpedia页面的链接,如: http://dbpedia.org/resource/Harry_Potter http://dbpedia.org/resource/Twilight_(series) http://dbpedia.org/resource/Bible http://dbpedia.org/resource/Manga 我想为它们中的每一个获取Abstract和Thumbnail实体。 我可以单独使用它们: 对于摘要: PREFIX dbo: PREFIX res: PREFIX rdf: PREFIX rdfs: SELECT ?label WHERE { dbo:abstract ?label . FILTER (lang(?label) = \’en\’)} 对于缩略图: PREFIX dbo: PREFIX res: PREFIX rdf: PREFIX rdfs: SELECT ?thumbnail WHERE { dbo:thumbnail ?thumbnail} 是否可以将上述两个查询合并为一个查询。 我是SPARQL的新手,无法让它工作。 此外,还有比我目前的方法更好的查询方式吗?

如何获取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来从我给出的算法中返回一个值,然后对该值进行比较,例如, String rule = “[exRule: (?d rdf:type ex:abc)” + “<-" + // …extract ?a, ?b to use as inputs to the rule "greaterThan(myBuiltIn(?a, ?b), 1)" + // Is return value greater than 1 "]"; 所以,首先, Jena文档说最简单的实验方法是查看builtins目录中的示例,但是我的安装中似乎没有这个,我在Windows 7上使用Jena 2.6.4我在哪里可以找到这个? 我需要从其他地方下载吗? 其次,我不确定如何从我的内置中获取返回值。 如果我只是使用硬连线值调用myBuiltIn(2, 1)我知道它被调用,因为我添加了一些调试输出到内置的bodyCall()方法。 但是,如果我将它传递给greaterThan() ,那么我就不会再看到它了。 还在被叫吗?

检索OWL交集类隐含的超类

OWL本体可以具有类A,B和C以及公理(在DL表示法中): A⊑(B⊓C) 或者近似曼彻斯特OWL语法: subClassOf (B 和 C) 从逻辑上讲,A是B的子类,A是C的子类,但是三元组 A rdfs:subClassOf B A rdfs:subClassOf C 不一定存在于OWL本体的RDF序列化中。 例如,考虑Protégé中这个非常简单的本体及其在RDF / XML和Turtle中的RDF序列化: @prefix : . @prefix rdfs: . @prefix owl: . @prefix xsd: . @prefix rdf: . a owl:Ontology . :B a owl:Class . :C a owl:Class . :A a owl:Class ; rdfs:subClassOf [ a owl:Class ; owl:intersectionOf ( […]

我如何为Jena的Ontology添加一些三倍?

我有class1 instance2和class2 instance2 。 我也在我的本体中定义了HasName(object property) 。 现在,如何通过jena将triple( instance1 HasName instance2 )添加到我的本体?

使用Jena在DBpedia上创建SPARQL查询

我试图使用Jena创建一个SPARQL查询来查询DBpedia。 当我将它与独立工具(Twinkle)一起使用时,查询正在工作,但当我将其插入此Java代码时,它返回一个空集。 String sparqlQueryString1 = “PREFIX dbont: ” + “PREFIX dbp: ” + “PREFIX geo: ” + ” SELECT ?musician ?place” + ” FROM” + ” WHERE { ” + ” ?musician dbont:birthPlace ?place .” + ” }”; Query query = QueryFactory.create(sparqlQueryString1); QueryExecution qexec = QueryExecutionFactory.sparqlService(“http://dbpedia.org/sparql”, query); ResultSet results = qexec.execSelect(); ResultSetFormatter.out(System.out, results, query); qexec.close() […]

使用Jena TDB在本地加载DBpedia?

我需要对DBpedia执行查询: SELECT DISTINCT ?poi ?lat ?long ?photos ?template ?type ?label WHERE { ?poi ?label . ?poi ?lat . ?poi ?long . ?poi ?photos . OPTIONAL {?poi ?template } . OPTIONAL {?poi ?type } . FILTER ( ?lat > x && ?lat z && ?long < ω && langMatches( lang(?label), "EN" )) } 我猜这些信息分散在不同的转储(.nt)文件中,不知何故,SPARQL端点为我们提供了结果集。 我需要在本地下载这些不同的.nt文件(不是所有的DBpedia),只执行一次我的查询并在本地存储结果(我不想使用SPARQL端点)。 我应该在这一次运行中使用耶拿的哪些部分? […]