-
Notifications
You must be signed in to change notification settings - Fork 589
Closed
Description
Hi, sorry to bother and to double-post (this here), but the more I think about it, the less I think it's intended behaviour:
In the following minimal test case:
from rdflib import Graph, Namespace, Literal, RDF
base = "http://test.com/ns"
foobar = Namespace("http://test.com/ns#")
g = Graph(base=base)
g.bind('foobar', foobar)
g.add((foobar.something, RDF.type, Literal('Blah')))
g.add((foobar.something, foobar.contains, Literal('a property')))
g.add((foobar.anotherthing, RDF.type, Literal('Blubb')))
g.add((foobar.anotherthing, foobar.contains, Literal('another property')))
print(g.serialize(format='turtle').decode("utf-8"))I get
@base <http://test.com/ns> .
@prefix foobar: <http://test.com/ns#> .
<#anotherthing> a "Blubb" ;
ns1:contains "another property" .
ns1:something a "Blah" ;
ns1:contains "a property" .what I'd expecte is more like
@base <http://test.com/ns> .
@prefix foobar: <http://test.com/ns#> .
<#anotherthing> a "Blubb" ;
foobar:contains "another property" .
<#something> a "Blah" ;
foobar:contains "a property" .So either there is something I fundamentally don't understand about RDFLib and how to use namespaces, or there's something funky going on.
ns1, not being defined in the beginning, can't be resolved correctly, right?
Also, I'm not clear, why <#anotherthing> refers to @base while ns1:something (in opposition to <#something>) refers to the @prefix foobar.
If you could tell me what I'm doing wrong, I'd be very grateful! But also, this might be an indication that the documentation on that part is not 100% clear. :)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels