本文整理汇总了Python中rdflib.Graph.items方法的典型用法代码示例。如果您正苦于以下问题:Python Graph.items方法的具体用法?Python Graph.items怎么用?Python Graph.items使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类rdflib.Graph
的用法示例。
在下文中一共展示了Graph.items方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_recursive_list_detection
# 需要导入模块: from rdflib import Graph [as 别名]
# 或者: from rdflib.Graph import items [as 别名]
def test_recursive_list_detection():
g = Graph().parse(data="""
@prefix : <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
<> :value _:a .
_:a :first "turtles"; :rest _:a .
<> :value [ :first "turtles"; :rest _:b ] .
_:b :first "all the way down"; :rest _:b .
<> :value [ :first "turtles"; :rest _:c ] .
_:c :first "all the way down"; :rest _:a .
""", format="turtle")
for v in g.objects(None, RDF.value):
try:
list(g.items(v))
except ValueError as e:
pass
else:
assert False, "Expected detection of recursive rdf:rest reference"
示例2: read_manifest
# 需要导入模块: from rdflib import Graph [as 别名]
# 或者: from rdflib.Graph import items [as 别名]
def read_manifest(f):
def _str(x):
if x is not None:
return str(x)
return None
g = Graph()
g.load(f, format='turtle')
for m in g.subjects(RDF.type, MF.Manifest):
for col in g.objects(m, MF.include):
for i in g.items(col):
for x in read_manifest(i):
yield x
for col in g.objects(m, MF.entries):
for e in g.items(col):
if not ((e, DAWG.approval, DAWG.Approved) in g or
(e, DAWG.approval, DAWG.NotClassified) in g):
continue
t = g.value(e, RDF.type)
tester = query_test
if t in (MF.ServiceDescriptionTest, MF.ProtocolTest):
continue # skip tests we do not know
name = g.value(e, MF.name)
comment = g.value(e, RDFS.comment)
if t in (MF.QueryEvaluationTest, MF.CSVResultFormatTest):
a = g.value(e, MF.action)
query = g.value(a, QT.query)
data = g.value(a, QT.data)
graphdata = list(g.objects(a, QT.graphData))
res = g.value(e, MF.result)
syntax = True
elif t in (MF.UpdateEvaluationTest, UP.UpdateEvaluationTest):
a = g.value(e, MF.action)
query = g.value(a, UP.request)
data = g.value(a, UP.data)
graphdata = []
for gd in g.objects(a, UP.graphData):
graphdata.append((g.value(gd, UP.graph),
g.value(gd, RDFS.label)))
r = g.value(e, MF.result)
resdata = g.value(r, UP.data)
resgraphdata = []
for gd in g.objects(r, UP.graphData):
resgraphdata.append((g.value(gd, UP.graph),
g.value(gd, RDFS.label)))
res = resdata, resgraphdata
syntax = True
tester = update_test
elif t in (MF.NegativeSyntaxTest11, MF.PositiveSyntaxTest11):
query = g.value(e, MF.action)
if t == MF.NegativeSyntaxTest11:
syntax = False
else:
syntax = True
data = None
graphdata = None
res = None
elif t in (MF.PositiveUpdateSyntaxTest11,
MF.NegativeUpdateSyntaxTest11):
query = g.value(e, MF.action)
if t == MF.NegativeUpdateSyntaxTest11:
syntax = False
else:
syntax = True
data = None
graphdata = None
res = None
tester = update_test
else:
print "I dont know DAWG Test Type %s" % t
continue
yield tester, (e, _str(name), _str(comment),
_str(data), graphdata, _str(query),
res, syntax)
示例3: read_manifest
# 需要导入模块: from rdflib import Graph [as 别名]
# 或者: from rdflib.Graph import items [as 别名]
def read_manifest(f, base=None, legacy=False):
def _str(x):
if x is not None:
return text_type(x)
return None
g = Graph()
g.load(f, publicID=base, format='turtle')
for m in g.subjects(RDF.type, MF.Manifest):
for col in g.objects(m, MF.include):
for i in g.items(col):
for x in read_manifest(i):
yield x
for col in g.objects(m, MF.entries):
for e in g.items(col):
approved = ((e, DAWG.approval, DAWG.Approved) in g or
(e, DAWG.approval, DAWG.NotClassified) in g or
(e, RDFT.approval, RDFT.Approved) in g)
# run proposed tests
# approved |= (e, RDFT.approval, RDFT.Proposed) in g
# run legacy tests with no approval set
if legacy:
approved |= ((e, DAWG.approval, None) not in g and
(e, RDFT.approval, None) not in g)
if not approved:
continue
_type = g.value(e, RDF.type)
# if _type in (MF.ServiceDescriptionTest, MF.ProtocolTest):
# continue # skip tests we do not know
name = g.value(e, MF.name)
comment = g.value(e, RDFS.comment)
data = None
graphdata = None
res = None
syntax = True
if _type in (MF.QueryEvaluationTest, MF.CSVResultFormatTest):
a = g.value(e, MF.action)
query = g.value(a, QT.query)
data = g.value(a, QT.data)
graphdata = list(g.objects(a, QT.graphData))
res = g.value(e, MF.result)
elif _type in (MF.UpdateEvaluationTest, UP.UpdateEvaluationTest):
a = g.value(e, MF.action)
query = g.value(a, UP.request)
data = g.value(a, UP.data)
graphdata = []
for gd in g.objects(a, UP.graphData):
graphdata.append((g.value(gd, UP.graph),
g.value(gd, RDFS.label)))
r = g.value(e, MF.result)
resdata = g.value(r, UP.data)
resgraphdata = []
for gd in g.objects(r, UP.graphData):
resgraphdata.append((g.value(gd, UP.graph),
g.value(gd, RDFS.label)))
res = resdata, resgraphdata
elif _type in (MF.NegativeSyntaxTest11, MF.PositiveSyntaxTest11):
query = g.value(e, MF.action)
syntax = _type == MF.PositiveSyntaxTest11
elif _type in (MF.PositiveUpdateSyntaxTest11,
MF.NegativeUpdateSyntaxTest11):
query = g.value(e, MF.action)
syntax = _type == MF.PositiveUpdateSyntaxTest11
elif _type in (RDFT.TestNQuadsPositiveSyntax,
RDFT.TestNQuadsNegativeSyntax,
RDFT.TestTrigPositiveSyntax,
RDFT.TestTrigNegativeSyntax,
RDFT.TestNTriplesPositiveSyntax,
RDFT.TestNTriplesNegativeSyntax,
RDFT.TestTurtlePositiveSyntax,
RDFT.TestTurtleNegativeSyntax,
):
query = g.value(e, MF.action)
syntax = _type in (RDFT.TestNQuadsPositiveSyntax,
RDFT.TestNTriplesPositiveSyntax,
RDFT.TestTrigPositiveSyntax,
RDFT.TestTurtlePositiveSyntax)
elif _type in (RDFT.TestTurtleEval, RDFT.TestTurtleNegativeEval,
RDFT.TestTrigEval, RDFT.TestTrigNegativeEval):
query = g.value(e, MF.action)
res = g.value(e, MF.result)
#.........这里部分代码省略.........