mwx23 / sparql.anything

SPARQL Anything is a system for Semantic Web re-engineering that allows users to ... query anything with SPARQL.

Home Page:https://sparql-anything.cc/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DOI License How to Java 11 Java 14 Java 14

SPARQL Anything

SPARQL Anything is a system for Semantic Web re-engineering that allows users to ... query anything with SPARQL.

Main features:

Concept

SPARQL Anything uses a single generic abstraction for all data source formats called Facade-X.

Facade-X

Facade-X is a simplistic meta-model used by SPARQL Anything transformers to generate RDF data from diverse data sources. Intuitively, Facade-X uses a subset of RDF as a general approach to represent the source content as-it-is but in RDF. The model combines two types of elements: containers and literals. Facade-X always has a single root container. Container members are a combination of key-value pairs, where keys are either RDF properties or container membership properties. Instead, values can be either RDF literals or other containers. This is a generic example of a Facade-X data object (more examples below):

@prefix fx: <http://sparql.xyz/facade-x/ns/> .
@prefix xyz: <http://sparql.xyz/facade-x/data/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
[] a fx:root ; rdf:_1 [
    xyz:someKey "some value" ;
    rdf:_1 "another value with unspecified key" ;
    rdf:_2 [
        rdf:type xyz:MyType ;
        rdf:_1 "another value"
    ]
] .

Querying anything

SPARQL Anything extends the Apache Jena ARQ processors by overloading the SERVICE operator, as in the following example:

Suppose having this JSON file as input (also available at https://sparql-anything.cc/example1.json)

[
  {
    "name":"Friends",
    "genres":[
      "Comedy",
      "Romance"
    ],
    "language":"English",
    "status":"Ended",
    "premiered":"1994-09-22",
    "summary":"Follows the personal and professional lives of six twenty to thirty-something-year-old friends living in Manhattan.",
    "stars":[
      "Jennifer Aniston",
      "Courteney Cox",
      "Lisa Kudrow",
      "Matt LeBlanc",
      "Matthew Perry",
      "David Schwimmer"
    ]
  },
  {
    "name":"Cougar Town",
    "genres":[
      "Comedy",
      "Romance"
    ],
    "language":"English",
    "status":"Ended",
    "premiered":"2009-09-23",
    "summary":"Jules is a recently divorced mother who has to face the unkind realities of dating in a world obsessed with beauty and youth. As she becomes older, she starts discovering herself.",
    "stars":[
      "Courteney Cox",
      "David Arquette",
      "Bill Lawrence",
      "Linda Videtti Figueiredo",
      "Blake McCormick"
    ]
  }
]

With SPARQL Anything you can select the TV series starring "Courteney Cox" with the SPARQL query

PREFIX xyz: <http://sparql.xyz/facade-x/data/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX fx: <http://sparql.xyz/facade-x/ns/>

SELECT ?seriesName
WHERE {

    SERVICE <x-sparql-anything:https://sparql-anything.cc/example1.json> {
        ?tvSeries xyz:name ?seriesName .
        ?tvSeries xyz:stars ?star .
        ?star fx:anySlot "Courteney Cox" .
    }

}

and get this result without caring of transforming JSON to RDF.

seriesName
"Cougar Town"
"Friends"

Supported Formats

Currently, SPARQL Anything supports the following list of formats but the possibilities are limitless! The data is interpreted as in the following examples (using default settings).

JSON

Data:

{
    "stringArg": "stringValue",
    "intArg": 1,
    "booleanArg": true,
    "nullArg": null,
    "arr": [ 0, 1 ]
}

Facade-X RDF:

@prefix xyz:    &lt;http://sparql.xyz/facade-x/data/&gt; .
@prefix fx:   &lt;http://sparql.xyz/facade-x/ns/&gt; .
@prefix rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt; .
@prefix xsd: &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[ a fx:root ; 
    xyz:arr [
        rdf:_1  "0"^^xsd:int ;
        rdf:_2  "1"^^xsd:int ] ;
    xyz:booleanArg  true ;
    xyz:intArg "1"^^xsd:int ;
    xyz:stringArg "stringValue"
] .

HTML

Data:

<html>
   <head>
      <title>Hello world!</title>
   </head>
   <body>
      <p class="paragraph">Hello world</p>
   </body>
</html>

Facade-X RDF:

@prefix fx:   <http://sparql.xyz/facade-x/ns/> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xhtml: <http://www.w3.org/1999/xhtml#> .

[ a       xhtml:html, fx:root ;
  rdf:_1  [ a       xhtml:head ;
            rdf:_1  [ a       xhtml:title ;
                      rdf:_1  "Hello world!"
                    ]
          ] ;
  rdf:_2  [ a       xhtml:body ;
            rdf:_1  [ a            xhtml:p ;
                      rdf:_1       "Hello world" ;
                      xhtml:class  "paragraph"
                    ]
          ]
] .

XML

Data:

<breakfast_menu>
   <food>
      <name>Belgian Waffles</name>
      <price>$5.95</price>
      <description>Two of our famous Belgian Waffles with plenty of real maple syrup</description>
      <calories>650</calories>
   </food>
   <food>
      <name>Strawberry Belgian Waffles</name>
      <price>$7.95</price>
      <description>Light Belgian waffles covered with strawberries and whipped cream</description>
      <calories>900</calories>
   </food>
   <food>
      <name>Berry-Berry Belgian Waffles</name>
      <price>$8.95</price>
      <description>Light Belgian waffles covered with an assortment of fresh berries and whipped cream</description>
      <calories>900</calories>
   </food>
</breakfast_menu>

Facade-X RDF:

@prefix xyz:    <http://sparql.xyz/facade-x/data/> .
@prefix fx:   <http://sparql.xyz/facade-x/ns/> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

[ a       xyz:breakfast_menu, fx:root ;
  rdf:_1  [ a       xyz:food ;
            rdf:_1  [ a       xyz:name ;
                      rdf:_1  "Belgian Waffles"
                    ] ;
            rdf:_2  [ a       xyz:price ;
                      rdf:_1  "$5.95"
                    ] ;
            rdf:_3  [ a       xyz:description ;
                      rdf:_1  "Two of our famous Belgian Waffles with plenty of real maple syrup"
                    ] ;
            rdf:_4  [ a       xyz:calories ;
                      rdf:_1  "650"
                    ]
          ] ;
  rdf:_2  [ a       xyz:food ;
            rdf:_1  [ a       xyz:name ;
                      rdf:_1  "Strawberry Belgian Waffles"
                    ] ;
            rdf:_2  [ a       xyz:price ;
                      rdf:_1  "$7.95"
                    ] ;
            rdf:_3  [ a       xyz:description ;
                      rdf:_1  "Light Belgian waffles covered with strawberries and whipped cream"
                    ] ;
            rdf:_4  [ a       xyz:calories ;
                      rdf:_1  "900"
                    ]
          ] ;
  rdf:_3  [ a       xyz:food ;
            rdf:_1  [ a       xyz:name ;
                      rdf:_1  "Berry-Berry Belgian Waffles"
                    ] ;
            rdf:_2  [ a       xyz:price ;
                      rdf:_1  "$8.95"
                    ] ;
            rdf:_3  [ a       xyz:description ;
                      rdf:_1  "Light Belgian waffles covered with an assortment of fresh berries and whipped cream"
                    ] ;
            rdf:_4  [ a       xyz:calories ;
                      rdf:_1  "900"
                    ]
          ]
] .

CSV

Data:

laura@example.com,2070,Laura,Grey
craig@example.com,4081,Craig,Johnson
mary@example.com,9346,Mary,Jenkins
jamie@example.com,5079,Jamie,Smith

Facade-X RDF:

@prefix fx:   <http://sparql.xyz/facade-x/ns/> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

[ a fx:root ;
  rdf:_1  [ rdf:_1  "laura@example.com" ;
            rdf:_2  "2070" ;
            rdf:_3  "Laura" ;
            rdf:_4  "Grey"
          ] ;
  rdf:_2  [ rdf:_1  "craig@example.com" ;
            rdf:_2  "4081" ;
            rdf:_3  "Craig" ;
            rdf:_4  "Johnson"
          ] ;
  rdf:_3  [ rdf:_1  "mary@example.com" ;
            rdf:_2  "9346" ;
            rdf:_3  "Mary" ;
            rdf:_4  "Jenkins"
          ] ;
  rdf:_4  [ rdf:_1  "jamie@example.com" ;
            rdf:_2  "5079" ;
            rdf:_3  "Jamie" ;
            rdf:_4  "Smith"
          ]
] .

Binary (BIN, PNG, JPEG, JPG, BMP, TIFF, TIF, ICO)

Data:

Link to image: https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/Canon_40D.jpg

Facade-X RDF:

@prefix fx:   <http://sparql.xyz/facade-x/ns/> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
[]  a fx:root ; 
    rdf:_1  "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"^^<http://www.w3.org/2001/XMLSchema#base64Binary> 
    .

TXT

Data:

Hello World!

Facade-X RDF:

@prefix fx:   <http://sparql.xyz/facade-x/ns/> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
[] a fx:root ; 
    rdf:_1 "Hello World!" .

File system and archives (ZIP, Tar)

Data:

archive.tar
\|__ file.csv
\|__ file.json
\|__ file.xml

Facade-X RDF:

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
@prefix fx: <http://sparql.xyz/facade-x/ns/>
[ rdf:type fx:root 
 rdf:_1 "file.csv" ; 
 rdf:_2 "file.json" ;
 rdf:_3 "file.xml" ] .

Spreadsheets: XLS, XLSx

Data:

Link to file: https://github.com/SPARQL-Anything/sparql.anything/raw/v0.6-DEV/sparql.anything.spreadsheet/src/main/resources/testResources/Book1.xlsx

Facade-X RDF:

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
@prefix fx: <http://sparql.xyz/facade-x/ns/>

<https://github.com/SPARQL-Anything/sparql.anything/raw/v0.6-DEV/sparql.anything.spreadsheet/src/main/resources/testResources/Book1.xlsx#Sheet1> {
_:b0    rdf:_1 "A2" ;
        rdf:_2 "B2" ;
        rdf:_3 "C2" .

_:b1    a       fx:root ;
        rdf:_1 _:b2 ;
        rdf:_2 _:b3 ;
        rdf:_3 _:b0 .

_:b4    rdf:_1 "A12" ;
        rdf:_2 "B12" ;
        rdf:_3 "C12" .

_:b3    rdf:_1 "A1" ;
        rdf:_2 "B1" ;
        rdf:_3 "C1" .

_:b2    rdf:_1 "A" ;
        rdf:_2 "B" ;
        rdf:_3 "C" .

_:b5    rdf:_1 "A1" ;
        rdf:_2 "B1" ;
        rdf:_3 "C1" .

_:b6    rdf:_1 "A11" ;
        rdf:_2 "B11" ;
        rdf:_3 "C11" .

_:b7    a       fx:root ;
        rdf:_1 _:b5 ;
        rdf:_2 _:b6 ;
        rdf:_3 _:b4 .
}

<https://github.com/SPARQL-Anything/sparql.anything/raw/v0.6-DEV/sparql.anything.spreadsheet/src/main/resources/testResources/Book1.xlsx#Sheet2> {
    _:b7    a       fx:root ;
            rdf:_1 _:b5 ;
            rdf:_2 _:b6 ;
            rdf:_3 _:b4 .
    
    _:b4    rdf:_1 "A12" ;
            rdf:_2 "B12" ;
            rdf:_3 "C12" .
    
    _:b5    rdf:_1 "A1" ;
            rdf:_2 "B1" ;
            rdf:_3 "C1" .
    
    _:b6    rdf:_1 "A11" ;
            rdf:_2 "B11" ;
            rdf:_3 "C11" .
}

<https://github.com/SPARQL-Anything/sparql.anything/raw/v0.6-DEV/sparql.anything.spreadsheet/src/main/resources/testResources/Book1.xlsx#Sheet1> {
    _:b0    rdf:_1 "A2" ;
            rdf:_2 "B2" ;
            rdf:_3 "C2" .
    
    _:b1    a       fx:root ;
            rdf:_1 _:b2 ;
            rdf:_2 _:b3 ;
            rdf:_3 _:b0 .
    
    _:b2    rdf:_1 "A" ;
            rdf:_2 "B" ;
            rdf:_3 "C" .
    
    _:b3    rdf:_1 "A1" ;
            rdf:_2 "B1" ;
            rdf:_3 "C1" .
}

Documents: DOCx

Data:

Link to file: https://github.com/SPARQL-Anything/sparql.anything/raw/v0.5-DEV/sparql-anything-docs/src/test/resources/Doc1.docx

Facade-X RDF:

<http://www.example.org/document>
        a       <http://sparql.xyz/facade-x/data/Document> , <http://sparql.xyz/facade-x/ns/root> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1>
                <http://sparql.xyz/facade-x/data/Heading1/1> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2>
                <http://sparql.xyz/facade-x/data/paragraph/2> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_3>
                <http://sparql.xyz/facade-x/data/paragraph/3> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_4>
                <http://sparql.xyz/facade-x/data/Heading2/4> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_5>
                <http://sparql.xyz/facade-x/data/paragraph/5> .

<http://sparql.xyz/facade-x/data/Heading2/4>
        a       <http://sparql.xyz/facade-x/data/Heading2> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1>
                "Title 2" .

<http://sparql.xyz/facade-x/data/Heading1/1>
        a       <http://sparql.xyz/facade-x/data/Heading1> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1>
                "Title 1" .

<http://sparql.xyz/facade-x/data/paragraph/2>
        a       <http://sparql.xyz/facade-x/data/Paragraph> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1>
                "Paragraph1" .

<http://sparql.xyz/facade-x/data/paragraph/5>
        a       <http://sparql.xyz/facade-x/data/Paragraph> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1>
                "Paragraph3" .

<http://sparql.xyz/facade-x/data/paragraph/3>
        a       <http://sparql.xyz/facade-x/data/Paragraph> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1>
                "Paragraph2" .

EXIF Metadata

Data:

Link to image: https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/Canon_40D.jpg

Facade-X RDF:

  <https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/Canon_40D.jpg>
        <http://sparql.xyz/facade-x/data/Aperture Value>
                "f/7.0" ;
        <http://sparql.xyz/facade-x/data/Blue Colorant>
                "(0.1431, 0.0606, 0.7141)" ;
        <http://sparql.xyz/facade-x/data/Blue TRC>      "0.0, 0.0000763, 0.0001526, 0.0002289, 0.0003052, 0.0003815, 0.0004578, 0.0005341, 0.0006104, 0.0006867, 0.000763, 0.0008392, 0.0009003, 0.0009766, 0.0010529, 0.0011292, 0.0012055, 0.0012818, 0.0013581, 0.0014343, 0.0015106, 0.0015869, 0.0016632, 0.0017395, 0.0018158, 0.0018921, 0.0019684, 0.0020447, 0.002121, 0.0021973, 0.0022736, 0.0023499, 0.0024262, 0.0025025, 0.0025788, 0.0026551, 0.0027161, 0.0027924, 0.0028687, 0.002945, 0.0030213, 0.0030976, 0.0031739, 0.0032502, 0.0033417, 0.003418, 0.0034943, 0.0035859, 0.0036622, 0.0037537, 0.00383, 0.0039216, 0.0040131, 0.0041047, 0.0041962, 0.0042878, 0.0043793, 0.0044709, 0.0045624, 0.0046693, 0.0047608, 0.0048524, 0.0049592, 0.005066, 0.0051575, 0.0052644, 0.0053712, 0.005478, 0.0055848, 0.0056916, 0.0057984, 0.0059052, 0.0060273, 0.0061341, 0.0062562, 0.006363, 0.0064851, 0.0066072, 0.0067292, 0.0068513, 0.0069734, 0.0070954, 0.0072175, 0.0073396, 0.0074617, 0.007599, 0.0077211, 0.0078584, 0.0079957, 0.0081178, 0.0082551, 0.0083925, 0.0085298, 0.0086671, 0.0088045, 0.008957, 0.0090944, 0.0092317, 0.0093843, 0.0095369, 0.0096742, 0.0098268, 0.0099794, 0.010132, 0.0102846, 0.0104372, 0.0105898, 0.0107576, 0.0109102, 0.0110628, 0.0112306, 0.0113985, 0.0115511, 0.0117189, 0.0118868, 0.0120546, 0.0122225, 0.0124056, 0.0125734, 0.0127413, 0.0129244, 0.0130922, 0.0132753, 0.0134585, 0.0136416, 0.0138247, 0.0140078, 0.0141909, 0.014374, 0.0145571, 0.0147555, 0.0149386, 0.0151369, 0.0153201, 0.0155184, 0.0157168, 0.0159152, 0.0161135, 0.0163119, 0.0165255, 0.0167239, 0.0169223, 0.0171359, 0.0173495, 0.0175479, 0.0177615, 0.0179751, 0.0181888, 0.0184024, 0.018616, 0.0188449, 0.0190585, 0.0192874, 0.019501, 0.0197299, 0.0199588, 0.0201877, 0.0204166, 0.0206455, 0.0208743, 0.0211032, 0.0213474, 0.0215763, 0.0218204, 0.0220645, 0.0222934, 0.0225376, 0.0227817, 0.0230259, 0.0232853, 0.0235294, 0.0237736, 0.024033, 0.0242771, 0.0245365, 0.0247959, 0.0250553, 0.0253147, 0.0255741, 0.0258335, 0.0261082, 0.0263676, 0.026627, 0.0269017, 0.0271763, 0.027451, 0.0277256, 0.0280003, 0.028275, 0.0285496, 0.0288243, 0.0291142, 0.0293889, 0.0296788, 0.0299687, 0.0302586, 0.0305486, 0.0308385, 0.0311284, 0.0314183, 0.0317235, 0.0320134, 0.0323186, 0.0326238, 0.032929, 0.0332341, 0.0335393, 0.0338445, 0.0341497, 0.0344549, 0.0347753, 0.0350805, 0.0354009, 0.0357214, 0.0360418, 0.0363622, 0.0366827, 0.0370031, 0.0373388, 0.0376593, 0.037995, 0.0383154, 0.0386511, 0.0389868, 0.0393225, 0.0396582, 0.0399939, 0.0403449, 0.0406806, 0.0410315, 0.0413825, 0.0417182, 0.0420691, 0.0424201, 0.042771, 0.0431373, 0.0434882, 0.0438392, 0.0442054, 0.0445716, 0.0449226, 0.0452888, 0.045655, 0.0460212, 0.0464027, 0.0467689, 0.0471504, 0.0475166, 0.0478981, 0.0482795, 0.048661, 0.0490425, 0.049424, 0.0498054, 0.0501869, 0.0505837, 0.0509804, 0.0513619, 0.0517586, 0.0521553, 0.0525521, 0.0529488, 0.0533608, 0.0537575, 0.0541695, 0.0545663, 0.0549783, 0.0553902, 0.0558022, 0.0562142, 0.0566262, 0.0570535, 0.0574655, 0.0578927, 0.05832, 0.058732, 0.0591592, 0.0595865, 0.060029, 0.0604562, 0.0608835, 0.061326, 0.0617533, 0.0621958, 0.0626383, 0.0630808, 0.0635233, 0.0639811, 0.0644236, 0.0648661, 0.0653239, 0.0657816, 0.0662394, 0.0666972, 0.067155, 0.0676127, 0.0680705, 0.0685435, 0.0690013, 0.0694743, 0.0699474, 0.0704204, 0.0708934, 0.0713664, 0.0718395, 0.0723278, 0.0728008, 0.0732891, 0.0737774, 0.0742657, 0.0747539, 0.0752422, 0.0757305, 0.0762188, 0.0767224, 0.0772259, 0.0777142, 0.0782177, 0.0787213, 0.0792401, 0.0797436, 0.0802472, 0.080766, 0.0812696, 0.0817884, 0.0823072, 0.082826, 0.0833448, 0.0838636, 0.0843977, 0.0849165, 0.0854505, 0.0859846, 0.0865187, 0.0870527, 0.0875868, 0.0881209, 0.0886549, 0.0892042, 0.0897536, 0.0902876, 0.090837, 0.0913863, 0.0919356, 0.0925002, 0.0930495, 0.0936141, 0.0941634, 0.094728, 0.0952926, 0.0958572, 0.0964218, 0.0970016, 0.0975662, 0.098146, 0.0987106, 0.0992905, 0.0998703, 0.1004501, 0.10103, 0.1016251, 0.1022049, 0.1028, 0.1033799, 0.103975, 0.1045701, 0.1051652, 0.1057755, 0.1063706, 0.106981, 0.1075761, 0.1081865, 0.1087968, 0.1094072, 0.1100175, 0.1106279, 0.1112535, 0.1118639, 0.1124895, 0.1131151, 0.1137407, 0.1143664, 0.114992, 0.1156176, 0.1162585, 0.1168841, 0.117525, 0.1181659, 0.1188067, 0.1194476, 0.1200885, 0.1207446, 0.1213855, 0.1220417, 0.1226978, 0.1233539, 0.1240101, 0.1246662, 0.1253223, 0.1259937, 0.1266499, 0.1273213, 0.1279927, 0.1286641, 0.1293355, 0.1300069, 0.1306935, 0.1313649, 0.1320516, 0.1327382, 0.1334096, 0.1341115, 0.1347982, 0.1354849, 0.1361868, 0.1368734, 0.1375753, 0.1382773, 0.1389792, 0.1396811, 0.140383, 0.1411002, 0.1418021, 0.1425193, 0.1432364, 0.1439536, 0.1446708, 0.145388, 0.1461204, 0.1468376, 0.14757, 0.1483024, 0.1490349, 0.1497673, 0.1504997, 0.1512322, 0.1519799, 0.1527123, 0.15346, 0.1542077, 0.1549554, 0.1557031, 0.1564508, 0.1572137, 0.1579767, 0.1587243, 0.1594873, 0.1602502, 0.1610132, 0.1617914, 0.1625544, 0.1633326, 0.1640955, 0.1648737, 0.1656519, 0.1664302, 0.1672236, 0.1680018, 0.1687953, 0.1695735, 0.170367, 0.1711604, 0.1719539, 0.1727474, 0.1735561, 0.1743496, 0.1751583, 0.175967, 0.1767758, 0.1775845, 0.1783932, 0.1792172, 0.1800259, 0.1808499, 0.1816739, 0.1824826, 0.1833219, 0.1841459, 0.1849699, 0.1858091, 0.1866331, 0.1874723, 0.1883116, 0.1891508, 0.1900053, 0.1908446, 0.1916838, 0.1925383, 0.1933928, 0.1942473, 0.1951019, 0.1959564, 0.1968261, 0.1976806, 0.1985504, 0.1994202, 0.2002899, 0.2011597, 0.2020294, 0.2028992, 0.2037842, 0.2046693, 0.205539, 0.206424, 0.2073243, 0.2082094, 0.2090944, 0.2099947, 0.2108949, 0.21178, 0.2126802, 0.2135958, 0.2144961, 0.2153964, 0.2163119, 0.2172274, 0.2181277, 0.2190585, 0.2199741, 0.2208896, 0.2218051, 0.2227359, 0.2236667, 0.2245975, 0.2255283, 0.2264591, 0.2273899, 0.228336, 0.2292821, 0.2302129, 0.2311589, 0.232105, 0.2330663, 0.2340124, 0.2349737, 0.2359197, 0.2368811, 0.2378424, 0.2388037, 0.239765, 0.2407416, 0.2417029, 0.2426795, 0.2436561, 0.2446326, 0.2456092, 0.2466011, 0.2475776, 0.2485695, 0.249546, 0.2505379, 0.2515297, 0.2525368, 0.2535286, 0.2545357, 0.2555276, 0.2565347, 0.2575418, 0.2585489, 0.259556, 0.2605783, 0.2615854, 0.2626078, 0.2636301, 0.2646525, 0.2656748, 0.2667124, 0.2677348, 0.2687724, 0.26981, 0.2708324, 0.2718853, 0.2729229, 0.2739605, 0.2750134, 0.276051, 0.2771038, 0.2781567, 0.2792248, 0.2802777, 0.2813306, 0.2823987, 0.2834668, 0.284535, 0.2856031, 0.2866712, 0.2877394, 0.2888228, 0.2899062, 0.2909743, 0.2920577, 0.2931563, 0.2942397, 0.2953231, 0.2964218, 0.2975204, 0.2986191, 0.2997177, 0.3008164, 0.301915, 0.3030289, 0.3041428, 0.3052567, 0.3063706, 0.3074846, 0.3085985, 0.3097124, 0.3108415, 0.3119707, 0.3130999, 0.314229, 0.3153582, 0.3165026, 0.3176318, 0.3187762, 0.3199207, 0.3210651, 0.3222095, 0.3233539, 0.3245136, 0.3256733, 0.3268177, 0.3279774, 0.3291371, 0.330312, 0.3314717, 0.3326467, 0.3338216, 0.3349966, 0.3361715, 0.3373465, 0.3385214, 0.3397116, 0.3408865, 0.3420768, 0.343267, 0.3444724, 0.3456626, 0.3468528, 0.3480583, 0.3492638, 0.3504692, 0.3516747, 0.3528801, 0.3541009, 0.3553063, 0.356527, 0.3577478, 0.3589685, 0.3601892, 0.3614252, 0.3626459, 0.3638819, 0.3651179, 0.3663539, 0.3675898, 0.3688411, 0.3700771, 0.3713283, 0.3725795, 0.3738308, 0.375082, 0.3763333, 0.3775998, 0.378851, 0.3801175, 0.381384, 0.3826505, 0.3839322, 0.3851987, 0.3864805, 0.387747, 0.3890288, 0.3903105, 0.3916075, 0.3928893, 0.3941863, 0.3954681, 0.3967651, 0.3980621, 0.3993744, 0.4006714, 0.4019837, 0.4032807, 0.404593, 0.4059052, 0.4072175, 0.4085451, 0.4098573, 0.4111849, 0.4125124, 0.4138399, 0.4151675, 0.416495, 0.4178378, 0.4191806, 0.4205234, 0.4218662, 0.423209, 0.4245518, 0.4259098, 0.4272526, 0.4286107, 0.4299687, 0.4313268, 0.4326848, 0.4340581, 0.4354314, 0.4367895, 0.4381628, 0.4395514, 0.4409247, 0.442298, 0.4436866, 0.4450752, 0.4464637, 0.4478523, 0.4492409, 0.4506447, 0.4520333, 0.4534371, 0.4548409, 0.4562448, 0.4576486, 0.4590677, 0.4604715, 0.4618906, 0.4633097, 0.4647288, 0.4661631, 0.4675822, 0.4690166, 0.4704356, 0.47187, 0.4733043, 0.4747539, 0.4761883, 0.4776379, 0.4790875, 0.4805371, 0.4819867, 0.4834363, 0.4848859, 0.4863508, 0.4878157, 0.4892805, 0.4907454, 0.4922103, 0.4936904, 0.4951553, 0.4966354, 0.4981155, 0.4995956, 0.501091, 0.5025711, 0.5040665, 0.5055467, 0.507042, 0.5085527, 0.5100481, 0.5115435, 0.5130541, 0.5145647, 0.5160754, 0.517586, 0.5190967, 0.5206226, 0.5221485, 0.5236591, 0.525185, 0.5267262, 0.5282521, 0.529778, 0.5313191, 0.5328603, 0.5344015, 0.5359426, 0.537499, 0.5390402, 0.5405966, 0.542153, 0.5437095, 0.5452659, 0.5468223, 0.548394, 0.5499657, 0.5515373, 0.553109, 0.5546807, 0.5562524, 0.5578393, 0.5594263, 0.5610132, 0.5626001, 0.5641871, 0.565774, 0.5673762, 0.5689784, 0.5705806, 0.5721828, 0.573785, 0.5754025, 0.5770047, 0.5786221, 0.5802396, 0.581857, 0.5834897, 0.5851072, 0.5867399, 0.5883726, 0.5900053, 0.5916381, 0.5932708, 0.5949187, 0.5965667, 0.5982147, 0.5998627, 0.6015106, 0.6031586, 0.6048219, 0.6064851, 0.6081483, 0.6098116, 0.6114748, 0.6131533, 0.6148165, 0.616495, 0.6181735, 0.619852, 0.6215457, 0.6232242, 0.624918, 0.6266117, 0.6283055, 0.6299992, 0.631693, 0.633402, 0.635111, 0.63682, 0.638529, 0.640238, 0.6419471, 0.6436713, 0.6453956, 0.6471199, 0.6488441, 0.6505684, 0.6523079, 0.6540322, 0.6557717, 0.6575113, 0.6592508, 0.6610056, 0.6627451, 0.6644999, 0.6662547, 0.6680095, 0.6697642, 0.6715343, 0.6732891, 0.6750591, 0.6768292, 0.6785992, 0.6803845, 0.6821546, 0.6839399, 0.6857252, 0.6875105, 0.6892958, 0.6910811, 0.6928817, 0.6946822, 0.6964675, 0.6982834, 0.7000839, 0.7018845, 0.7037003, 0.7055161, 0.707332, 0.7091478, 0.7109636, 0.7127947, 0.7146105, 0.7164416, 0.7182727, 0.720119, 0.7219501, 0.7237964, 0.7256275, 0.7274739, 0.7293355, 0.7311818, 0.7330282, 0.7348898, 0.7367514, 0.738613, 0.7404746, 0.7423514, 0.744213, 0.7460899, 0.7479667, 0.7498436, 0.7517205, 0.7536126, 0.7554894, 0.7573816, 0.7592737, 0.7611658, 0.7630732, 0.7649653, 0.7668727, 0.76878, 0.7706874, 0.7725948, 0.7745174, 0.7764248, 0.7783474, 0.7802701, 0.7821927, 0.7841306, 0.7860533, 0.7879911, 0.789929, 0.7918669, 0.7938048, 0.795758, 0.7976959, 0.799649, 0.8016022, 0.8035554, 0.8055238, 0.8074769, 0.8094453, 0.8114137, 0.8133822, 0.8153506, 0.8173342, 0.8193179, 0.8212863, 0.82327, 0.8252689, 0.8272526, 0.8292515, 0.8312352, 0.8332341, 0.8352331, 0.8372473, 0.8392462, 0.8412604, 0.8432746, 0.8452888, 0.847303, 0.8493172, 0.8513466, 0.8533761, 0.8554055, 0.857435, 0.8594644, 0.8614939, 0.8635386, 0.8655833, 0.867628, 0.8696727, 0.8717327, 0.8737774, 0.8758373, 0.8778973, 0.8799573, 0.8820325, 0.8840925, 0.8861677, 0.8882429, 0.8903182, 0.8923934, 0.8944839, 0.8965591, 0.8986496, 0.9007401, 0.9028305, 0.9049363, 0.9070268, 0.9091325, 0.9112383, 0.913344, 0.915465, 0.9175708, 0.9196918, 0.9218128, 0.9239338, 0.9260548, 0.9281758, 0.930312, 0.9324483, 0.9345846, 0.9367208, 0.9388571, 0.9410086, 0.9431601, 0.9453117, 0.9474632, 0.9496147, 0.9517815, 0.953933, 0.9560998, 0.9582666, 0.9604334, 0.9626154, 0.9647822, 0.9669642, 0.9691463, 0.9713283, 0.9735256, 0.9757076, 0.9779049, 0.9801022, 0.9822995, 0.9844968, 0.9867094, 0.988922, 0.9911345, 0.9933471, 0.9955596, 0.9977722, 1.0" ;
        <http://sparql.xyz/facade-x/data/CMM Type>      "Lino" ;
        <http://sparql.xyz/facade-x/data/Class>         "Display Device" ;
        <http://sparql.xyz/facade-x/data/Color Space>   "sRGB" ;
        <http://sparql.xyz/facade-x/data/Color space>   "RGB " ;
        <http://sparql.xyz/facade-x/data/Component 1>   "Y component: Quantization table 0, Sampling factors 1 horiz/1 vert" ;
        <http://sparql.xyz/facade-x/data/Component 2>   "Cb component: Quantization table 1, Sampling factors 1 horiz/1 vert" ;
        <http://sparql.xyz/facade-x/data/Component 3>   "Cr component: Quantization table 1, Sampling factors 1 horiz/1 vert" ;
        <http://sparql.xyz/facade-x/data/Components Configuration>
                "YCbCr" ;
        <http://sparql.xyz/facade-x/data/Compression>   "JPEG (old-style)" ;
        <http://sparql.xyz/facade-x/data/Compression Type>
                "Baseline" ;
        <http://sparql.xyz/facade-x/data/Custom Rendered>
                "Normal process" ;
        <http://sparql.xyz/facade-x/data/Data Precision>
                "8 bits" ;
        <http://sparql.xyz/facade-x/data/Date/Time>     "2008:07:31 10:38:11" ;
        <http://sparql.xyz/facade-x/data/Date/Time Digitized>
                "2008:05:30 15:56:01" ;
        <http://sparql.xyz/facade-x/data/Date/Time Original>
                "2008:05:30 15:56:01" ;
        <http://sparql.xyz/facade-x/data/Detected File Type Long Name>
                "Joint Photographic Experts Group" ;
        <http://sparql.xyz/facade-x/data/Detected File Type Name>
                "JPEG" ;
        <http://sparql.xyz/facade-x/data/Detected MIME Type>
                "image/jpeg" ;
        <http://sparql.xyz/facade-x/data/Device Mfg Description>
                "IEC http://www.iec.ch" ;
        <http://sparql.xyz/facade-x/data/Device Model Description>
                "IEC 61966-2.1 Default RGB colour space - sRGB" ;
        <http://sparql.xyz/facade-x/data/Device manufacturer>
                "IEC " ;
        <http://sparql.xyz/facade-x/data/Device model>  "sRGB" ;
        <http://sparql.xyz/facade-x/data/Exif Image Height>
                "68 pixels" ;
        <http://sparql.xyz/facade-x/data/Exif Image Width>
                "100 pixels" ;
        <http://sparql.xyz/facade-x/data/Exif Version>  "2.21" ;
        <http://sparql.xyz/facade-x/data/Expected File Name Extension>
                "jpg" ;
        <http://sparql.xyz/facade-x/data/Exposure Bias Value>
                "0 EV" ;
        <http://sparql.xyz/facade-x/data/Exposure Mode>
                "Manual exposure" ;
        <http://sparql.xyz/facade-x/data/Exposure Program>
                "Manual control" ;
        <http://sparql.xyz/facade-x/data/Exposure Time>
                "1/160 sec" ;
        <http://sparql.xyz/facade-x/data/F-Number>      "f/7.1" ;
        <http://sparql.xyz/facade-x/data/File Modified Date>
                "Sun Dec 20 12:40:39 +01:00 2020" ;
        <http://sparql.xyz/facade-x/data/File Name>     "Canon_40D.jpg" ;
        <http://sparql.xyz/facade-x/data/File Size>     "7958 bytes" ;
        <http://sparql.xyz/facade-x/data/Flash>         "Flash fired" ;
        <http://sparql.xyz/facade-x/data/FlashPix Version>
                "1.00" ;
        <http://sparql.xyz/facade-x/data/Focal Length>  "135 mm" ;
        <http://sparql.xyz/facade-x/data/Focal Plane Resolution Unit>
                "Inches" ;
        <http://sparql.xyz/facade-x/data/Focal Plane X Resolution>
                "73/324000 inches" ;
        <http://sparql.xyz/facade-x/data/Focal Plane Y Resolution>
                "583/2592000 inches" ;
        <http://sparql.xyz/facade-x/data/GPS Version ID>
                "2.200" ;
        <http://sparql.xyz/facade-x/data/Green Colorant>
                "(0.3851, 0.7169, 0.0971)" ;
        <http://sparql.xyz/facade-x/data/Green TRC>     "0.0, 0.0000763, 0.0001526, 0.0002289, 0.0003052, 0.0003815, 0.0004578, 0.0005341, 0.0006104, 0.0006867, 0.000763, 0.0008392, 0.0009003, 0.0009766, 0.0010529, 0.0011292, 0.0012055, 0.0012818, 0.0013581, 0.0014343, 0.0015106, 0.0015869, 0.0016632, 0.0017395, 0.0018158, 0.0018921, 0.0019684, 0.0020447, 0.002121, 0.0021973, 0.0022736, 0.0023499, 0.0024262, 0.0025025, 0.0025788, 0.0026551, 0.0027161, 0.0027924, 0.0028687, 0.002945, 0.0030213, 0.0030976, 0.0031739, 0.0032502, 0.0033417, 0.003418, 0.0034943, 0.0035859, 0.0036622, 0.0037537, 0.00383, 0.0039216, 0.0040131, 0.0041047, 0.0041962, 0.0042878, 0.0043793, 0.0044709, 0.0045624, 0.0046693, 0.0047608, 0.0048524, 0.0049592, 0.005066, 0.0051575, 0.0052644, 0.0053712, 0.005478, 0.0055848, 0.0056916, 0.0057984, 0.0059052, 0.0060273, 0.0061341, 0.0062562, 0.006363, 0.0064851, 0.0066072, 0.0067292, 0.0068513, 0.0069734, 0.0070954, 0.0072175, 0.0073396, 0.0074617, 0.007599, 0.0077211, 0.0078584, 0.0079957, 0.0081178, 0.0082551, 0.0083925, 0.0085298, 0.0086671, 0.0088045, 0.008957, 0.0090944, 0.0092317, 0.0093843, 0.0095369, 0.0096742, 0.0098268, 0.0099794, 0.010132, 0.0102846, 0.0104372, 0.0105898, 0.0107576, 0.0109102, 0.0110628, 0.0112306, 0.0113985, 0.0115511, 0.0117189, 0.0118868, 0.0120546, 0.0122225, 0.0124056, 0.0125734, 0.0127413, 0.0129244, 0.0130922, 0.0132753, 0.0134585, 0.0136416, 0.0138247, 0.0140078, 0.0141909, 0.014374, 0.0145571, 0.0147555, 0.0149386, 0.0151369, 0.0153201, 0.0155184, 0.0157168, 0.0159152, 0.0161135, 0.0163119, 0.0165255, 0.0167239, 0.0169223, 0.0171359, 0.0173495, 0.0175479, 0.0177615, 0.0179751, 0.0181888, 0.0184024, 0.018616, 0.0188449, 0.0190585, 0.0192874, 0.019501, 0.0197299, 0.0199588, 0.0201877, 0.0204166, 0.0206455, 0.0208743, 0.0211032, 0.0213474, 0.0215763, 0.0218204, 0.0220645, 0.0222934, 0.0225376, 0.0227817, 0.0230259, 0.0232853, 0.0235294, 0.0237736, 0.024033, 0.0242771, 0.0245365, 0.0247959, 0.0250553, 0.0253147, 0.0255741, 0.0258335, 0.0261082, 0.0263676, 0.026627, 0.0269017, 0.0271763, 0.027451, 0.0277256, 0.0280003, 0.028275, 0.0285496, 0.0288243, 0.0291142, 0.0293889, 0.0296788, 0.0299687, 0.0302586, 0.0305486, 0.0308385, 0.0311284, 0.0314183, 0.0317235, 0.0320134, 0.0323186, 0.0326238, 0.032929, 0.0332341, 0.0335393, 0.0338445, 0.0341497, 0.0344549, 0.0347753, 0.0350805, 0.0354009, 0.0357214, 0.0360418, 0.0363622, 0.0366827, 0.0370031, 0.0373388, 0.0376593, 0.037995, 0.0383154, 0.0386511, 0.0389868, 0.0393225, 0.0396582, 0.0399939, 0.0403449, 0.0406806, 0.0410315, 0.0413825, 0.0417182, 0.0420691, 0.0424201, 0.042771, 0.0431373, 0.0434882, 0.0438392, 0.0442054, 0.0445716, 0.0449226, 0.0452888, 0.045655, 0.0460212, 0.0464027, 0.0467689, 0.0471504, 0.0475166, 0.0478981, 0.0482795, 0.048661, 0.0490425, 0.049424, 0.0498054, 0.0501869, 0.0505837, 0.0509804, 0.0513619, 0.0517586, 0.0521553, 0.0525521, 0.0529488, 0.0533608, 0.0537575, 0.0541695, 0.0545663, 0.0549783, 0.0553902, 0.0558022, 0.0562142, 0.0566262, 0.0570535, 0.0574655, 0.0578927, 0.05832, 0.058732, 0.0591592, 0.0595865, 0.060029, 0.0604562, 0.0608835, 0.061326, 0.0617533, 0.0621958, 0.0626383, 0.0630808, 0.0635233, 0.0639811, 0.0644236, 0.0648661, 0.0653239, 0.0657816, 0.0662394, 0.0666972, 0.067155, 0.0676127, 0.0680705, 0.0685435, 0.0690013, 0.0694743, 0.0699474, 0.0704204, 0.0708934, 0.0713664, 0.0718395, 0.0723278, 0.0728008, 0.0732891, 0.0737774, 0.0742657, 0.0747539, 0.0752422, 0.0757305, 0.0762188, 0.0767224, 0.0772259, 0.0777142, 0.0782177, 0.0787213, 0.0792401, 0.0797436, 0.0802472, 0.080766, 0.0812696, 0.0817884, 0.0823072, 0.082826, 0.0833448, 0.0838636, 0.0843977, 0.0849165, 0.0854505, 0.0859846, 0.0865187, 0.0870527, 0.0875868, 0.0881209, 0.0886549, 0.0892042, 0.0897536, 0.0902876, 0.090837, 0.0913863, 0.0919356, 0.0925002, 0.0930495, 0.0936141, 0.0941634, 0.094728, 0.0952926, 0.0958572, 0.0964218, 0.0970016, 0.0975662, 0.098146, 0.0987106, 0.0992905, 0.0998703, 0.1004501, 0.10103, 0.1016251, 0.1022049, 0.1028, 0.1033799, 0.103975, 0.1045701, 0.1051652, 0.1057755, 0.1063706, 0.106981, 0.1075761, 0.1081865, 0.1087968, 0.1094072, 0.1100175, 0.1106279, 0.1112535, 0.1118639, 0.1124895, 0.1131151, 0.1137407, 0.1143664, 0.114992, 0.1156176, 0.1162585, 0.1168841, 0.117525, 0.1181659, 0.1188067, 0.1194476, 0.1200885, 0.1207446, 0.1213855, 0.1220417, 0.1226978, 0.1233539, 0.1240101, 0.1246662, 0.1253223, 0.1259937, 0.1266499, 0.1273213, 0.1279927, 0.1286641, 0.1293355, 0.1300069, 0.1306935, 0.1313649, 0.1320516, 0.1327382, 0.1334096, 0.1341115, 0.1347982, 0.1354849, 0.1361868, 0.1368734, 0.1375753, 0.1382773, 0.1389792, 0.1396811, 0.140383, 0.1411002, 0.1418021, 0.1425193, 0.1432364, 0.1439536, 0.1446708, 0.145388, 0.1461204, 0.1468376, 0.14757, 0.1483024, 0.1490349, 0.1497673, 0.1504997, 0.1512322, 0.1519799, 0.1527123, 0.15346, 0.1542077, 0.1549554, 0.1557031, 0.1564508, 0.1572137, 0.1579767, 0.1587243, 0.1594873, 0.1602502, 0.1610132, 0.1617914, 0.1625544, 0.1633326, 0.1640955, 0.1648737, 0.1656519, 0.1664302, 0.1672236, 0.1680018, 0.1687953, 0.1695735, 0.170367, 0.1711604, 0.1719539, 0.1727474, 0.1735561, 0.1743496, 0.1751583, 0.175967, 0.1767758, 0.1775845, 0.1783932, 0.1792172, 0.1800259, 0.1808499, 0.1816739, 0.1824826, 0.1833219, 0.1841459, 0.1849699, 0.1858091, 0.1866331, 0.1874723, 0.1883116, 0.1891508, 0.1900053, 0.1908446, 0.1916838, 0.1925383, 0.1933928, 0.1942473, 0.1951019, 0.1959564, 0.1968261, 0.1976806, 0.1985504, 0.1994202, 0.2002899, 0.2011597, 0.2020294, 0.2028992, 0.2037842, 0.2046693, 0.205539, 0.206424, 0.2073243, 0.2082094, 0.2090944, 0.2099947, 0.2108949, 0.21178, 0.2126802, 0.2135958, 0.2144961, 0.2153964, 0.2163119, 0.2172274, 0.2181277, 0.2190585, 0.2199741, 0.2208896, 0.2218051, 0.2227359, 0.2236667, 0.2245975, 0.2255283, 0.2264591, 0.2273899, 0.228336, 0.2292821, 0.2302129, 0.2311589, 0.232105, 0.2330663, 0.2340124, 0.2349737, 0.2359197, 0.2368811, 0.2378424, 0.2388037, 0.239765, 0.2407416, 0.2417029, 0.2426795, 0.2436561, 0.2446326, 0.2456092, 0.2466011, 0.2475776, 0.2485695, 0.249546, 0.2505379, 0.2515297, 0.2525368, 0.2535286, 0.2545357, 0.2555276, 0.2565347, 0.2575418, 0.2585489, 0.259556, 0.2605783, 0.2615854, 0.2626078, 0.2636301, 0.2646525, 0.2656748, 0.2667124, 0.2677348, 0.2687724, 0.26981, 0.2708324, 0.2718853, 0.2729229, 0.2739605, 0.2750134, 0.276051, 0.2771038, 0.2781567, 0.2792248, 0.2802777, 0.2813306, 0.2823987, 0.2834668, 0.284535, 0.2856031, 0.2866712, 0.2877394, 0.2888228, 0.2899062, 0.2909743, 0.2920577, 0.2931563, 0.2942397, 0.2953231, 0.2964218, 0.2975204, 0.2986191, 0.2997177, 0.3008164, 0.301915, 0.3030289, 0.3041428, 0.3052567, 0.3063706, 0.3074846, 0.3085985, 0.3097124, 0.3108415, 0.3119707, 0.3130999, 0.314229, 0.3153582, 0.3165026, 0.3176318, 0.3187762, 0.3199207, 0.3210651, 0.3222095, 0.3233539, 0.3245136, 0.3256733, 0.3268177, 0.3279774, 0.3291371, 0.330312, 0.3314717, 0.3326467, 0.3338216, 0.3349966, 0.3361715, 0.3373465, 0.3385214, 0.3397116, 0.3408865, 0.3420768, 0.343267, 0.3444724, 0.3456626, 0.3468528, 0.3480583, 0.3492638, 0.3504692, 0.3516747, 0.3528801, 0.3541009, 0.3553063, 0.356527, 0.3577478, 0.3589685, 0.3601892, 0.3614252, 0.3626459, 0.3638819, 0.3651179, 0.3663539, 0.3675898, 0.3688411, 0.3700771, 0.3713283, 0.3725795, 0.3738308, 0.375082, 0.3763333, 0.3775998, 0.378851, 0.3801175, 0.381384, 0.3826505, 0.3839322, 0.3851987, 0.3864805, 0.387747, 0.3890288, 0.3903105, 0.3916075, 0.3928893, 0.3941863, 0.3954681, 0.3967651, 0.3980621, 0.3993744, 0.4006714, 0.4019837, 0.4032807, 0.404593, 0.4059052, 0.4072175, 0.4085451, 0.4098573, 0.4111849, 0.4125124, 0.4138399, 0.4151675, 0.416495, 0.4178378, 0.4191806, 0.4205234, 0.4218662, 0.423209, 0.4245518, 0.4259098, 0.4272526, 0.4286107, 0.4299687, 0.4313268, 0.4326848, 0.4340581, 0.4354314, 0.4367895, 0.4381628, 0.4395514, 0.4409247, 0.442298, 0.4436866, 0.4450752, 0.4464637, 0.4478523, 0.4492409, 0.4506447, 0.4520333, 0.4534371, 0.4548409, 0.4562448, 0.4576486, 0.4590677, 0.4604715, 0.4618906, 0.4633097, 0.4647288, 0.4661631, 0.4675822, 0.4690166, 0.4704356, 0.47187, 0.4733043, 0.4747539, 0.4761883, 0.4776379, 0.4790875, 0.4805371, 0.4819867, 0.4834363, 0.4848859, 0.4863508, 0.4878157, 0.4892805, 0.4907454, 0.4922103, 0.4936904, 0.4951553, 0.4966354, 0.4981155, 0.4995956, 0.501091, 0.5025711, 0.5040665, 0.5055467, 0.507042, 0.5085527, 0.5100481, 0.5115435, 0.5130541, 0.5145647, 0.5160754, 0.517586, 0.5190967, 0.5206226, 0.5221485, 0.5236591, 0.525185, 0.5267262, 0.5282521, 0.529778, 0.5313191, 0.5328603, 0.5344015, 0.5359426, 0.537499, 0.5390402, 0.5405966, 0.542153, 0.5437095, 0.5452659, 0.5468223, 0.548394, 0.5499657, 0.5515373, 0.553109, 0.5546807, 0.5562524, 0.5578393, 0.5594263, 0.5610132, 0.5626001, 0.5641871, 0.565774, 0.5673762, 0.5689784, 0.5705806, 0.5721828, 0.573785, 0.5754025, 0.5770047, 0.5786221, 0.5802396, 0.581857, 0.5834897, 0.5851072, 0.5867399, 0.5883726, 0.5900053, 0.5916381, 0.5932708, 0.5949187, 0.5965667, 0.5982147, 0.5998627, 0.6015106, 0.6031586, 0.6048219, 0.6064851, 0.6081483, 0.6098116, 0.6114748, 0.6131533, 0.6148165, 0.616495, 0.6181735, 0.619852, 0.6215457, 0.6232242, 0.624918, 0.6266117, 0.6283055, 0.6299992, 0.631693, 0.633402, 0.635111, 0.63682, 0.638529, 0.640238, 0.6419471, 0.6436713, 0.6453956, 0.6471199, 0.6488441, 0.6505684, 0.6523079, 0.6540322, 0.6557717, 0.6575113, 0.6592508, 0.6610056, 0.6627451, 0.6644999, 0.6662547, 0.6680095, 0.6697642, 0.6715343, 0.6732891, 0.6750591, 0.6768292, 0.6785992, 0.6803845, 0.6821546, 0.6839399, 0.6857252, 0.6875105, 0.6892958, 0.6910811, 0.6928817, 0.6946822, 0.6964675, 0.6982834, 0.7000839, 0.7018845, 0.7037003, 0.7055161, 0.707332, 0.7091478, 0.7109636, 0.7127947, 0.7146105, 0.7164416, 0.7182727, 0.720119, 0.7219501, 0.7237964, 0.7256275, 0.7274739, 0.7293355, 0.7311818, 0.7330282, 0.7348898, 0.7367514, 0.738613, 0.7404746, 0.7423514, 0.744213, 0.7460899, 0.7479667, 0.7498436, 0.7517205, 0.7536126, 0.7554894, 0.7573816, 0.7592737, 0.7611658, 0.7630732, 0.7649653, 0.7668727, 0.76878, 0.7706874, 0.7725948, 0.7745174, 0.7764248, 0.7783474, 0.7802701, 0.7821927, 0.7841306, 0.7860533, 0.7879911, 0.789929, 0.7918669, 0.7938048, 0.795758, 0.7976959, 0.799649, 0.8016022, 0.8035554, 0.8055238, 0.8074769, 0.8094453, 0.8114137, 0.8133822, 0.8153506, 0.8173342, 0.8193179, 0.8212863, 0.82327, 0.8252689, 0.8272526, 0.8292515, 0.8312352, 0.8332341, 0.8352331, 0.8372473, 0.8392462, 0.8412604, 0.8432746, 0.8452888, 0.847303, 0.8493172, 0.8513466, 0.8533761, 0.8554055, 0.857435, 0.8594644, 0.8614939, 0.8635386, 0.8655833, 0.867628, 0.8696727, 0.8717327, 0.8737774, 0.8758373, 0.8778973, 0.8799573, 0.8820325, 0.8840925, 0.8861677, 0.8882429, 0.8903182, 0.8923934, 0.8944839, 0.8965591, 0.8986496, 0.9007401, 0.9028305, 0.9049363, 0.9070268, 0.9091325, 0.9112383, 0.913344, 0.915465, 0.9175708, 0.9196918, 0.9218128, 0.9239338, 0.9260548, 0.9281758, 0.930312, 0.9324483, 0.9345846, 0.9367208, 0.9388571, 0.9410086, 0.9431601, 0.9453117, 0.9474632, 0.9496147, 0.9517815, 0.953933, 0.9560998, 0.9582666, 0.9604334, 0.9626154, 0.9647822, 0.9669642, 0.9691463, 0.9713283, 0.9735256, 0.9757076, 0.9779049, 0.9801022, 0.9822995, 0.9844968, 0.9867094, 0.988922, 0.9911345, 0.9933471, 0.9955596, 0.9977722, 1.0" ;
        <http://sparql.xyz/facade-x/data/ISO Speed Ratings>
                "100" ;
        <http://sparql.xyz/facade-x/data/Image Height>  "68 pixels" ;
        <http://sparql.xyz/facade-x/data/Image Width>   "100 pixels" ;
        <http://sparql.xyz/facade-x/data/Interoperability Index>
                "Recommended Exif Interoperability Rules (ExifR98)" ;
        <http://sparql.xyz/facade-x/data/Interoperability Version>
                "1.00" ;
        <http://sparql.xyz/facade-x/data/Luminance>     "(76.0365, 80, 87.1246)" ;
        <http://sparql.xyz/facade-x/data/Make>          "Canon" ;
        <http://sparql.xyz/facade-x/data/Measurement>   "1931 2° Observer, Backing (0, 0, 0), Geometry Unknown, Flare 1%, Illuminant D65" ;
        <http://sparql.xyz/facade-x/data/Media Black Point>
                "(0, 0, 0)" ;
        <http://sparql.xyz/facade-x/data/Media White Point>
                "(0.9505, 1, 1.0891)" ;
        <http://sparql.xyz/facade-x/data/Metering Mode>
                "Multi-segment" ;
        <http://sparql.xyz/facade-x/data/Model>         "Canon EOS 40D" ;
        <http://sparql.xyz/facade-x/data/Number of Components>
                "3" ;
        <http://sparql.xyz/facade-x/data/Number of Tables>
                "4 Huffman tables" ;
        <http://sparql.xyz/facade-x/data/Orientation>   "Top, left side (Horizontal / normal)" ;
        <http://sparql.xyz/facade-x/data/Primary Platform>
                "Microsoft Corporation" ;
        <http://sparql.xyz/facade-x/data/Profile Connection Space>
                "XYZ " ;
        <http://sparql.xyz/facade-x/data/Profile Copyright>
                "Copyright (c) 1998 Hewlett-Packard Company" ;
        <http://sparql.xyz/facade-x/data/Profile Date/Time>
                "1998:02:09 06:49:00" ;
        <http://sparql.xyz/facade-x/data/Profile Description>
                "sRGB IEC61966-2.1" ;
        <http://sparql.xyz/facade-x/data/Profile Size>  "3144" ;
        <http://sparql.xyz/facade-x/data/Red Colorant>  "(0.4361, 0.2225, 0.0139)" ;
        <http://sparql.xyz/facade-x/data/Red TRC>       "0.0, 0.0000763, 0.0001526, 0.0002289, 0.0003052, 0.0003815, 0.0004578, 0.0005341, 0.0006104, 0.0006867, 0.000763, 0.0008392, 0.0009003, 0.0009766, 0.0010529, 0.0011292, 0.0012055, 0.0012818, 0.0013581, 0.0014343, 0.0015106, 0.0015869, 0.0016632, 0.0017395, 0.0018158, 0.0018921, 0.0019684, 0.0020447, 0.002121, 0.0021973, 0.0022736, 0.0023499, 0.0024262, 0.0025025, 0.0025788, 0.0026551, 0.0027161, 0.0027924, 0.0028687, 0.002945, 0.0030213, 0.0030976, 0.0031739, 0.0032502, 0.0033417, 0.003418, 0.0034943, 0.0035859, 0.0036622, 0.0037537, 0.00383, 0.0039216, 0.0040131, 0.0041047, 0.0041962, 0.0042878, 0.0043793, 0.0044709, 0.0045624, 0.0046693, 0.0047608, 0.0048524, 0.0049592, 0.005066, 0.0051575, 0.0052644, 0.0053712, 0.005478, 0.0055848, 0.0056916, 0.0057984, 0.0059052, 0.0060273, 0.0061341, 0.0062562, 0.006363, 0.0064851, 0.0066072, 0.0067292, 0.0068513, 0.0069734, 0.0070954, 0.0072175, 0.0073396, 0.0074617, 0.007599, 0.0077211, 0.0078584, 0.0079957, 0.0081178, 0.0082551, 0.0083925, 0.0085298, 0.0086671, 0.0088045, 0.008957, 0.0090944, 0.0092317, 0.0093843, 0.0095369, 0.0096742, 0.0098268, 0.0099794, 0.010132, 0.0102846, 0.0104372, 0.0105898, 0.0107576, 0.0109102, 0.0110628, 0.0112306, 0.0113985, 0.0115511, 0.0117189, 0.0118868, 0.0120546, 0.0122225, 0.0124056, 0.0125734, 0.0127413, 0.0129244, 0.0130922, 0.0132753, 0.0134585, 0.0136416, 0.0138247, 0.0140078, 0.0141909, 0.014374, 0.0145571, 0.0147555, 0.0149386, 0.0151369, 0.0153201, 0.0155184, 0.0157168, 0.0159152, 0.0161135, 0.0163119, 0.0165255, 0.0167239, 0.0169223, 0.0171359, 0.0173495, 0.0175479, 0.0177615, 0.0179751, 0.0181888, 0.0184024, 0.018616, 0.0188449, 0.0190585, 0.0192874, 0.019501, 0.0197299, 0.0199588, 0.0201877, 0.0204166, 0.0206455, 0.0208743, 0.0211032, 0.0213474, 0.0215763, 0.0218204, 0.0220645, 0.0222934, 0.0225376, 0.0227817, 0.0230259, 0.0232853, 0.0235294, 0.0237736, 0.024033, 0.0242771, 0.0245365, 0.0247959, 0.0250553, 0.0253147, 0.0255741, 0.0258335, 0.0261082, 0.0263676, 0.026627, 0.0269017, 0.0271763, 0.027451, 0.0277256, 0.0280003, 0.028275, 0.0285496, 0.0288243, 0.0291142, 0.0293889, 0.0296788, 0.0299687, 0.0302586, 0.0305486, 0.0308385, 0.0311284, 0.0314183, 0.0317235, 0.0320134, 0.0323186, 0.0326238, 0.032929, 0.0332341, 0.0335393, 0.0338445, 0.0341497, 0.0344549, 0.0347753, 0.0350805, 0.0354009, 0.0357214, 0.0360418, 0.0363622, 0.0366827, 0.0370031, 0.0373388, 0.0376593, 0.037995, 0.0383154, 0.0386511, 0.0389868, 0.0393225, 0.0396582, 0.0399939, 0.0403449, 0.0406806, 0.0410315, 0.0413825, 0.0417182, 0.0420691, 0.0424201, 0.042771, 0.0431373, 0.0434882, 0.0438392, 0.0442054, 0.0445716, 0.0449226, 0.0452888, 0.045655, 0.0460212, 0.0464027, 0.0467689, 0.0471504, 0.0475166, 0.0478981, 0.0482795, 0.048661, 0.0490425, 0.049424, 0.0498054, 0.0501869, 0.0505837, 0.0509804, 0.0513619, 0.0517586, 0.0521553, 0.0525521, 0.0529488, 0.0533608, 0.0537575, 0.0541695, 0.0545663, 0.0549783, 0.0553902, 0.0558022, 0.0562142, 0.0566262, 0.0570535, 0.0574655, 0.0578927, 0.05832, 0.058732, 0.0591592, 0.0595865, 0.060029, 0.0604562, 0.0608835, 0.061326, 0.0617533, 0.0621958, 0.0626383, 0.0630808, 0.0635233, 0.0639811, 0.0644236, 0.0648661, 0.0653239, 0.0657816, 0.0662394, 0.0666972, 0.067155, 0.0676127, 0.0680705, 0.0685435, 0.0690013, 0.0694743, 0.0699474, 0.0704204, 0.0708934, 0.0713664, 0.0718395, 0.0723278, 0.0728008, 0.0732891, 0.0737774, 0.0742657, 0.0747539, 0.0752422, 0.0757305, 0.0762188, 0.0767224, 0.0772259, 0.0777142, 0.0782177, 0.0787213, 0.0792401, 0.0797436, 0.0802472, 0.080766, 0.0812696, 0.0817884, 0.0823072, 0.082826, 0.0833448, 0.0838636, 0.0843977, 0.0849165, 0.0854505, 0.0859846, 0.0865187, 0.0870527, 0.0875868, 0.0881209, 0.0886549, 0.0892042, 0.0897536, 0.0902876, 0.090837, 0.0913863, 0.0919356, 0.0925002, 0.0930495, 0.0936141, 0.0941634, 0.094728, 0.0952926, 0.0958572, 0.0964218, 0.0970016, 0.0975662, 0.098146, 0.0987106, 0.0992905, 0.0998703, 0.1004501, 0.10103, 0.1016251, 0.1022049, 0.1028, 0.1033799, 0.103975, 0.1045701, 0.1051652, 0.1057755, 0.1063706, 0.106981, 0.1075761, 0.1081865, 0.1087968, 0.1094072, 0.1100175, 0.1106279, 0.1112535, 0.1118639, 0.1124895, 0.1131151, 0.1137407, 0.1143664, 0.114992, 0.1156176, 0.1162585, 0.1168841, 0.117525, 0.1181659, 0.1188067, 0.1194476, 0.1200885, 0.1207446, 0.1213855, 0.1220417, 0.1226978, 0.1233539, 0.1240101, 0.1246662, 0.1253223, 0.1259937, 0.1266499, 0.1273213, 0.1279927, 0.1286641, 0.1293355, 0.1300069, 0.1306935, 0.1313649, 0.1320516, 0.1327382, 0.1334096, 0.1341115, 0.1347982, 0.1354849, 0.1361868, 0.1368734, 0.1375753, 0.1382773, 0.1389792, 0.1396811, 0.140383, 0.1411002, 0.1418021, 0.1425193, 0.1432364, 0.1439536, 0.1446708, 0.145388, 0.1461204, 0.1468376, 0.14757, 0.1483024, 0.1490349, 0.1497673, 0.1504997, 0.1512322, 0.1519799, 0.1527123, 0.15346, 0.1542077, 0.1549554, 0.1557031, 0.1564508, 0.1572137, 0.1579767, 0.1587243, 0.1594873, 0.1602502, 0.1610132, 0.1617914, 0.1625544, 0.1633326, 0.1640955, 0.1648737, 0.1656519, 0.1664302, 0.1672236, 0.1680018, 0.1687953, 0.1695735, 0.170367, 0.1711604, 0.1719539, 0.1727474, 0.1735561, 0.1743496, 0.1751583, 0.175967, 0.1767758, 0.1775845, 0.1783932, 0.1792172, 0.1800259, 0.1808499, 0.1816739, 0.1824826, 0.1833219, 0.1841459, 0.1849699, 0.1858091, 0.1866331, 0.1874723, 0.1883116, 0.1891508, 0.1900053, 0.1908446, 0.1916838, 0.1925383, 0.1933928, 0.1942473, 0.1951019, 0.1959564, 0.1968261, 0.1976806, 0.1985504, 0.1994202, 0.2002899, 0.2011597, 0.2020294, 0.2028992, 0.2037842, 0.2046693, 0.205539, 0.206424, 0.2073243, 0.2082094, 0.2090944, 0.2099947, 0.2108949, 0.21178, 0.2126802, 0.2135958, 0.2144961, 0.2153964, 0.2163119, 0.2172274, 0.2181277, 0.2190585, 0.2199741, 0.2208896, 0.2218051, 0.2227359, 0.2236667, 0.2245975, 0.2255283, 0.2264591, 0.2273899, 0.228336, 0.2292821, 0.2302129, 0.2311589, 0.232105, 0.2330663, 0.2340124, 0.2349737, 0.2359197, 0.2368811, 0.2378424, 0.2388037, 0.239765, 0.2407416, 0.2417029, 0.2426795, 0.2436561, 0.2446326, 0.2456092, 0.2466011, 0.2475776, 0.2485695, 0.249546, 0.2505379, 0.2515297, 0.2525368, 0.2535286, 0.2545357, 0.2555276, 0.2565347, 0.2575418, 0.2585489, 0.259556, 0.2605783, 0.2615854, 0.2626078, 0.2636301, 0.2646525, 0.2656748, 0.2667124, 0.2677348, 0.2687724, 0.26981, 0.2708324, 0.2718853, 0.2729229, 0.2739605, 0.2750134, 0.276051, 0.2771038, 0.2781567, 0.2792248, 0.2802777, 0.2813306, 0.2823987, 0.2834668, 0.284535, 0.2856031, 0.2866712, 0.2877394, 0.2888228, 0.2899062, 0.2909743, 0.2920577, 0.2931563, 0.2942397, 0.2953231, 0.2964218, 0.2975204, 0.2986191, 0.2997177, 0.3008164, 0.301915, 0.3030289, 0.3041428, 0.3052567, 0.3063706, 0.3074846, 0.3085985, 0.3097124, 0.3108415, 0.3119707, 0.3130999, 0.314229, 0.3153582, 0.3165026, 0.3176318, 0.3187762, 0.3199207, 0.3210651, 0.3222095, 0.3233539, 0.3245136, 0.3256733, 0.3268177, 0.3279774, 0.3291371, 0.330312, 0.3314717, 0.3326467, 0.3338216, 0.3349966, 0.3361715, 0.3373465, 0.3385214, 0.3397116, 0.3408865, 0.3420768, 0.343267, 0.3444724, 0.3456626, 0.3468528, 0.3480583, 0.3492638, 0.3504692, 0.3516747, 0.3528801, 0.3541009, 0.3553063, 0.356527, 0.3577478, 0.3589685, 0.3601892, 0.3614252, 0.3626459, 0.3638819, 0.3651179, 0.3663539, 0.3675898, 0.3688411, 0.3700771, 0.3713283, 0.3725795, 0.3738308, 0.375082, 0.3763333, 0.3775998, 0.378851, 0.3801175, 0.381384, 0.3826505, 0.3839322, 0.3851987, 0.3864805, 0.387747, 0.3890288, 0.3903105, 0.3916075, 0.3928893, 0.3941863, 0.3954681, 0.3967651, 0.3980621, 0.3993744, 0.4006714, 0.4019837, 0.4032807, 0.404593, 0.4059052, 0.4072175, 0.4085451, 0.4098573, 0.4111849, 0.4125124, 0.4138399, 0.4151675, 0.416495, 0.4178378, 0.4191806, 0.4205234, 0.4218662, 0.423209, 0.4245518, 0.4259098, 0.4272526, 0.4286107, 0.4299687, 0.4313268, 0.4326848, 0.4340581, 0.4354314, 0.4367895, 0.4381628, 0.4395514, 0.4409247, 0.442298, 0.4436866, 0.4450752, 0.4464637, 0.4478523, 0.4492409, 0.4506447, 0.4520333, 0.4534371, 0.4548409, 0.4562448, 0.4576486, 0.4590677, 0.4604715, 0.4618906, 0.4633097, 0.4647288, 0.4661631, 0.4675822, 0.4690166, 0.4704356, 0.47187, 0.4733043, 0.4747539, 0.4761883, 0.4776379, 0.4790875, 0.4805371, 0.4819867, 0.4834363, 0.4848859, 0.4863508, 0.4878157, 0.4892805, 0.4907454, 0.4922103, 0.4936904, 0.4951553, 0.4966354, 0.4981155, 0.4995956, 0.501091, 0.5025711, 0.5040665, 0.5055467, 0.507042, 0.5085527, 0.5100481, 0.5115435, 0.5130541, 0.5145647, 0.5160754, 0.517586, 0.5190967, 0.5206226, 0.5221485, 0.5236591, 0.525185, 0.5267262, 0.5282521, 0.529778, 0.5313191, 0.5328603, 0.5344015, 0.5359426, 0.537499, 0.5390402, 0.5405966, 0.542153, 0.5437095, 0.5452659, 0.5468223, 0.548394, 0.5499657, 0.5515373, 0.553109, 0.5546807, 0.5562524, 0.5578393, 0.5594263, 0.5610132, 0.5626001, 0.5641871, 0.565774, 0.5673762, 0.5689784, 0.5705806, 0.5721828, 0.573785, 0.5754025, 0.5770047, 0.5786221, 0.5802396, 0.581857, 0.5834897, 0.5851072, 0.5867399, 0.5883726, 0.5900053, 0.5916381, 0.5932708, 0.5949187, 0.5965667, 0.5982147, 0.5998627, 0.6015106, 0.6031586, 0.6048219, 0.6064851, 0.6081483, 0.6098116, 0.6114748, 0.6131533, 0.6148165, 0.616495, 0.6181735, 0.619852, 0.6215457, 0.6232242, 0.624918, 0.6266117, 0.6283055, 0.6299992, 0.631693, 0.633402, 0.635111, 0.63682, 0.638529, 0.640238, 0.6419471, 0.6436713, 0.6453956, 0.6471199, 0.6488441, 0.6505684, 0.6523079, 0.6540322, 0.6557717, 0.6575113, 0.6592508, 0.6610056, 0.6627451, 0.6644999, 0.6662547, 0.6680095, 0.6697642, 0.6715343, 0.6732891, 0.6750591, 0.6768292, 0.6785992, 0.6803845, 0.6821546, 0.6839399, 0.6857252, 0.6875105, 0.6892958, 0.6910811, 0.6928817, 0.6946822, 0.6964675, 0.6982834, 0.7000839, 0.7018845, 0.7037003, 0.7055161, 0.707332, 0.7091478, 0.7109636, 0.7127947, 0.7146105, 0.7164416, 0.7182727, 0.720119, 0.7219501, 0.7237964, 0.7256275, 0.7274739, 0.7293355, 0.7311818, 0.7330282, 0.7348898, 0.7367514, 0.738613, 0.7404746, 0.7423514, 0.744213, 0.7460899, 0.7479667, 0.7498436, 0.7517205, 0.7536126, 0.7554894, 0.7573816, 0.7592737, 0.7611658, 0.7630732, 0.7649653, 0.7668727, 0.76878, 0.7706874, 0.7725948, 0.7745174, 0.7764248, 0.7783474, 0.7802701, 0.7821927, 0.7841306, 0.7860533, 0.7879911, 0.789929, 0.7918669, 0.7938048, 0.795758, 0.7976959, 0.799649, 0.8016022, 0.8035554, 0.8055238, 0.8074769, 0.8094453, 0.8114137, 0.8133822, 0.8153506, 0.8173342, 0.8193179, 0.8212863, 0.82327, 0.8252689, 0.8272526, 0.8292515, 0.8312352, 0.8332341, 0.8352331, 0.8372473, 0.8392462, 0.8412604, 0.8432746, 0.8452888, 0.847303, 0.8493172, 0.8513466, 0.8533761, 0.8554055, 0.857435, 0.8594644, 0.8614939, 0.8635386, 0.8655833, 0.867628, 0.8696727, 0.8717327, 0.8737774, 0.8758373, 0.8778973, 0.8799573, 0.8820325, 0.8840925, 0.8861677, 0.8882429, 0.8903182, 0.8923934, 0.8944839, 0.8965591, 0.8986496, 0.9007401, 0.9028305, 0.9049363, 0.9070268, 0.9091325, 0.9112383, 0.913344, 0.915465, 0.9175708, 0.9196918, 0.9218128, 0.9239338, 0.9260548, 0.9281758, 0.930312, 0.9324483, 0.9345846, 0.9367208, 0.9388571, 0.9410086, 0.9431601, 0.9453117, 0.9474632, 0.9496147, 0.9517815, 0.953933, 0.9560998, 0.9582666, 0.9604334, 0.9626154, 0.9647822, 0.9669642, 0.9691463, 0.9713283, 0.9735256, 0.9757076, 0.9779049, 0.9801022, 0.9822995, 0.9844968, 0.9867094, 0.988922, 0.9911345, 0.9933471, 0.9955596, 0.9977722, 1.0" ;
        <http://sparql.xyz/facade-x/data/Resolution Unit>
                "Inch" ;
        <http://sparql.xyz/facade-x/data/Resolution Units>
                "inch" ;
        <http://sparql.xyz/facade-x/data/Scene Capture Type>
                "Standard" ;
        <http://sparql.xyz/facade-x/data/Shutter Speed Value>
                "1/165 sec" ;
        <http://sparql.xyz/facade-x/data/Signature>     "acsp" ;
        <http://sparql.xyz/facade-x/data/Software>      "GIMP 2.4.5" ;
        <http://sparql.xyz/facade-x/data/Sub-Sec Time>  "00" ;
        <http://sparql.xyz/facade-x/data/Sub-Sec Time Digitized>
                "00" ;
        <http://sparql.xyz/facade-x/data/Sub-Sec Time Original>
                "00" ;
        <http://sparql.xyz/facade-x/data/Tag Count>     "17" ;
        <http://sparql.xyz/facade-x/data/Technology>    "CRT " ;
        <http://sparql.xyz/facade-x/data/Thumbnail Height Pixels>
                "0" ;
        <http://sparql.xyz/facade-x/data/Thumbnail Length>
                "1378 bytes" ;
        <http://sparql.xyz/facade-x/data/Thumbnail Offset>
                "1090 bytes" ;
        <http://sparql.xyz/facade-x/data/Thumbnail Width Pixels>
                "0" ;
        <http://sparql.xyz/facade-x/data/User Comment>  "" ;
        <http://sparql.xyz/facade-x/data/Version>       "2.1.0" , "1.1" ;
        <http://sparql.xyz/facade-x/data/Viewing Conditions>
                "view (0x76696577): 36 bytes" ;
        <http://sparql.xyz/facade-x/data/Viewing Conditions Description>
                "Reference Viewing Condition in IEC61966-2.1" ;
        <http://sparql.xyz/facade-x/data/White Balance Mode>
                "Auto white balance" ;
        <http://sparql.xyz/facade-x/data/X Resolution>  "72 dots" , "72 dots per inch" ;
        <http://sparql.xyz/facade-x/data/XYZ values>    "0.964 1 0.825" ;
        <http://sparql.xyz/facade-x/data/Y Resolution>  "72 dots per inch" , "72 dots" ;
        <http://sparql.xyz/facade-x/data/YCbCr Positioning>
                "Datum point" ;
        <http://sparql.xyz/facade-x/data/size>          7958 . 

Bibtex

Data:

@article{Knuth1984,
  title={Literate Programming},
  author={Donald E. Knuth},
  journal={The Computer Journal},
  volume={27},
  number={2},
  pages={97--111},
  year={1984},
  publisher={Oxford University Press}
}

Facade-X RDF:

[ a       <http://sparql.xyz/facade-x/ns/root> ;
  <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1>
          [ a       <http://sparql.xyz/facade-x/data/article> ;
            <http://sparql.xyz/facade-x/data/author>
                    "Donald E. Knuth" ;
            <http://sparql.xyz/facade-x/data/journal>
                    "The Computer Journal" ;
            <http://sparql.xyz/facade-x/data/number>
                    "2" ;
            <http://sparql.xyz/facade-x/data/pages>
                    "97--111" ;
            <http://sparql.xyz/facade-x/data/publisher>
                    "Oxford University Press" ;
            <http://sparql.xyz/facade-x/data/title>
                    "Literate Programming" ;
            <http://sparql.xyz/facade-x/data/volume>
                    "27" ;
            <http://sparql.xyz/facade-x/data/year>
                    "1984"
          ]
] .

Markdown

Data:

# Title

The following list of issues:

- first issue
- second issue

---

Footer paragraph.

Facade-X RDF:

@prefix fx: <http://sparql.xyz/facade-x/ns/> .
@prefix xyz: <http://sparql.xyz/facade-x/data/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.

[] a fx:root, xyz:Document ;
   rdf:_1 [ 
       a xyz:Heading ;
	   rdf:_1 "Title"^^xsd:string ;
	   xyz:level "1"^^xsd:int ] ;
   rdf:_2 [
       a xyz:Paragraph ;
	   rdf:_1 "The following list of issues:"^^xsd:string ] ;
   rdf:_3 [
	   a xyz:BulletList ;
	   rdf:_1 [
	      a xyz:ListItem ;
		  rdf:_1 [ a xyz:Paragraph ; rdf:_1 "first issue"^^xsd:string ]] ;
	   rdf:_2 [
	   	  a xyz:ListItem ;
		  rdf:_1 [ a xyz:Paragraph ; rdf:_1 "second issue"^^xsd:string ] ] ] ;
	rdf:_4 [ a xyz:ThematicBreak ] ;
	rdf:_5 [ a xyz:Paragraph ; rdf:_1 "Footer paragraph."^^xsd:string ] .

YAML

Data:

foo: bar
pleh: help
stuff:
  foo: bar
  bar: foo

Facade-X RDF:

@prefix fx: <http://sparql.xyz/facade-x/ns/> .
@prefix xyz: <http://sparql.xyz/facade-x/data/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.

[ a fx:root ; 
  xyz:foo "bar"^^xsd:string ; 
  xyz:pleh "help"^^xsd:string ; 
  xyz:stuff [ 
  	xyz:foo "bar"^^xsd:string ; 
	xyz:bar "foo"^^xsd:string ]]
	.

Configuration

SPARQL Anything will act as a virtual endpoint that can be queried exactly as a remote SPARQL endpoint.

Passing triplification options via SERVICE IRI

In order to instruct the query processor to delegate the execution to SPARQL Anything, you can use the following IRI-schema within SERVICE clauses.

x-sparql-anything ':' ([option] ('=' [value])? ','?)+

A minimal URI that uses only the resource locator is also possible.

x-sparql-anything ':' URL

In this case SPARQL Anything guesses the data source type from the file extension.

Passing triplification options via Basic Graph Pattern

Alternatively, options can be provided as basic graph pattern inside the SERVICE clause as follows

PREFIX xyz: <http://sparql.xyz/facade-x/data/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX fx: <http://sparql.xyz/facade-x/ns/>

SELECT ?seriesName
WHERE {

    SERVICE <x-sparql-anything:> {
        fx:properties fx:location "https://sparql-anything.cc/example1.json" .
        ?tvSeries xyz:name ?seriesName .
        ?tvSeries xyz:stars ?star .
        ?star fx:anySlot "Courteney Cox" .
    }

}

Note that

  1. The SERVICE IRI scheme must be x-sparql-anything:.
  2. Each triplification option to pass to the engine corresponds to a triple of the Basic Graph Pattern inside the SERVICE clause.
  3. Such triples must have fx:properties as subject, fx:[OPTION-NAME] as predicate, and a literal or a variable as object.

You can also mix the two modalities as follows.

PREFIX xyz: <http://sparql.xyz/facade-x/data/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX fx: <http://sparql.xyz/facade-x/ns/>

SELECT ?seriesName
WHERE {

    SERVICE <x-sparql-anything:blank-nodes=false> {
        fx:properties fx:location "https://sparql-anything.cc/example1.json" .
        ?tvSeries xyz:name ?seriesName .
        ?tvSeries xyz:stars ?star .
        ?star fx:anySlot "Courteney Cox" .
    }

}

General purpose options

Option name Description Valid Values Default Value
location* The URL of the data source. Any valid URL. -
content* The content to be transformed. Any valid literal. -
command* An external command line to be executed. The output is handled according to the option 'media-type' Any valid literal. -
root The IRI of generated root resource. Any valid IRI. location + '#' (in case of location argument is set) or 'http://sparql.xyz/facade-x/data/' + md5Hex(content) + '#' (in case of content argument set)
media-type The media-type of the data source. Any valid Media-Type. Supported media-types: application/xml, image/png, text/html, application/octet-stream, application/json, image/jpeg, image/tiff, image/bmp, text/csv, image/vnd.microsoft.icon,text/plain No value (the media-type will be guessed from the the file extension)
namespace The namespace prefix for the properties that will be generated. Any valid namespace prefix. http://sparql.xyz/facade-x/data/
blank-nodes It tells sparql.anything to generate blank nodes or not. true/false true
trim-strings Trim all string literals. true/false false
null-string Do not produce triples where the specificed string would be in the object position of the triple. any string not set
triplifier It forces sparql.anything to use a specific triplifier for transforming the data source A canonical name of a Java class No value
charset The charset of the data source. Any charset. UTF-8
metadata It tells sparql.anything to extract metadata from the data source and to store it in the named graph with URI <http://sparql.xyz/facade-x/data/metadata> true/false false
ondisk It tells sparql.anything to use an on disk graph (instead of the default in memory graph). The string should be a path to a directory where the on disk graph will be stored. Using an on disk graph is almost always slower (than using the default in memory graph) but with it you can triplify large files without running out of memory. a path to a directory not set
ondisk.reuse When using an on disk graph, it tells sparql.anything to reuse the previous on disk graph. true not set
strategy The execution strategy. 0 = in memory, all triples; 1 = in memory, only triples matching any of the triple patterns in the where clause 0,1 1
slice The resources is sliced and the SPARQL query executed on each one of the parts. Supported by: CSV (row by row); JSON (when array slice by item, when json object requires json.path); XML (requires xml.path) true/false false

* It is mandatory to provide either location, content, or command.

Format specific options

HTML

Option name Description Valid Values Default Value
html.selector A CSS selector that restricts the HTML tags to consider for the triplification. Any valid CSS selector. No Value
html.browser It tells the triplifier to use the specified browser to navigate to the page to obtain HTML. By default a browser is not used. The use of a browser has some dependencies -- see BROWSER. chromium|webkit|firefox No Value
html.browser.timeout When using a browser to nagivate, it tells the browser if it spends longer than this amount of time (in milliseconds) until a load event is emitted then the operation will timeout. any integer 30000
html.browser.wait When using a browser to nagivate, it tells the triplifier to wait for the specified number of seconds (after telling the browser to navigate to the page) before attempting to obtain HTML. any integer No Value
html.browser.screenshot When using a browser to nagivate, take a screenshot of the webpage (perhaps for troubleshooting) and save it here. a file URI e.g. "file:///tmp/screenshot.png" No Value
html.metadata It tells the triplifier to extract inline RDF from HTML pages. The triples extracted will be included in the default graph. (cf. issue 164) true/false false

CSV

Option name Description Valid Values Default Value
csv.format The format of the input CSV file. Any predefined CSVFormat of the Apache's commons CSV library Default
csv.headers It tells the CSV triplifier to use the headers of the CSV file for minting the properties of the generated triples. true/false false
csv.delimiter The column delimiter, usually ,,;,\t, ... any single char ,
csv.quote-char The quoting character any single char "
csv.null-string It tells the CSV triplifier to not produce triples where the specificed string would be in the object position of the triple. any string not set

JSON

Option name Description Valid Values Default Value
json.path One or more JsonPath expressions as filters. E.g. json.path=value or json.path.1, json.path.2, ... to add multiple expressions. Any valid JsonPath (see JsonSurfer implementation))

XML

Option name Description Valid Values Default Value
xml.path One or more XPath expressions as filters. E.g. xml.path=value or xml.path.1, xml.path.2,... to add multiple expressions. Any valid XPath

BIN, PNG, JPEG, JPG, BMP, TIFF, TIF, ICO

Option name Description Valid Values Default Value
bin.encoding The encoding to use for generating the representation of the file. BASE64 BASE64

TXT

Option name Description Valid Values Default Value
txt.regex It tells sparql.anything to evaluate a regular expression on the data source. In this case the slots will be filled with the bindings of the regex. Any valid regular expression No value
txt.group It tells sparql.anything to generate slots by using a specific group of the regular expression. Any integer No value
txt.split It tells sparql.anything to split the input around the matches of the give regular expression. Any valid regular expression No value

File system and archives (Zip, Tar)

Option name Description Valid Values Default Value
archive.matches It tells sparql.anything to evaluate a regular expression on the filenames within the archives. In this case the slots will be filled with the files that match the regex only. Any valid regular expression .*

Spreadsheet: XLS, XLSx

Option name Description Valid Values Default Value
spreadsheet.headers It tells the spreadsheet triplifier to use the headers of the spreadsheet file for minting the properties of the generated triples. true/false false

Document: DOCx

Option name Description Valid Values Default Value
docs.table-headers It tells the document triplifier to use the headers of the tables within the document file for minting the properties of the generated triples. true/false false
docs.merge-paragraphs It tells the document triplifier to merge all the paragraphs of the document into a single slot (new line characters are preserved) true/false false

HTTP options

SPARQL Anything relies on Apache Commons HTTP for HTTP connections.

Option name Description Valid Values Default Value
http.client.* Calls methods on the HTTPClient Java object. E.g. http.client.useSystemProperties=false means to avoid inheriting Java system properties (Default 'yes')
http.client.useSystemProperties Use Java System Properties to configure the HTTP Client. true/false true
http.header.* To add headers to the HTTP request. E.g. http.header.accept=application/json
http.query.* To add parameters to the query string. E.g. http.query.var=value or http.query.var.1=value to add more variable of the same name
http.form.* To add parameters to the POST content. E.g. http.form.var=value or http.form.var.1=value to add more variable of the same name
http.method HTTP Method GET,POST,... GET
http.payload Sets the payload of the request
http.protocol Protocol 0.9,1.0,1.1 1.1
http.auth.user Authentication: user name
http.auth.password Authentication: password
http.redirect Follow redirect? true,false true

Query static RDF files

The SPARQL Anything engine can load static RDF files in memory and perform the query against it, alongside any x-sparql-anything service clause. RDF files produced by previous SPARQL Anything processes can joined with data coming from additional resources. This feature is enabled with the command line argument -l|--load that accepts a file or a directory. In the second case, all RDF files in the folder are loaded in memory before execution.

Query templates and variable bindings

SPARQL Anything uses the BASIL convention for variable names in queries.

The syntax is based on the underscore character: '_', and can be easily learned by examples:

  • ?_name The variable specifies the API mandatory parameter name. The value is incorporated in the query as plain literal.
  • ?__name The parameter name is optional.
  • ?_name_iri The variable is substituted with the parameter value as a IRI.
  • ?_name_en The parameter value is considered as literal with the language 'en' (e.g., en,it,es, etc.).
  • ?_name_integer The parameter value is considered as literal and the XSD datatype 'integer' is added during substitution.
  • ?_name_prefix_datatype The parameter value is considered as literal and the datatype 'prefix:datatype' is added during substitution. The prefix must be specified according to the SPARQL syntax.

Variable bindings can be passed in two ways:

  • Inline arguments, using the option -v|--values
  • Passing an SPARQL Result Set file, using the option -i|--input

In the first case, the engine computes the cardinal product of all the variables bindings included and execute the query for each one of the resulting set of bindings.

In the second case, the query is executed for each set of bindings in the result set.

Functions and magic properties

SPARQL Anything is built on Apache Jena, see a list of supported functions on the Apache Jena documentation.

Working with sequences

The fx:anySlot magic property

The execution engine is sensible to the magic property

<http://sparql.xyz/facade-x/ns/anySlot>

This property matches the RDF container membership properties (e.g. rdf:_1, rdf:_2 ...).

Functions on container membership properties

The system supports the following functions on container membership properties (See issue 78):

  • fx:before(?a, ?b) returns true if ?a and ?b are container membership properties and ?a is lower than ?b, false otherwise
  • fx:after(?a, ?b) returns true if ?a and ?b are container membership properties and ?a is higher than ?b, false otherwise
  • fx:previous(?a) returns the container membership property that preceeds ?a (rdf:_2 -> rdf:_1)
  • fx:next(?b) returns the container membership property that succeedes ?b (rdf:_1 -> rdf:_2)
  • fx:forward(?a, ?b) returns the container membership property that follows ?a of ?b steps (rdf:_2, 5 -> rdf:_7)
  • fx:backward(?a, ?b) returns the container membership property that preceeds ?a of ?b steps (rdf:_24, 4 -> rdf:_20)

Working with strings

The system supports the following functions for string manipulation (See issue 104 and issue 121):

The system supports the following functions to manipulate words (See issue 121):

Hash functions

The system supports the following functions for computing hash digest from strings (See issues 104 and 121):

Functions on URLs

The system supports the following functions operating on strings that are URLs (See issue 176):

The function fx:serial:

The function fx:serial (?a ... ?n) generates an incremental number using the arguments as reference counters. For example, calling fx:serial("x") two times will generate 1 and then 2. Instead, calling fx:serial(?x) multiple times will generate sequential numbers for each value of ?x.

The function fx:entity

The function fx:entity (?a ... ?n) accepts a list of arguments and performs concatenation and automatic casting to string. Container membership properties (rdf:_1,rdf:_2,...) are cast to numbers and then to strings ("1","2").

BIND ( fx:entity ( myns:, "dummy-entity", 1) AS ?myentity) 
# is equivalent to
BIND ( IRI( CONCAT ( STR (myns:), "dummy-entity", STR(1) ) AS ?myentity )

See also issue 106

The function fx:literal

The function fx:literal( ?a , ?b ) builds a literal from the string representation of ?a, using ?b either as a typed literal (if a IRI is given) or a lang code (if a string of length of two is given).

Usage

Command line interface

An executable JAR can be obtained from the Releases page.

The jar can be executed as follows:

usage: java -jar sparql.anything-<version> -q query [-f format] [-i
            filepath]  [-l path] [-o filepath]
 -f,--format <string>                  OPTIONAL -  Format of the output
                                       file. Supported values: JSON, XML,
                                       CSV, TEXT, TTL, NT, NQ. [Default:
                                       TEXT or TTL]
 -i,--input <input>                    OPTIONAL - The path to a SPARQL
                                       result set file to be used as
                                       input. When present, the query is
                                       pre-processed by substituting
                                       variable names with values from the
                                       bindings provided. The query is
                                       repeated for each set of bindings
                                       in the input result set.
 -l,--load <load>                      OPTIONAL - The path to one RDF file
                                       or a folder including a set of
                                       files to be loaded. When present,
                                       the data is loaded in memory and
                                       the query executed against it.
 -o,--output <file>                    OPTIONAL - The path to the output
                                       file. [Default: STDOUT]
 -p,--output-pattern <outputPattern>   OPTIONAL - Output filename pattern,
                                       e.g. 'myfile-?friendName.json'.
                                       Variables should start with '?' and
                                       refer to bindings from the input
                                       file. This option can only be used
                                       in combination with 'input' and is
                                       ignored otherwise. This option
                                       overrides 'output'.
 -q,--query <query>                    The path to the file storing the
                                       query to execute or the query
                                       itself.
 -s,--strategy <strategy>              OPTIONAL - Strategy for query
                                       evaluation. Possible values: '1' -
                                       triple filtering (default), '0' -
                                       triplify all data. The system
                                       fallbacks to '0' when the strategy
                                       is not implemented yet for the
                                       given resource type.
 -v,--values <values>                  OPTIONAL - Values passed as input
                                       to a query template. When present,
                                       the query is pre-processed by
                                       substituting variable names with
                                       the values provided. The passed
                                       argument must follow the syntax:
                                       var_name=var_value. Multiple
                                       arguments are allowed. The query is
                                       repeated for each set of values.

Logging can be configured adding the following option (SLF4J):

-Dorg.slf4j.simpleLogger.defaultLogLevel=trace

Fuseki

An executable JAR of a SPARQL-Anything-powered Fuseki endpoint can be obtained from the Releases page.

The jar can be executed as follows:

usage: java -jar sparql-anything-server-<version>.jar [-p port] [-e
            sparql-endpoint-path] [-g endpoint-gui-path]
 -e,--path <path>   The path where the server will be running on (Default
                    /sparql.anything).
 -g,--gui <gui>     The path of the SPARQL endpoint GUI (Default /sparql).
 -p,--port <port>   The port where the server will be running on (Default
                    3000 ).

Also a docker image can be used by following the instructions here.

Licence

SPARQL Anything is distributed under Apache 2.0 License

How to cite our work

Daga, Enrico; Asprino, Luigi; Mulholland, Paul and Gangemi, Aldo (2021). Facade-X: An Opinionated Approach to SPARQL Anything. In: Alam, Mehwish; Groth, Paul; de Boer, Victor; Pellegrini, Tassilo and Pandit, Harshvardhan J. eds. Volume 53: Further with Knowledge Graphs, Volume 53. IOS Press, pp. 58–73.

DOI: https://doi.org/10.3233/ssw210035 | PDF

@incollection{oro78973,
          volume = {53},
           month = {August},
          author = {Enrico Daga and Luigi Asprino and Paul Mulholland and Aldo Gangemi},
       booktitle = {Volume 53: Further with Knowledge Graphs},
          editor = {Mehwish Alam and Paul Groth and Victor de Boer and Tassilo Pellegrini and Harshvardhan J. Pandit},
           title = {Facade-X: An Opinionated Approach to SPARQL Anything},
       publisher = {IOS Press},
            year = {2021},
         journal = {Studies on the Semantic Web},
           pages = {58--73},
        keywords = {SPARQL; meta-model; re-engineering},
             url = {http://oro.open.ac.uk/78973/},
        abstract = {The Semantic Web research community understood since its beginning how crucial it is to equip practitioners with methods to transform non-RDF resources into RDF. Proposals focus on either engineering content transformations or accessing non-RDF resources with SPARQL. Existing solutions require users to learn specific mapping languages (e.g. RML), to know how to query and manipulate a variety of source formats (e.g. XPATH, JSON-Path), or to combine multiple languages (e.g. SPARQL Generate). In this paper, we explore an alternative solution and contribute a general-purpose meta-model for converting non-RDF resources into RDF: {\ensuremath{<}}i{\ensuremath{>}}Facade-X{\ensuremath{<}}/i{\ensuremath{>}}. Our approach can be implemented by overriding the SERVICE operator and does not require to extend the SPARQL syntax. We compare our approach with the state of art methods RML and SPARQL Generate and show how our solution has lower learning demands and cognitive complexity, and it is cheaper to implement and maintain, while having comparable extensibility and efficiency.}
}

About

SPARQL Anything is a system for Semantic Web re-engineering that allows users to ... query anything with SPARQL.

https://sparql-anything.cc/

License:Apache License 2.0


Languages

Language:Java 99.1%Language:HTML 0.7%Language:ANTLR 0.1%Language:TeX 0.0%