Using a Prefix in RDFLIB

I would like to use a short prefix to denote the namespace in rdflib, but I'm having problems. I think the answer should be very simple. Here is the violation code:

g = rdflib.parse("some_rdf.rdf") rdf=rdflib.Namespace("http://www.w3.org/1999/02/22-rdf-syntax-ns#") print "Name Spaces:" for ns in g.namespaces(): print ns print "Matching Triples" print "length of type full uri",len([i for i in g.triples((None,rdflib.term.URIRef('http://www.w3.org/1999/02/22-rdf-syntax-ns#type'),None))]) print "length of type truncated uri",len([i for i in g.triples((None,rdflib.term.URIRef('rdf:type'),None))]) print "length of type , using namespace",len([i for i in g.triples((None,rdf.type,None))]) 

And the result:

 Name Spaces: ('xml', rdflib.term.URIRef('http://www.w3.org/XML/1998/namespace')) (u'foaf', rdflib.term.URIRef('http://xmlns.com/foaf/0.1/')) (u'z', rdflib.term.URIRef('http://www.zotero.org/namespaces/export#')) ('rdfs', rdflib.term.URIRef('http://www.w3.org/2000/01/rdf-schema#')) (u'bib', rdflib.term.URIRef('http://purl.org/net/biblio#')) (u'dc', rdflib.term.URIRef('http://purl.org/dc/elements/1.1/')) (u'prism', rdflib.term.URIRef('http://prismstandard.org/namespaces/1.2/basic/')) ('rdf', rdflib.term.URIRef('http://www.w3.org/1999/02/22-rdf-syntax-ns#')) (u'dcterms', rdflib.term.URIRef('http://purl.org/dc/terms/')) Matching Triples length of type full uri 132 length of type truncated uri 0 !!!This is wrong should be 132 length of type , using namespace 132 

What am I doing wrong?

+4
source share
1 answer

They, as you try to use it in the second case, are not supported by RDFLib. You could like ...

rdf=rdflib.Namespace("http://www.w3.org/1999/02/22-rdf-syntax-ns#")

and

rdflib.term.URIRef(rdf+'type')

or

rdflib.term.URIRef(rdf['type'])

I really like how they are expressed in your third case, why not stick to this?

BTW - The RDF namespace is already created in RDFLib, which you can do ...

 from rdflib.namespace import RDF #RDF <-- rdf.namespace.ClosedNamespace('http://www.w3.org/1999/02/22-rdf-syntax-ns#') 
+4
source

Source: https://habr.com/ru/post/1334947/


All Articles