Tag: sparql

如何查询多个实体的特定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的新手,无法让它工作。 此外,还有比我目前的方法更好的查询方式吗?

Sparql Select Query适用于Sesame-Workbench但不适用于Java

我正在尝试创建一个Sparql-Query来获取与讲座相关的所有消息。 我是整个“语义网”故事的新手,所以如果使用命名空间完全错误,请耐心等待。 我尝试执行的查询是: PREFIX siocNS: PREFIX rdfPred: PREFIX purlPred: PREFIX purlPredLecture: <http://purl.org//lecture/> select ?post ?title ?content ?time ?creator where { ?post rdfPred:type siocNS:Post. ?post purlPred:title ?title. ?post purlPred:content ?content. ?post purlPred:created ?time. ?post purlPred:creator ?creator. ?post purlPred:context purlPredLecture:1337-7331. } 其中1337-7331是一个ID。 在Sesame-Workbench上,查询似乎工作正常(因为我得到了我预期的2行)。 在Java上,使用Jena,似乎我的QueryExecuion不正确。 这是我的代码: String prefix = “PREFIX siocNS: \n” + “PREFIX rdfPred: \n” + “PREFIX […]

如何获取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 ),但我似乎找不到任何具体的查询主题(所有结果变量的列表也将返回谓词和对象)。 任何帮助赞赏。

如何从Java将SPARQL / SPIN查询/规则转换为RDF结构?

我一直在使用TopQuadrant Composer免费版(TBC FE)在存储为RDF的OWL本体中嵌入SPARQL / SPIN规则(主要是SPIN构造函数)。 此过程的一部分是SPARQL源代码根据http://spinrdf.org/sp.html在http://spinrdf.org/sp中指定的模式在RDF结构中进行标记/编码。 正是这种结构实际上被RDF4J解释为运行SPIN规则。 我也使用RDF4J作为我的三重存储,推理器,SPARQL端点和SPIN规则引擎。 另外,我正在生成自定义Java代码和GUI来操纵我的数据和规则。 我的问题是我可以在Java中使用什么来将SPARQL / SPIN源代码编码为RDF ? 请注意,我不是问如何编码查询结果(在另一个stackoverflow问题/响应中回答),而是如何编码查询本身。 原因是我想从我自己的Java代码中启用SPIN规则的编辑,而不是完全依赖于TBC FE。 另请注意,我知道存储原始SPARQL查询文本的选项。 但是,我的经验是,未正确解释这一点,而正确解释了标记化/结构化的RDF。 因此,我必须使用结构化RDF。 我希望已经编写了很多用于编码的Java代码,可能是Apache Jena的一部分。 我只需要一个指向哪里看的指针。 谢谢! PS:这是由TBC FE编码的示例SPIN构造函数的开始。 它包括SPARQL / SPIN源代码的原始sp:文本和结构化RDF的开头(在sp:text块之后)。 这是我需要能够使用Java从SPARQL源代码生成的结构化RDF。 # [enabled] <http://www.disa.mil/dso/a2i/ontologies/PBSM/Interface/Pub7#Pub7Proposal_makeRxSCMPointSurface> construct an SCM Point Surface (zero radius) from supporting rx data items under an SCM receiver model CONSTRUCT { ?this soo:hasSCMReceiverModel ?receiverModelURI . […]

如何在java中构建SPARQL查询?

是否有一个库,它能够以编程方式构建SPARQL查询,如JPA中的CriteriaBuilder ,或构建类似于PreparedStatement for SQL的查询? 类似(对于SQL): 在Java中构建SQL字符串的最简洁方法

在Java代码中调用SPARQL查询(在DBPedia上)时出现HttpException错误

我使用Java代码的SPARQL端点有问题。 特别是,我有这个Java类: public class example { public static void main(String[] args) { String value = “http://dbpedia.org/resource/Fred_Guy”; example exam = example(); QueryExecution qe = exam.query(value); ResultSet results = ResultSetFactory.copyResults( qe.execSelect() ); } public QueryExecution query(String stringa){ ParameterizedSparqlString qs = new ParameterizedSparqlString( “” + “prefix dbpediaont: \n” + “prefix rdf: \n” + “\n” + “select ?resource where […]

使用在SPARQL查询中使用查询字符串外部声明的变量 – 使用JSP和Java Servlet

我有2个jsp页面。 在索引页面中,我选择一个下拉值并将所选值作为url参数传递给SearchResults页面。 http://localhost:8080/SearchResults.jsp?jobCat=InformationTechnology 我正在使用下面的代码捕获传递的参数InformationTechnology 。 查询应显示表单中所选值的结果。 (我正在选择一个工作类别,结果应显示所选工作类别下的候选人) String jobCategory = request.getParameter(“jobCat”); 以下是我的查询 String queryString = “Select ?a ?b”+ ” Where { ….”+ ” Filter (?a = “+ jobCategory +”)”+// jobCategory is the String variable ” }”; 但我得到ParseException错误。 com.hp.hpl.jena.query.QueryParseException: Encountered ” “in” “In “” at line 1, column 559. Was expecting one of: … … … […]

Java代码的SPARQL解析器

有没有简单的方法来解析java变量中的sparql查询,比如python中的Fyzz? 如何使用Jena或芝麻API?

检索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 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端点)。 我应该在这一次运行中使用耶拿的哪些部分? […]