Return to Snippet

Revision: 21883
at December 22, 2009 15:42 by magicrebirth


Initial Code
#### notes: 
## in order to make the sparql query work with the literals, I modified all the rdf source files!!!
## they had the <rdf:datatype="http://www.w3.org/2001/XMLSchema#string"> datatype, I just replaced it with an unnamed literal

import rdflib


from rdflib.Graph import Graph
from rdflib import Namespace

g = Graph()

myfile ='/Users/mac/Documents/Ontologies/sentence_instances_8_12_08.owl'

g.parse(myfile, format="xml")
print "the lenght of the graph is: ", len(g)



result = g.query("""PREFIX phil: <http://myontology.owl/>
                    PREFIX rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
                          SELECT ?x ?p
                          WHERE { ?s phil:HAS-NUMBER-REFERENCE ?p .  ?s phil:HAS-STRING-CONTENT ?x . } """ 
                          )


print "Query result: ", len(result)

dict = {}

#serialize the results
for r in result.serialize('python'):
    dict[r[1].__str__()] = r[0].__str__()


print "The dictionary has collapsed %s total sentences into %s elements" % (len(result), len(dict.keys()))

Initial URL


Initial Description


Initial Title
Query an RDF graph

Initial Tags


Initial Language
Python