Informasjonsforvaltning / datacatalogtordf

A library that will map a data catalog (inkl dataset, dataservices and other dcat resources) to rdf
Apache License 2.0
5 stars 1 forks source link

Identifier blir ikke med i RDF #25

Closed vhasse-ehelse closed 3 years ago

vhasse-ehelse commented 3 years ago

Propertyen Identifier blir ikke med når datasettet transformeres til RDF

stigbd commented 3 years ago

Eg reknar med at det er dct:identifier (https://data.norge.no/specification/dcat-ap-no/#Datasett-identifikator) du siktar til.

I så fall kan vi gjer det slik at dataset.identifier blir lagt inn i dct:identifier (som vil vere ihht til anbefalinga i dcat-ap-no), som illustrert i følgande snippet:

def test_to_graph_should_return_identifier() -> None:
    """It returns an identifier graph isomorphic to spec."""
    dataset = Dataset()
    dataset.identifier = "http://example.com/datasets/1"

    src = """
    @prefix dct: <http://purl.org/dc/terms/> .
    @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
    @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
    @prefix dcat: <http://www.w3.org/ns/dcat#> .

    <http://example.com/datasets/1> a dcat:Dataset ;
             dct:identifier “http://example.com/datasets/1"^^xsd:anyURI ;
    .
    """
    g1 = Graph().parse(data=dataset.to_rdf(), format="turtle")
    g2 = Graph().parse(data=src, format="turtle")

    assert isomorphic(g1, g2)
stigbd commented 3 years ago

@jimjyang Ref diskusjonen vi hadde rundt dct:identifier for eit stund tilbake, kan du vere snill å verifisere at forslaget mitt i kommentaren over ser ok ut?

vhasse-ehelse commented 3 years ago
import datacatalogtordf as dtr

dataset = dtr.Dataset()
dataset.identifier = dtr.URI("Identifier")
rdf = dataset.to_rdf()
print(rdf.decode())

Dette gir en tom RDF

jimjyang commented 3 years ago

@jimjyang Ref diskusjonen vi hadde rundt dct:identifier for eit stund tilbake, kan du vere snill å verifisere at forslaget mitt i kommentaren over ser ok ut?

Ja, intensjonen er riktig, men i forslaget ditt så peker dct:identifier til noe annet. Burde vært: <http://example.com/datasets/1> a dcat:Dataset ; dct:identifier “http://example.com/datasets/1"^^xsd:anyURI ;

stigbd commented 3 years ago

Takk, @jimjyang Har korrigert url. Det var "typo".

stigbd commented 3 years ago

Dette gir en tom RDF

Ikkje hos meg:

>>> import datacatalogtordf as dtr
>>> dataset = dtr.Dataset()
>>> dataset.identifier = dtr.URI("Identifier")
>>> rdf = dataset.to_rdf()
>>> print(rdf.decode())
@prefix dcat: <http://www.w3.org/ns/dcat#> .

<Identifier> a dcat:Dataset .

Det er ikkje mykje her, men den er vel ikkje tom?

Uansett: Etter at eg har fiksa issuet, skal det sjå slik ut:

>>> import datacatalogtordf as dtr
>>> dataset = dtr.Dataset()
>>> dataset.identifier = dtr.URI("Identifier")
>>> rdf = dataset.to_rdf()
>>> print(rdf.decode())
@prefix dcat: <http://www.w3.org/ns/dcat#> .

<Identifier> a dcat:Dataset ;
    dct:identifier "Identifier"^^xsd:anyURI ;
.
vhasse-ehelse commented 3 years ago

Jeg fikk det samme som deg. Det var ikke helt presist å kalle det "tom". Supert at du har fikset det!

stigbd commented 3 years ago

Vi tar eit lite steg tilbake og gjer som følger:

Det betyr i praksis at vi innfører ein ny property for alle klassene som iflg dcat-ap-no v2 har denne egenskapen.

stigbd commented 3 years ago

Fiksa i https://github.com/Informasjonsforvaltning/datacatalogtordf/pull/32