Преобразование XML в нотацию rdf n3 - PullRequest
0 голосов
/ 12 декабря 2018

Я изучаю RDF.Итак, у меня есть набор данных XML, и я должен преобразовать его в RDF N3 с XSLT.

Мой XML описывает набор коммерческих магазинов <Loja> и набор продуктов <Modelo>.У продуктов есть сущности <Loja>, которые имеют идентификаторы магазинов, в которых они доступны, и количество единиц, доступных в этом магазине.

Пример моего XML:

<root>
    <Lojas>
        <Loja>
            <ID>11</ID>
            <Nome>Media Markt Aveiro</Nome>
            <Grupo>Media Markt</Grupo>
            <Morada>
                <Detalhes>Aveiro Shopping Center</Detalhes>
                <Rua>Estrada da Taboeira</Rua>
                <CodigoPostal>3800-042</CodigoPostal>
                <Distrito>Aveiro</Distrito>
                <Pais>Portugal</Pais>
            </Morada>
            <Contacto>
                <Telefone>+351 234 001 100</Telefone>
                <Fax>+351 234 001 119</Fax>
                <Email>clientes@mediamarkt.pt</Email>
                <Website></Website>
            </Contacto>
        </Loja>
    </Lojas>

    <Produtos>
        <Computadores>
            <Modelo>
                <ID>001</ID>
                <Descricao>Vivobook Flip TP410UA-57DHDCB2</Descricao>
                <Marca>Asus</Marca>
                <Categoria>Comunicação Móvel</Categoria>
                <Ram>8 Gb</Ram>
                <Processador>i5-7200U 2.5GHz</Processador>
                <CapacidadeDisco>256 GB</CapacidadeDisco>
                <Grafica>HD Graphics 620</Grafica>
                <TamanhoEcra>14.0</TamanhoEcra>
                <Preco>799.00</Preco>
                <Loja>
                    <ID>11</ID>
                    <Unidades>4</Unidades>
                </Loja>
                <Loja>
                    <ID>13</ID>
                    <Unidades>5</Unidades>
                </Loja>
            </Modelo>
        </Computadores>
    </Produtos>
</root>

My RDFN3 без префиксов:

@prefix loja: <http://www.shop.pt/loja/> . 
@prefix morada: <http://www.shop.pt/morada/> . 
@prefix contacto: <http://www.shop.pt/contacto/> . 
@prefix modelo: <http://www.shop.pt/modelo/> . 
@prefix modelo_em_loja: <http://www.shop.pt/modelo/loja/> . 
@prefix computador: <http://www.shop.pt/computador/> . 

loja:11
    a loja: ; 
    loja:nome "Media Markt Aveiro" ; 
    loja:grupo "Media Markt" ; 
    loja:morada morada:11 ; 
    loja:contacto contacto:11 . 
morada:11
    a morada: ; 
    morada:detalhes "Aveiro Shopping Center" ; 
    morada:rua "Estrada da Taboeira" ; 
    morada:codigopostal "3800-042" ; 
    morada:distrito "Aveiro" ; 
    morada:pais "Portugal" . 
contacto:11
    a contacto: ; 
    contacto:telefone "+351 234 001 100" ; 
    contacto:fax "+351 234 001 119" ; 
    contacto:email "clientes@mediamarkt.pt" ; 
    contacto:website "" . 

modelo:001
    a computador: ; 
    modelo:descricao "Vivobook Flip TP410UA-57DHDCB2" ; 
    modelo:marca "Asus" ; 
    modelo:categoria "Comunicação Móvel" ; 
    modelo:ram "8 Gb" ; 
    modelo:processador "i5-7200U 2.5GHz" ; 
    modelo:capacidadedisco "256 GB" ; 
    modelo:grafica "HD Graphics 620" ; 
    modelo:tamanhoecra "14.0" ; 
    modelo:preco "799.00" ; 
    modelo:loja modelo_em_loja:00111 , 
                modelo_em_loja:00113 . 
modelo_em_loja:00111
    modelo_em_loja:LojaID "11" ; 
    modelo_em_loja:unidades "4" . 
modelo_em_loja:00113
    modelo_em_loja:LojaID "13" ; 
    modelo_em_loja:unidades "5" . 

Мне нужно мнение, правильно ли я это делаю или есть ли лучший способ.Например, должен ли я использовать анонимную сущность для описания:

modelo:001
    modelo:loja modelo_em_loja:00111 , 
                modelo_em_loja:00113 . 
modelo_em_loja:00111
    modelo_em_loja:LojaID "11" ; 
    modelo_em_loja:unidades "4" . 
modelo_em_loja:00113
    modelo_em_loja:LojaID "13" ; 
    modelo_em_loja:unidades "5" . 
...