Python中文
首页
教程
问答
标签
搜索
登录
注册
使用本地RDF的SPARQL查询
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我尝试使用本地RDF图创建SPARQL查询。但它不起作用。我已经包括我的代码下面是我的代码。在</p> <p>我有两个班,叫学生班和大学班。student类有两个属性(entrolledon和studiesAt)。大学类还有两个属性(UniversityLocation和UniversityRanking)。此外,我还输入了一些数据(RDF三元组)。学生班级和大学班级都有<strong>三个</strong>数据实体。在</p> <p>我的SPARQL查询在底部。我想<strong>选择在排名前十的大学学习的所有学生</strong>。但目前,我的SPARQL查询没有返回任何内容。查询应该返回Khalil和Ahmed。在</p> <p>任何帮助都将不胜感激。谢谢您。在</p> <p>我的代码:</p> <pre><code>import rdfextras import rdflib from rdflib.graph import Graph, Store, URIRef, Literal from rdflib.namespace import Namespace, RDFS from rdflib import plugin from SPARQLWrapper import SPARQLWrapper, JSON rdflib.plugin.register('sparql', rdflib.query.Processor, 'rdfextras.sparql.processor', 'Processor') rdflib.plugin.register('sparql', rdflib.query.Result, 'rdfextras.sparql.query', 'SPARQLQueryResult') #=====================data for STUDENT class============================== rdf_xml_Student_data = """<?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Student="http://www.semanticweb.org/ontologies/2013/2/Coursework.owl/Thing/Person/Student#"> <rdf:Description rdf:about="http://www.semanticweb.org/ontologies/2013/2/Coursework.owl/Thing/Person/Student/Harith"> <Student:enrolledOn>MScComputerScience</Student:enrolledOn> <Student:studiesAt>Queen_Mary</Student:studiesAt> </rdf:Description> <rdf:Description rdf:about="http://www.semanticweb.org/ontologies/2013/2/Coursework.owl/Thing/Person/Student/Khalil"> <Student:enrolledOn>BScComputerScience</Student:enrolledOn> <Student:studiesAt>Oxford_University</Student:studiesAt> </rdf:Description> <rdf:Description rdf:about="http://www.semanticweb.org/ontologies/2013/2/Coursework.owl/Thing/Person/Student/Ahmed"> <Student:enrolledOn>BScComputerScience</Student:enrolledOn> <Student:studiesAt>Oxford_University</Student:studiesAt> </rdf:Description> </rdf:RDF> """ #=====================data for UNIVERSITY class============================== rdf_xml_University_data = """<?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:University="http://www.semanticweb.org/ontologies/2013/2/Coursework.owl/Thing/University#"> <rdf:Description rdf:about="http://www.semanticweb.org/ontologies/2013/2/Coursework.owl/Thing/University/Queen_Mary"> <University:UniversityLocation>London</University:UniversityLocation> <University:UniversityRanking>36</University:UniversityRanking> </rdf:Description> <rdf:Description rdf:about="http://www.semanticweb.org/ontologies/2013/2/Coursework.owl/Thing/University/City_University"> <University:UniversityLocation>London</University:UniversityLocation> <University:UniversityRanking>43</University:UniversityRanking> </rdf:Description> <rdf:Description rdf:about="http://www.semanticweb.org/ontologies/2013/2/Coursework.owl/Thing/University/Oxford_University"> <University:UniversityLocation>Oxford</University:UniversityLocation> <University:UniversityRanking>2</University:UniversityRanking> </rdf:Description> </rdf:RDF> """ # -- (part1) create and RDF store in memory -- memory_store = plugin.get('IOMemory', Store)() graph_id = URIRef(u'http://example.com/foo') g = Graph(store=memory_store, identifier=graph_id) g.bind('ex','http://example.com/') g.parse(data=rdf_xml_Student_data, format="application/rdf+xml") g.parse(data=rdf_xml_University_data, format="application/rdf+xml") #===========================SPARQL QUERY==================================== # QUERY - select all students who study at top 10 ranked universities results = g.query("""PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX student: <http://www.semanticweb.org/ontologies/2013/2/Coursework.owl/Thing/Person/Student#> PREFIX university: <http://www.semanticweb.org/ontologies/2013/2/Coursework.owl/Thing/University#> SELECT ?stu WHERE { ?uni university:UniversityRanking ?UniversityRanking. ?stu student:studiesAt ?uni. FILTER ( ?UniversityRanking < 10) } """) print("\n============QUERY RESULTS===============\n") for row in results.result: print(row) </code></pre> <p>这是运行上述代码后,三元组将如何存储在图形中:</p> ^{pr2}$
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您应该查看Robv在<a href="https://stackoverflow.com/questions/4827691/how-do-i-make-a-sparql-query-to-find-the-highest-value-for-a-property">this question</a>上的答案,将您的UniversityRanking值转换为一个整数。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
9 回答
如何添加表示整数的擦边字符串?
3 回答
如何添加要在Bokeh中使用的新font.ttf文件?
7 回答
如何添加要显示的矩阵XY轴编号和XY轴
7 回答
如何添加计数?
1 回答
如何添加计数器函数?
1 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
7 回答
如何添加计数器来跟踪while循环中的月份和年份?
9 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
2 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
3 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
7 回答
如何添加评论拉梅尔亚姆
7 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
6 回答
如何添加谷歌地点自动完成到Flask?
2 回答
如何添加超时、python discord bot
6 回答
如何添加超过1dp的检查
4 回答
如何添加距离方法
6 回答
如何添加跟随游戏的敌人精灵
1 回答
如何添加路径以便python可以找到程序?
9 回答
如何添加身份验证/安全性以使用happybase访问HBase?
10 回答