この RDF を考えると:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rdf:RDF [<!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
<!ENTITY rdfs 'http://www.w3.org/2000/01/rdf-schema#'>
<!ENTITY xsd 'http://www.w3.org/2001/XMLSchema#'>]>
<rdf:RDF xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dnr="http://www.dotnetrdf.org/configuration#"
xml:base="http://www.example.org/"
xmlns:ns1="http://www.example.org/startTime"
xmlns:ns2="http://www.example.org/endTime">
<rdf:Description rdf:about="Fadi">
<ns0:eat xmlns:ns0="http://example.org/">Apple</ns0:eat>
<ns1:startTime>00:01:38</ns1:startTime>
<ns2:endTime>00:01:39</ns2:endTime>
</rdf:Description>
</rdf:RDF>
私はsparqlクエリを作成しようとしていますが、このクエリを作成すると:
SELECT * WHERE { { ?s ?p ?o } UNION { GRAPH ?g { ?s ?p ?o } } }
私は答えを得る。しかし、私がこれを試したとき:
SELECT * WHERE { ?s ?p ?o . FILTER (regex(?o, 'Apple','i')) }
私はノーを得ます。
クエリで startTime と endTime を取得する必要があります。どのように記述すればよいですか?!
OP コメントからのコードを含める
Graph myGraph = new Graph();
FileLoader.Load(myGraph, "C:\\Users\\hasoOn\\Desktop\\tt.RDF");
TripleStore store = new TripleStore();
store.Add(myGraph);
SparqlQueryParser parser = new SparqlQueryParser();
SparqlQuery q = parser.ParseFromString("PREFIX ex: <example.org/>; SELECT * WHERE { ex:Fadi ?p ?o }");
SparqlResultSet results = (SparqlResultSet)store.ExecuteQuery(q);