PREFIX foaf: PREFIX dct: PREFIX schema: PREFIX xsd: CONSTRUCT { GRAPH ?graph { ?graph dct:title ?productName ; foaf:primaryTopic ?product . ?product a schema:Product ; schema:identifier ?productID ; dct:title ?productName ; schema:name ?productName ; schema:provider ?supplier ; schema:category ?category ; schema:description ?quantityPerUnit ; schema:price ?unitPrice . # ?unitsInStock ; # ?unitsOnOrder ; # ?reorderLevel ; # ?discontinued - schema:Discontinued } } WHERE { ?product_row <#productID> ?productID ; <#productName> ?productName ; <#supplierID> ?supplierID ; <#categoryID> ?categoryID ; <#quantityPerUnit> ?quantityPerUnit ; <#unitPrice> ?unitPriceString ; <#unitsInStock> ?unitsInStockString ; <#unitsOnOrder> ?unitsOnOrderString ; <#reorderLevel> ?reorderLevelString ; <#discontinued> ?discontinuedString . BIND (uri(concat(str($base), "products/")) AS ?container) BIND(uri(concat(str(?container), encode_for_uri(?productID), "/")) AS ?graph) BIND(uri(concat(str(?graph), "#this")) AS ?product) BIND(uri(concat(str($base), "suppliers/", encode_for_uri(?supplierID), "/#this")) AS ?supplier) BIND(uri(concat(str($base), "categories/", encode_for_uri(?categoryID), "/#this")) AS ?category) BIND (STRDT(?unitPriceString, xsd:float) AS ?unitPrice) BIND (STRDT(?unitsInStockString, xsd:integer) AS ?unitsInStock) BIND (STRDT(?unitsOnOrderString, xsd:integer) AS ?unitsOnOrder) BIND (STRDT(?reorderLevelString, xsd:integer) AS ?reorderLevel) BIND (STRDT(?discontinuedString, xsd:integer) AS ?discontinued) }