github.com/gopherd/gonum@v0.0.4/graph/formats/rdf/urna_example_test.go (about)

     1  // Copyright ©2020 The Gonum Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package rdf_test
     6  
     7  import (
     8  	"fmt"
     9  	"log"
    10  	"strings"
    11  
    12  	"github.com/gopherd/gonum/graph/formats/rdf"
    13  )
    14  
    15  func ExampleURDNA2015() {
    16  	for _, statements := range []string{
    17  		`
    18  _:a <ex:q> <ex:p> .
    19  _:b <ex:q> <ex:p> .
    20  _:c <ex:p> _:a .
    21  _:d <ex:p> _:b .
    22  _:c <ex:r> _:d .
    23  `,
    24  		`
    25  _:c1 <ex:p> _:a1 .
    26  _:b1 <ex:q> <ex:p> .
    27  _:d1 <ex:p> _:b1 .
    28  _:a1 <ex:q> <ex:p> .
    29  _:c1 <ex:r> _:d1 .
    30  `,
    31  	} {
    32  		// Decode the statement stream.
    33  		dec := rdf.NewDecoder(strings.NewReader(statements))
    34  		var s []*rdf.Statement
    35  		for {
    36  			l, err := dec.Unmarshal()
    37  			if err != nil {
    38  				break
    39  			}
    40  			s = append(s, l)
    41  		}
    42  
    43  		relabeled, err := rdf.URDNA2015(nil, s)
    44  		if err != nil {
    45  			log.Fatal(err)
    46  		}
    47  		for _, s := range relabeled {
    48  			fmt.Println(s)
    49  		}
    50  		fmt.Println()
    51  	}
    52  
    53  	// Output:
    54  	//
    55  	// _:c14n0 <ex:p> _:c14n2 .
    56  	// _:c14n1 <ex:p> _:c14n3 .
    57  	// _:c14n1 <ex:r> _:c14n0 .
    58  	// _:c14n2 <ex:q> <ex:p> .
    59  	// _:c14n3 <ex:q> <ex:p> .
    60  	//
    61  	// _:c14n0 <ex:p> _:c14n2 .
    62  	// _:c14n1 <ex:p> _:c14n3 .
    63  	// _:c14n1 <ex:r> _:c14n0 .
    64  	// _:c14n2 <ex:q> <ex:p> .
    65  	// _:c14n3 <ex:q> <ex:p> .
    66  }
    67  
    68  func ExampleURGNA2012() {
    69  	for _, statements := range []string{
    70  		`
    71  _:a <ex:q> <ex:p> .
    72  _:b <ex:q> <ex:p> .
    73  _:c <ex:p> _:a .
    74  _:d <ex:p> _:b .
    75  _:c <ex:r> _:d .
    76  `,
    77  		`
    78  _:c1 <ex:p> _:a1 .
    79  _:b1 <ex:q> <ex:p> .
    80  _:d1 <ex:p> _:b1 .
    81  _:a1 <ex:q> <ex:p> .
    82  _:c1 <ex:r> _:d1 .
    83  `,
    84  	} {
    85  		// Decode the statement stream.
    86  		dec := rdf.NewDecoder(strings.NewReader(statements))
    87  		var s []*rdf.Statement
    88  		for {
    89  			l, err := dec.Unmarshal()
    90  			if err != nil {
    91  				break
    92  			}
    93  			s = append(s, l)
    94  		}
    95  
    96  		relabeled, err := rdf.URGNA2012(nil, s)
    97  		if err != nil {
    98  			log.Fatal(err)
    99  		}
   100  		for _, s := range relabeled {
   101  			fmt.Println(s)
   102  		}
   103  		fmt.Println()
   104  	}
   105  
   106  	// Output:
   107  	//
   108  	// _:c14n0 <ex:p> _:c14n3 .
   109  	// _:c14n0 <ex:r> _:c14n1 .
   110  	// _:c14n1 <ex:p> _:c14n2 .
   111  	// _:c14n2 <ex:q> <ex:p> .
   112  	// _:c14n3 <ex:q> <ex:p> .
   113  	//
   114  	// _:c14n0 <ex:p> _:c14n3 .
   115  	// _:c14n0 <ex:r> _:c14n1 .
   116  	// _:c14n1 <ex:p> _:c14n2 .
   117  	// _:c14n2 <ex:q> <ex:p> .
   118  	// _:c14n3 <ex:q> <ex:p> .
   119  }