Closed vhasse-ehelse closed 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)
@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?
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 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 ;
Takk, @jimjyang Har korrigert url. Det var "typo".
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 ;
.
Jeg fikk det samme som deg. Det var ikke helt presist å kalle det "tom". Supert at du har fikset det!
Vi tar eit lite steg tilbake og gjer som følger:
identifier
til dct:identifier
,dct_identifier
innføres som nytt felt, verdien blir eksponert i dct:identifier
, og det overlates til bruker av biblioteket og evt gjenbruke (deler av) verdi frå identifier
.Det betyr i praksis at vi innfører ein ny property for alle klassene som iflg dcat-ap-no v2 har denne egenskapen.
Propertyen Identifier blir ikke med når datasettet transformeres til RDF