fragment_downloaded_cb({"url":"tutorial.html#optional-data","fragment":"Optional data\nAs we have seen, the graph pattern provided in SELECT queries match as\na whole, stored RDF data either is a match (and becomes a possible solution),\nor it does not. Sometimes the available data is not all that regular, so it\nis desirable to create a graph pattern that can find solutions where some\nvariables are left blank.\nThe OPTIONAL clause can be used for this:\nThis query will always return all music pieces, but as the song's nmm:performer\nproperty is obtained inside the OPTIONAL clause, it does not become mandatory\nto be part of the set of solutions. Contrast with:\nWhich will only return music pieces that have a nmm:performer.\nIt is worth pointing out that the content of OPTIONAL { } is itself also a graph\npattern, so it also either matches as a whole or it does not. When fetching multiple\noptional properties, it is a common pitfall to do:\nIf there are multiple optional pieces of data, these must happen in separate\nOPTIONAL clauses:\n"});