C# - How to store and reuse queries
- by Jason Holland
I'm learning C# by programming a real monstrosity of an application for personal use. Part of my application uses several SPARQL queries like so:
const string ArtistByRdfsLabel = @"
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?artist
WHERE
{{
{{
?artist rdf:type <http://dbpedia.org/ontology/MusicalArtist> .
?artist rdfs:label ?rdfsLabel .
}}
UNION
{{
?artist rdf:type <http://dbpedia.org/ontology/Band> .
?artist rdfs:label ?rdfsLabel .
}}
FILTER
(
str(?rdfsLabel) = '{0}'
)
}}";
string Query = String.Format(ArtistByRdfsLabel, Artist);
I don't like the idea of keeping all these queries in the same class that I'm using them in so I thought I would just move them into their own dedicated class to remove clutter in my RestClient class.
I'm used to working with SQL Server and just wrapping every query in a stored procedure but since this is not SQL Server I'm scratching my head on what would be the best for these SPARQL queries. Are there any better approaches to storing these queries using any special C# language features (or general, non C# specific, approaches) that I may not already know about?