Tôi đang cố mã hóa một số dữ liệu thực vật ở định dạng Turtle và đọc dữ liệu này từ Python bằng cách sử dụng RDFLib. Tuy nhiên, tôi đang gặp rắc rối, và tôi không chắc chắn nếu đó là vì Rùa của tôi không đúng định dạng hoặc tôi là misusing RDFLib.Đọc tệp Rùa/N3 RDF bằng Python
dữ liệu thử nghiệm của tôi là:
@PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@PREFIX p: <http://www.myplantdomain.com/plant/description> .
p:description a rdfs:Property .
p:name a rdfs:Property .
p:language a rdfs:Property .
p:value a rdfs:Property .
p:gender a rdfs:Property .
p:inforescence a rdfs:Property .
p:color a rdfs:Property .
p:sense a rdfs:Property .
p:type a rdfs:Property .
p:fruit a rdfs:Property .
p:flower a rdfs:Property .
p:dataSource a rdfs:Property .
p:degree a rdfs:Property .
p:date a rdfs:Property .
p:person a rdfs:Property .
p:c2a7b9a3-c54a-41f5-a3b2-155351b3590f
p:description [
p:name [
p:kingdom "Plantae" ;
p:division "Pinophyta" ;
p:class "Pinopsida" ;
p:order "Pinales" ;
p:family "Pinaceae" ;
p:genus "Abies" ;
p:species "A. alba" ;
p:language "latin" ;
p:given_by [
p:person p:source/Philip_Miller ;
p:start_date "1923-1-2"^^<http://www.w3.org/2001/XMLSchema#date>
]
] ;
p:name [
p:language "english" ;
p:value "silver fir"
] ;
p:flower [
p:gender "male"@en ;
p:inflorescence "catkin"@en ;
p:color "brown"@en ;
p:color "yellow"@en ;
p:sense "straight"@en
] ;
p:flower [
p:gender "female"@en ;
p:inflorescence "catkin"@en ;
p:color "pink"@en ;
p:color "yellow"@en ;
p:sense "straight"@en
] ;
p:fruit [
p:type "cone"@en ;
p:color "brown"@en
]
] .
Và Python của tôi là:
import rdflib
g = rdflib.Graph()
#result = g.parse('trees.ttl')
#result = g.parse('trees.ttl', format='ttl')
result = g.parse('trees.ttl', format='n3')
print len(g)
for stmt in g:
print stmt
nào mang lại cho tôi những lỗi:
ValueError: Found @PREFIX when expecting a http://www.w3.org/2000/10/swap/grammar/n3#document . todoStack=[['http://www.w3.org/2000/10/swap/grammar/n3#document', []]]
Tôi đã thử cách thay đổi parse() các thông số, nhưng mọi thứ đều cho tôi một lỗi. Tôi đã tìm thấy rất ít ví dụ về cách phân tích Rùa. Tôi đang làm gì sai?
Cảm ơn. Thay đổi dòng đó thành
@ Chris, tốt để biết, cảm ơn! –