**4.4 Combining the advantages of both models**

Both TULIP models, indexed member model and index list model, have different pros and cons. Users can choose either type as appropriate to their needs. Furthermore, they could create RDF triples using the merged model called the "TULIP hybrid, TH model," which combines the advantages of both types in one structure. The idea is that we take the TIM model as the basis and then add TIL elements by inserting a tlp:indexList property into each blank node of TIM and adding all tlp:element to the primary resource. For example, when adding tlp: indexList and tlp:element to **Figure 1**, it will look like **Figure 9**.

```
ex:TableExample
   tlp:element _:Table1,
                _:Col1, _:Cell11, _:Cell12, _:Cell13,
                _:Col2, _:Cell21, _:Cell22, _:Cell23,
                _:Col3, _:Cell31, _:Cell32, _:Cell33 ;
   tlp:member _:Table1 .
_:Table1 rdf:type tlp:Table ;
   tlp:index 1 ;
   tlp:indexList ( 1 0 ) ;
   tlp:member _:Col1, _:Col2, _:Col3 .
...
_:Cell33 rdf:type tlp:Cell ;
   tlp:index 3 ;
   tlp:indexList ( 1 3 3 0 ) ;
   rdfs:label "Cell Content 3,3" .
```
**Figure 9.** *RDF triples of the example table represented by TH model.*

*TULIP: A Five-Star Table and List - From Machine-Readable to Machine-Understandable… DOI: http://dx.doi.org/10.5772/intechopen.91406*

When shown as RDF graph, it will look like **Figure 10**. (To make the graph more compact, we have resized the table to two columns by two rows and remove some nodes, and many edges of tlp:element have also been omitted. In fact, tlp:element will point to every blank node).

Likewise, the TH model RDF triples of the example list are in **Figure 11**. When shown as the RDF graph, it will look like **Figure 12** (showing only some tlp:element edges to make the graph more convenient and clear).

**Figure 10.**

SELECT ?label WHERE {

}

}

**Figure 9.**

**32**

ex:TableExample tlp:element ?elem . ?elem tlp:indexList/rdf:first 1 .

*Linked Open Data - Applications,Trends and Future Developments*

?elem tlp:indexList/rdf:rest/rdf:first 3 .

ex:TableExample tlp:element ?elem . ?elem tlp:indexList/rdf:first 1 .

?elem tlp:indexList/rdf:rest/rdf:rest/rdf:first 3 .

Alternatively, if we want the whole third row, we match the tlp:indexList with (1 ? 3) where "?" at the second subscript position is the tlp:Column level, which we

Both TULIP models, indexed member model and index list model, have differ-

ent pros and cons. Users can choose either type as appropriate to their needs. Furthermore, they could create RDF triples using the merged model called the "TULIP hybrid, TH model," which combines the advantages of both types in one structure. The idea is that we take the TIM model as the basis and then add TIL elements by inserting a tlp:indexList property into each blank node of TIM and adding all tlp:element to the primary resource. For example, when adding tlp:

indexList and tlp:element to **Figure 1**, it will look like **Figure 9**.

...

*RDF triples of the example table represented by TH model.*

ex:TableExample

tlp:element \_:Table1,

tlp:member \_:Table1 . \_:Table1 rdf:type tlp:Table ; tlp:index 1 ; tlp:indexList ( 1 0 ) ;

\_:Cell33 rdf:type tlp:Cell ; tlp:index 3 ;

> tlp:indexList ( 1 3 3 0 ) ; rdfs:label "Cell Content 3,3" .

tlp:member \_:Col1, \_:Col2, \_:Col3 .

\_:Col1, \_:Cell11, \_:Cell12, \_:Cell13, \_:Col2, \_:Cell21, \_:Cell22, \_:Cell23, \_:Col3, \_:Cell31, \_:Cell32, \_:Cell33 ;

?elem rdfs:label ?label .

will not filter. So we will get every column.

?elem rdfs:label ?label .

**4.4 Combining the advantages of both models**

The results are as follows:

"Cell Content 3,1" "Cell Content 3,2" "Cell Content 3,3"

SELECT ?label WHERE {

The results are: "Cell Content 1,3" "Cell Content 2,3" "Cell Content 3,3"

*RDF graph of the example table represented by TH model.*

```
ex:ListExample
   tlp:element _:List1,
                _:Item1,
                _:Item2, _:Item21, _:Item22, _:Item221,
                _:Item3 ;
   tlp:member _:List1 .
_:List1 rdf:type tlp:List ;
   tlp:index 1 ;
   tlp:indexList ( 1 0 ) ;
   tlp:member _:Item1, _:Item2, _:Item3 .
...
_:Item3 rdf:type tlp:Item ;
   tlp:index 3 ;
   tlp:indexList ( 1 3 0 ) ;
   rdfs:label "List Item 3" .
```
#### **Figure 11.**

*RDF triples of the example list represented by TH model.*

**Figure 12.** *RDF graph of the example list represented by TH model.*

**Figure 13.**

*Excerpt of TULIP vocabulary syntaxes tlp:element and tlp:member.*

An excerpt of TULIP vocabulary syntax (detail specification can be found at http://purl.org/tulip/spec) for tlp:element and tlp:member is shown in **Figure 13**.
