def skipTriples(self, skip, graph):

        if not len(skip):
            return
        if skip.endswith("/"):
            skip = skip[:len(skip) - 1]
        print("skip %s" % skip)

        delcore = """PREFIX schema: <http://schema.org/>
        DELETE {?term ?p ?o}
        WHERE {
             ?term ?p ?o.
                    ?term a ?t.
                    FILTER NOT EXISTS {?term schema:isPartOf ?x}.
        }"""

        delext = """PREFIX schema: <http://schema.org/>
        DELETE {?s ?p ?o}
        WHERE {
            ?s a ?t;
            schema:isPartOf <%s>.
            ?s ?p ?o.
        }""" % skip

        if skip == "http://schema.org":
            q = delcore
        else:
            q = delext

        before = len(graph)

        processUpdate(graph, q)
示例#2
0
    def skipTriples(self,skip, graph):
        
        if not len(skip):
            return
        if skip.endswith("/"):
            skip = skip[:len(skip) -1]
        print("skip %s" % skip)

        delcore="""PREFIX schema: <http://schema.org/>
        DELETE {?term ?p ?o}
        WHERE {
             ?term ?p ?o.
                    ?term a ?t.
                    FILTER NOT EXISTS {?term schema:isPartOf ?x}.
        }"""
        
        delext ="""PREFIX schema: <http://schema.org/>
        DELETE {?s ?p ?o}
        WHERE {
            ?s a ?t;
            schema:isPartOf <%s>.
            ?s ?p ?o.
        }""" % skip
        

        if skip == "http://schema.org":
            q = delcore
        else:
            q = delext
        
        before = len(graph) 
        
        processUpdate(graph,q)
    def skipOddTriples(self, graph):

        delf = """
        DELETE {?s ?p ?o}
        WHERE {
            ?s ?p ?o.
            FILTER (! strstarts(str(?s), "http://schema.org")).
        }"""

        processUpdate(graph, delf)
示例#4
0
 def skipOddTriples(self, graph):
     
     delf = """
     DELETE {?s ?p ?o}
     WHERE {
         ?s ?p ?o.
         FILTER (! strstarts(str(?s), "http://schema.org")).
     }"""
     
     processUpdate(graph,delf)
    def doQueryUpdate(self, query_name, initBinds={}):
        """
		Given a sparql 1.1 update query, perform it. 
		"""

        query = self.queries[query_name]

        try:
            result = processUpdate(self.graph,
                                   self.prefixes + query,
                                   initBindings=initBinds,
                                   initNs=self.namespace)
            #result = parseUpdate(self.graph, self.prefixes + query, initBindings=initBinds, initNs=self.namespace)
            #self.graph.query(self.prefixes + query, initBindings=initBinds, initNs=self.namespace)

        except Exception as e:
            print("\nSparql query [%s] parsing problem: %s \n" %
                  (query_name, str(e)))
            return None

        return result
示例#6
0
"""

Process SPARQL Update

"""

import rdflib
from rdflib.plugins.sparql import processUpdate

g = rdflib.Graph()
g.load("foaf.rdf")

processUpdate(g, '''
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dbpedia: <http://dbpedia.org/resource/>
INSERT
    { ?s a dbpedia:Human . }
WHERE
    { ?s a foaf:Person . }
''')

for x in g.subjects(
        rdflib.RDF.type, rdflib.URIRef('http://dbpedia.org/resource/Human')):
    print x