- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用本地 RDF 图创建 SPARQL 查询。但它不起作用。我已经包含了我的代码,下面是我的代码。
我有两个类(class),分别称为“学生”和“大学”。学生类有两个属性(enrolledOn 和 StudiesAt)。 University 类还有两个属性(UniversityLocation 和 UniversityRanking)。此外,我还输入了一些数据(RDF 三元组)。 Student 类和 University 类各有三个数据实体。
我的 SPARQL 查询位于底部。我想选择所有在排名前 10 的大学学习的学生。但目前,我的 SPARQL 查询没有返回任何内容。该查询应返回 Khalil 和 Ahmed。
任何帮助将不胜感激。谢谢。
我的代码:
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)
这就是我运行上述代码后三元组在图中的存储方式:
=========================STUDENT class==================================
Subject Predicate Object
========================================================================
Harith enrolledOn MScComputerScience
Harith studiesAt Queen_Mary
Khalil enrolledOn BScComputerScience
Khalil studiesAt Oxford_University
Ahmed enrolledOn BScComputerScience
Ahmed studiesAt Oxford_University
=============================UNIVERSITY class=======================
Subject Predicate Object
===============================================================
Queen_Mary UniversityLocation London
Queen_Mary UniversityRanking 36
City_University UniversityLocation London
City_University UniversityRanking 43
Oxford_University UniversityLocation Oxford
Oxford_University UniversityRanking 2
最佳答案
这并不是一个真正的答案,但除非您的 RDFLib 使用超过 3-4 年,否则您的代码可以简单得多:
from rdflib import Graph
#=====================data for STUDENT class==============================
rdf_xml_Student_data = """<?xml version="1.0"?> ... <snip>"""
#=====================data for UNIVERSITY class==============================
rdf_xml_University_data = """<?xml version="1.0"?> ... <snip>"""
# -- (part1) create and RDF store in memory --
g = Graph()
g.parse(data=rdf_xml_Student_data)
g.parse(data=rdf_xml_University_data)
#===========================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)
关于python - 使用本地 RDF 存储的 SPARQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16123096/
来自 RDF Schema 1.1 2.4 rdfs:Datatype rdfs:Datatype is the class of datatypes. All instances of rdfs:D
我遇到了books ontology ,在 owl 的底部文档,我们有: A reservation has been made by a person for a boo
在 RDF/XML 文件中具有属性的订单是否重要?换句话说,以下两个相同吗? 1 2 2 1 最佳答案 是的,RDF 在数学上被定义为一组三元组,因此这些三元组在您使用
我刚开始学习 RDF,我的问题是: 空白节点的目的是什么? 例子: ex:John foaf:knows _:p1 _:p1 foaf:birthDate 04-21 这
让我们看看这个例子:http://dbpedia.org/page/Berlin “owl:sameAs”和“is owl:sameAs of”有什么区别 最佳答案 owl:sameAs 是一个对称属
许多数据集都有变化的历史。将历史数据作为关联数据提供可能是一个挑战。我正在考虑的一般情况是,数据集包含有关具有可以随时间变化的属性的事物的数据。一个例子可能是温莎城堡的历史:它过去有很多配置,但它仍然
我正在使用 MarkLogic 8.0-6.3 使用 sem:rdf-load 从 RDF 文件生成三元组时很少有三元组没有被创建。 我已经粘贴了 RDF 文件内容、生成的三元组和我用来加载文件的查询
在这里完成 RDF 新手,我正在努力理解如何创建合理且可重用的谓词。我问了我们公司的几位专家,但他们的谓词(被迫)通过复制对象是唯一的(例如 woman,has_a_bag,purse 与 woman
谁能给我一个 RDF 中具体化的简单例子?我想看看我是否理解正确。 例如,我提出以下案例 Tolkien -> wrote -> Lord of the rings /|\
我想对如下所示的合作伙伴关系进行建模,我以标记属性图的格式表示。 我想使用RDF语言来表达上面的图,特别是我想了解是否可以表达“loves”边的标签(这是一篇文章/信件的URI)。 我是RDF新手,我
我在构建 Project Gutenberg 目录的 SPARQL 查询时遇到困难(可在页面底部的 Gutenberg Feeds 获取)。我知道我对 SparQL/RDF 等如何工作缺乏了解。实际上
我正在用 RDF 创建一个 Material 集合。我遇到了两种处理度量单位的方法: 通过将描述性名称链接到 RDF 属性: prop:density prop:hasUnits "kg/m
RDF:Property 是否可以包含其他属性以及 rdf:range 和 rdf:domain。例如,您是否可以拥有以下内容: This is a member of
我对 RDF 和 RDF Schema (RDFS) 有点困惑。我读过一些文档,其中提到 rdfs 是为 RDF 定义词汇表。 根据这个定义,我可以说 RDFS 是像 OWL 或 Dublin Cor
rdf:resource、rdf:about 和 rdf:ID 之间在概念上有什么区别。我做了一些调查,但我还不清楚它们之间的区别。例如,第一次声明资源时是否使用rdf:ID,rdf:resource
这是rdf代码: 42 我需要得到号码 "42" .我试过这个: PREFIX soton: PREFIX skos: ?location skos:notation rdf:
关于语义网的初学者问题。 我有一个颜色知识库,其中包括相似的颜色、颜色修饰符(暗、亮、~ish 等)、颜色关系(更深、更亮)、颜色同义词等。我想弄清楚 RDF/OWL 是否是一个操作(主要是查询)这个
有什么办法可以加快 rdf 文件加载到 Sesame 中的速度吗?我有 N-triple 格式的文件,大小从几 MB 到几 GB。我已经尝试了 Sesame Cook Book 中的前三种方法,但无济
例如,这句话: "I give John a book." 使其成为一组三元组: I give John. John hasIndirect book. book count 1. 或者,它可以是:
在 RDF 图的 Turtle 序列化中,我有很多这样的三元组(很多个体,都有一个共同的类型值): :A a :b . :B a :b . :C a :b . :D a :b . # … :Z a :
我是一名优秀的程序员,十分优秀!