testing DIME

thanados
Alessia Bardi 3 years ago
parent 0010458a23
commit 0d0ebc4d77

@ -0,0 +1,7 @@
# the triples to add to the provenance graph https://ariadne-infrastructure.eu/datasourceApis
<http://www.d-net.research-infrastructures.eu/provenance/isApiOf> a rdf:Property .
<http://www.d-net.research-infrastructures.eu/provenance/insertedInDate> a rdf:Property .
<http://www.d-net.research-infrastructures.eu/provenance/isApiOf> <http://www.w3.org/2000/01/rdf-schema#subPropertyOf> <http://purl.org/pav/importedFrom> .
<http://www.d-net.research-infrastructures.eu/provenance/insertedInDate> <http://www.w3.org/2000/01/rdf-schema#subPropertyOf> <http://purl.org/pav/createdOn> .

@ -167,7 +167,7 @@ public class X3MTransformAriadnePlusJobNode extends AsyncJobNode {
}
private void prepareXpathSelectors() throws SaxonApiException {
protected void prepareXpathSelectors() throws SaxonApiException {
Map<String, String> namespaces = Maps.newHashMap();
namespaces.put("oai", OAI_NAMESPACE_URI);
namespaces.put("dri", DRI_NAMESPACE_URI);
@ -178,7 +178,7 @@ public class X3MTransformAriadnePlusJobNode extends AsyncJobNode {
}
private String extractFromRecord(final String record, final XPathSelector xPathSelector) {
protected String extractFromRecord(final String record, final XPathSelector xPathSelector) {
try {
return this.saxonHelper.help().setSerializerProperty(Property.OMIT_XML_DECLARATION, "yes").evaluateSingleAsString(record, xPathSelector);
} catch (SaxonApiException e) {
@ -266,5 +266,44 @@ public class X3MTransformAriadnePlusJobNode extends AsyncJobNode {
return mappings;
}
public XPathSelector getXpathSelectorMetadata() {
return xpathSelectorMetadata;
}
public void setXpathSelectorMetadata(XPathSelector xpathSelectorMetadata) {
this.xpathSelectorMetadata = xpathSelectorMetadata;
}
public XPathSelector getXpathSelectorHeader() {
return xpathSelectorHeader;
}
public void setXpathSelectorHeader(XPathSelector xpathSelectorHeader) {
this.xpathSelectorHeader = xpathSelectorHeader;
}
public XPathSelector getXpathSelectorFooter() {
return xpathSelectorFooter;
}
public void setXpathSelectorFooter(XPathSelector xpathSelectorFooter) {
this.xpathSelectorFooter = xpathSelectorFooter;
}
public XPathSelector getXpathSelectorObjIdentifier() {
return xpathSelectorObjIdentifier;
}
public void setXpathSelectorObjIdentifier(XPathSelector xpathSelectorObjIdentifier) {
this.xpathSelectorObjIdentifier = xpathSelectorObjIdentifier;
}
public SaxonHelper getSaxonHelper() {
return saxonHelper;
}
public void setSaxonHelper(SaxonHelper saxonHelper) {
this.saxonHelper = saxonHelper;
}
}

@ -20,142 +20,142 @@
<!-- The prefix is a namespace that must be declared in the X3ML definition.
in the x3ml define <namespace prefix="ariadneplus" uri="https://ariadne-infrastructure.eu/aocat/"/> -->
<generator name="CollectionURI" prefix="ariadneplus" shorten="yes">
<generator name="CollectionURI" prefix="ariadneplus" shorten="yes">
<pattern>Collection/{term}</pattern>
</generator>
<generator name="CollectionURI-2" prefix="ariadneplus" shorten="yes">
<generator name="CollectionURI-2" prefix="ariadneplus" shorten="yes">
<pattern>Collection/{provider}/{term}</pattern>
</generator>
<generator name="DataResourceURI" prefix="ariadneplus" shorten="yes">
<generator name="DataResourceURI" prefix="ariadneplus" shorten="yes">
<pattern>Resource/{term}</pattern>
</generator>
<generator name="DataResourceURI-2" prefix="ariadneplus" shorten="yes">
<generator name="DataResourceURI-2" prefix="ariadneplus" shorten="yes">
<pattern>Resource/{provider}/{term}</pattern>
</generator>
<generator name="ObjectURI" prefix="ariadneplus" shorten="yes">
<generator name="ObjectURI" prefix="ariadneplus" shorten="yes">
<pattern>Object/{resource}-{term}</pattern>
</generator>
<generator name="ObjectURI-2" prefix="ariadneplus" shorten="yes">
<generator name="ObjectURI-2" prefix="ariadneplus" shorten="yes">
<pattern>Object/{arg1}/{arg2}</pattern>
</generator>
<generator name="ObjectLabel">
<generator name="ObjectLabel">
<pattern>Resource {resource} is about object {term}</pattern>
</generator>
<generator name="IdentifierURI" prefix="ariadneplus">
<generator name="IdentifierURI" prefix="ariadneplus">
<pattern>Identifier/{term}</pattern>
</generator>
<generator name="DocumentURI" prefix="ariadneplus" shorten="yes">>
<generator name="DocumentURI" prefix="ariadneplus" shorten="yes">>
<pattern>Document/{term}</pattern>
</generator>
<generator name="DocumentURI-2" prefix="ariadneplus" shorten="yes">
<generator name="DocumentURI-2" prefix="ariadneplus" shorten="yes">
<pattern>Document/{provider}/{term}</pattern>
</generator>
<generator name="EventURI" prefix="ariadneplus" shorten="yes">
<generator name="EventURI" prefix="ariadneplus" shorten="yes">
<pattern>Event/{resource}-{term}</pattern>
</generator>
<generator name="EventURI-2" prefix="ariadneplus">
<generator name="EventURI-2" prefix="ariadneplus">
<pattern>Event/{arg1}/{arg2}</pattern>
</generator>
<generator name="EventURI-3" prefix="ariadneplus">
<generator name="EventURI-3" prefix="ariadneplus">
<pattern>Event/{arg1}/{arg2}/{arg3}</pattern>
</generator>
<generator name="EventLabel">
<generator name="EventLabel">
<pattern>Resource {resource} is about event {term}</pattern>
</generator>
<generator name="Time-SpanURI" prefix="ariadneplus">
<generator name="Time-SpanURI" prefix="ariadneplus">
<pattern>Time-Span/{term}</pattern>
</generator>
<generator name="Time-SpanURI-short" prefix="ariadneplus" shorten="yes">
<generator name="Time-SpanURI-short" prefix="ariadneplus" shorten="yes">
<pattern>Time-Span/{term}</pattern>
</generator>
<generator name="PlaceURI" prefix="ariadneplus" shorten="yes">
<generator name="PlaceURI" prefix="ariadneplus" shorten="yes">
<pattern>Place/{term}</pattern>
</generator>
<generator name="PlaceURI-2" prefix="ariadneplus" shorten="yes">
<generator name="PlaceURI-2" prefix="ariadneplus" shorten="yes">
<pattern>Place/{arg1}/{arg2}</pattern>
</generator>
<generator name="AgentURI" prefix="ariadneplus" >
<generator name="AgentURI" prefix="ariadneplus" >
<pattern>Agent/{term}</pattern>
</generator>
<generator name="AgentURI-short" prefix="ariadneplus" shorten="yes">
<generator name="AgentURI-short" prefix="ariadneplus" shorten="yes">
<pattern>Agent/{term}</pattern>
</generator>
<generator name="PersonURI" prefix="ariadneplus">
<generator name="PersonURI" prefix="ariadneplus">
<pattern>Person/{term}</pattern>
</generator>
<generator name="OrgURI" prefix="ariadneplus">
<generator name="OrgURI" prefix="ariadneplus">
<pattern>Organisation/{term}</pattern>
</generator>
<generator name="ConceptURI" prefix="ariadneplus">
<generator name="ConceptURI" prefix="ariadneplus">
<pattern>Concept/{term}</pattern>
</generator>
<generator name="ConceptURI-2" prefix="ariadneplus">
<generator name="ConceptURI-2" prefix="ariadneplus">
<pattern>Concept/{scheme}/{term}</pattern>
</generator>
<generator name="ConceptURI-3" prefix="ariadneplus">
<generator name="ConceptURI-3" prefix="ariadneplus">
<pattern>Concept/{db}/{scheme}/{term}</pattern>
</generator>
<generator name="ConceptURI-2-short" prefix="ariadneplus" shorten="yes">
<generator name="ConceptURI-2-short" prefix="ariadneplus" shorten="yes">
<pattern>Concept/{scheme}/{term}</pattern>
</generator>
<generator name="LangURI" prefix="lexvo">
<generator name="LangURI" prefix="lexvo">
<pattern>{term}</pattern>
</generator>
<generator name="OneLevelCustomURI" prefix="ariadneplus">
<generator name="OneLevelCustomURI" prefix="ariadneplus">
<pattern>{level1}/{term}</pattern>
</generator>
<generator name="TwoLevelCustomURI" prefix="ariadneplus">
<generator name="TwoLevelCustomURI" prefix="ariadneplus">
<pattern>{level1}/{level2}/{term}</pattern>
</generator>
<generator name="SimpleLabel">
<generator name="SimpleLabel">
<pattern>{label}</pattern>
</generator>
<generator name="CompositeLabel">
<generator name="CompositeLabel">
<pattern>{label} {text}</pattern>
</generator>
<generator name="URIorUUID">
<generator name="URIorUUID">
<custom generatorClass="gr.forth.URIorUUID">
<set-arg name="text"/>
</custom>
</generator>
<generator name="URNfromTextualContent">
<generator name="URNfromTextualContent">
<custom generatorClass="gr.forth.TextualContent">
<set-arg name="text" type="xpath"/>
</custom>
</generator>
<generator name="TypedLiteralGen">
<custom generatorClass="gr.forth.TypedLiteralGenerator">
<set-arg name="text"/>
</custom>
</generator>
<generator name="TypedLiteralGen">
<custom generatorClass="gr.forth.TypedLiteralGenerator">
<set-arg name="text"/>
</custom>
</generator>
<generator name="ConcatMultipleTerms1">
<custom generatorClass="gr.forth.ConcatMultipleTerms">
<set-arg name="prefix" type="constant"/>
<set-arg name="delimiter" type="constant"/>
<set-arg name="text1"/>
</custom>
</generator>
<generator name="ConcatMultipleTerms1">
<custom generatorClass="gr.forth.ConcatMultipleTerms">
<set-arg name="prefix" type="constant"/>
<set-arg name="delimiter" type="constant"/>
<set-arg name="text1"/>
</custom>
</generator>
</generator_policy>
]]>

@ -1,7 +1,13 @@
package eu.dnetlib.ariadneplus.workflows.nodes;
import eu.dnetlib.miscutils.functional.xml.SaxonHelper;
import net.sf.saxon.s9api.SaxonApiException;
import org.apache.commons.io.IOUtils;
import org.junit.Before;
import org.junit.Test;
import org.springframework.core.io.ClassPathResource;
import java.io.IOException;
import java.time.Duration;
import java.time.LocalDateTime;
@ -12,7 +18,7 @@ import java.time.LocalDateTime;
*/
public class X3MTransformAriadnePlusJobNodeTest {
private X3MTransformAriadnePlusJobNode transformJob = new X3MTransformAriadnePlusJobNode();
private X3MTransformAriadnePlusJobNode transformJob;
private String header = "<oai:header xmlns:dri=\"http://www.driver-repository.eu/namespace/dri\">\n"
+ " <dri:objIdentifier>ariadne_mock::0000023f507999464aa2b78875b7e5d6</dri:objIdentifier>\n"
+ " <dri:recordIdentifier>2420500</dri:recordIdentifier>\n"
@ -123,6 +129,13 @@ public class X3MTransformAriadnePlusJobNodeTest {
+ " </crm:E73_Information_Object>\n"
+ " </rdf:RDF>";
@Before
public void setup() throws SaxonApiException {
transformJob = new X3MTransformAriadnePlusJobNode();
SaxonHelper saxonHelper = new SaxonHelper();
transformJob.setSaxonHelper(saxonHelper);
transformJob.prepareXpathSelectors();
}
@Test
public void testBuildXML(){
LocalDateTime now = LocalDateTime.now();
@ -131,4 +144,17 @@ public class X3MTransformAriadnePlusJobNodeTest {
System.out.println("Building XML took:"+ Duration.between(now, end).toMillis());
System.out.println(res);
}
@Test
public void testGetMetadataBlock() throws IOException, SaxonApiException {
String record = getString("/eu/dnetlib/x3m/dime-full.xml");
String md = transformJob.extractFromRecord(record, transformJob.getXpathSelectorMetadata());
System.out.println(md);
}
private String getString(final String classpath) throws IOException {
final ClassPathResource resource = new ClassPathResource(classpath);
return IOUtils.toString(resource.getInputStream(), "UTF-8");
}
}

@ -44,6 +44,19 @@ public class ApplyX3MappingTest {
x3mEngine.execute();
}
@Test
public void testDime() throws MalformedURLException {
X3MLEngineFactory x3mEngine = X3MLEngineFactory.create()
.withMappings(new URL("https://mapping.d4science.org/3MEditor/Services?id=697&output=text/xml&method=export"))
.withVerboseLogging()
//.withGeneratorPolicy(new URL("https://mapping.d4science.org/3MEditor/FetchBinFile?type=generator_link&file=ARIADNEplusGeneratorPolicy_v1.8___21-04-2021112747___12811.xml"))
.withGeneratorPolicy(getInputStreamFromClasspath("/eu/dnetlib/x3m/ariadne_policy.xml"))
.withInput(getInputStreamFromClasspath("/eu/dnetlib/x3m/dime.xml"))
.withOutput(System.out, X3MLEngineFactory.OutputFormat.RDF_XML);
x3mEngine.execute();
}
public void doBasicTest(String policyPath, String recordPath) throws IOException {
String g = getString(policyPath);

@ -1,40 +1,87 @@
<?xml version="1.0" encoding="UTF-8"?><generator_policy>
<?xml version="1.0" encoding="UTF-8"?>
<generator_policy>
<!-- ARIADNEplus Generator Policy version 1.5 -->
<!-- The prefix is a namespace that must be declared in the X3ML definition.
in the x3ml define <namespace prefix="ariadneplus" uri="http://www.ariadneplus.eu/"/> -->
in the x3ml define <namespace prefix="ariadneplus" uri="https://ariadne-infrastructure.eu/aocat/"/> -->
<generator name="CollectionURI" prefix="ariadneplus">
<generator name="CollectionURI" prefix="ariadneplus" shorten="yes">
<pattern>Collection/{term}</pattern>
</generator>
<generator name="CollectionURI-2" prefix="ariadneplus" shorten="yes">
<pattern>Collection/{provider}/{term}</pattern>
</generator>
<generator name="DataResourceURI" prefix="ariadneplus" shorten="yes">
<pattern>Resource/{term}</pattern>
</generator>
<generator name="DataResourceURI-2" prefix="ariadneplus" shorten="yes">
<pattern>Resource/{provider}/{term}</pattern>
</generator>
<generator name="ObjectURI" prefix="ariadneplus" shorten="yes">
<pattern>Object/{resource}-{term}</pattern>
</generator>
<generator name="ObjectURI-2" prefix="ariadneplus" shorten="yes">
<pattern>Object/{arg1}/{arg2}</pattern>
</generator>
<generator name="ObjectLabel">
<pattern>Resource {resource} is about {term}</pattern>
<pattern>Resource {resource} is about object {term}</pattern>
</generator>
<generator name="IdentifierURI" prefix="ariadneplus">
<pattern>Identifier/{term}</pattern>
</generator>
<generator name="EventURI" prefix="ariadneplus">
<pattern>Event/{term}</pattern>
<generator name="DocumentURI" prefix="ariadneplus" shorten="yes">>
<pattern>Document/{term}</pattern>
</generator>
<generator name="DocumentURI-2" prefix="ariadneplus" shorten="yes">
<pattern>Document/{provider}/{term}</pattern>
</generator>
<generator name="EventURI" prefix="ariadneplus" shorten="yes">
<pattern>Event/{resource}-{term}</pattern>
</generator>
<generator name="EventURI-2" prefix="ariadneplus">
<pattern>Event/{arg1}/{arg2}</pattern>
</generator>
<generator name="EventURI-3" prefix="ariadneplus">
<pattern>Event/{arg1}/{arg2}/{arg3}</pattern>
</generator>
<generator name="EventLabel">
<pattern>Resource {resource} is about event {term}</pattern>
</generator>
<generator name="Time-SpanURI" prefix="ariadneplus">
<pattern>Time-Span/{term}</pattern>
</generator>
<generator name="Time-SpanURI-short" prefix="ariadneplus" shorten="yes">
<pattern>Time-Span/{term}</pattern>
</generator>
<generator name="PlaceURI" prefix="ariadneplus" shorten="yes">
<pattern>Place/{term}</pattern>
</generator>
<generator name="AgentURI" prefix="ariadneplus">
<generator name="PlaceURI-2" prefix="ariadneplus" shorten="yes">
<pattern>Place/{arg1}/{arg2}</pattern>
</generator>
<generator name="AgentURI" prefix="ariadneplus" >
<pattern>Agent/{term}</pattern>
</generator>
<generator name="AgentURI-short" prefix="ariadneplus" shorten="yes">
<pattern>Agent/{term}</pattern>
</generator>
<generator name="PersonURI" prefix="ariadneplus">
<pattern>Person/{term}</pattern>
</generator>
<generator name="OrgURI" prefix="ariadneplus">
<pattern>Organisation/{term}</pattern>
</generator>
<generator name="ConceptURI" prefix="ariadneplus">
<pattern>Concept/{term}</pattern>
@ -43,6 +90,14 @@
<pattern>Concept/{scheme}/{term}</pattern>
</generator>
<generator name="ConceptURI-3" prefix="ariadneplus">
<pattern>Concept/{db}/{scheme}/{term}</pattern>
</generator>
<generator name="ConceptURI-2-short" prefix="ariadneplus" shorten="yes">
<pattern>Concept/{scheme}/{term}</pattern>
</generator>
<generator name="LangURI" prefix="lexvo">
<pattern>{term}</pattern>
</generator>
@ -80,5 +135,12 @@
</custom>
</generator>
<generator name="ConcatMultipleTerms1">
<custom generatorClass="gr.forth.ConcatMultipleTerms">
<set-arg name="prefix" type="constant"/>
<set-arg name="delimiter" type="constant"/>
<set-arg name="text1"/>
</custom>
</generator>
</generator_policy>
</generator_policy>

@ -1,40 +1,87 @@
<?xml version="1.0" encoding="UTF-8"?><generator_policy>
<?xml version="1.0" encoding="UTF-8"?>
<generator_policy>
<!-- ARIADNEplus Generator Policy version 1.5 -->
<!-- The prefix is a namespace that must be declared in the X3ML definition.
in the x3ml define <namespace prefix="ariadneplus" uri="http://www.ariadneplus.eu/"/> -->
in the x3ml define <namespace prefix="ariadneplus" uri="https://ariadne-infrastructure.eu/aocat/"/> -->
<generator name="CollectionURI" prefix="ariadneplus">
<generator name="CollectionURI" prefix="ariadneplus" shorten="yes">
<pattern>Collection/{term}</pattern>
</generator>
<generator name="CollectionURI-2" prefix="ariadneplus" shorten="yes">
<pattern>Collection/{provider}/{term}</pattern>
</generator>
<generator name="DataResourceURI" prefix="ariadneplus" shorten="yes">
<pattern>Resource/{term}</pattern>
</generator>
<generator name="DataResourceURI-2" prefix="ariadneplus" shorten="yes">
<pattern>Resource/{provider}/{term}</pattern>
</generator>
<generator name="ObjectURI" prefix="ariadneplus" shorten="yes">
<pattern>Object/{resource}-{term}</pattern>
</generator>
<generator name="ObjectURI-2" prefix="ariadneplus" shorten="yes">
<pattern>Object/{arg1}/{arg2}</pattern>
</generator>
<generator name="ObjectLabel">
<pattern>Resource {resource} is about {term}</pattern>
<pattern>Resource {resource} is about object {term}</pattern>
</generator>
<generator name="IdentifierURI" prefix="ariadneplus">
<pattern>Identifier/{term}</pattern>
</generator>
<generator name="EventURI" prefix="ariadneplus">
<pattern>Event/{term}</pattern>
<generator name="DocumentURI" prefix="ariadneplus" shorten="yes">>
<pattern>Document/{term}</pattern>
</generator>
<generator name="DocumentURI-2" prefix="ariadneplus" shorten="yes">
<pattern>Document/{provider}/{term}</pattern>
</generator>
<generator name="EventURI" prefix="ariadneplus" shorten="yes">
<pattern>Event/{resource}-{term}</pattern>
</generator>
<generator name="EventURI-2" prefix="ariadneplus">
<pattern>Event/{arg1}/{arg2}</pattern>
</generator>
<generator name="EventURI-3" prefix="ariadneplus">
<pattern>Event/{arg1}/{arg2}/{arg3}</pattern>
</generator>
<generator name="EventLabel">
<pattern>Resource {resource} is about event {term}</pattern>
</generator>
<generator name="Time-SpanURI" prefix="ariadneplus">
<pattern>Time-Span/{term}</pattern>
</generator>
<generator name="Time-SpanURI-short" prefix="ariadneplus" shorten="yes">
<pattern>Time-Span/{term}</pattern>
</generator>
<generator name="PlaceURI" prefix="ariadneplus" shorten="yes">
<pattern>Place/{term}</pattern>
</generator>
<generator name="AgentURI" prefix="ariadneplus">
<generator name="PlaceURI-2" prefix="ariadneplus" shorten="yes">
<pattern>Place/{arg1}/{arg2}</pattern>
</generator>
<generator name="AgentURI" prefix="ariadneplus" >
<pattern>Agent/{term}</pattern>
</generator>
<generator name="AgentURI-short" prefix="ariadneplus" shorten="yes">
<pattern>Agent/{term}</pattern>
</generator>
<generator name="PersonURI" prefix="ariadneplus">
<pattern>Person/{term}</pattern>
</generator>
<generator name="OrgURI" prefix="ariadneplus">
<pattern>Organisation/{term}</pattern>
</generator>
<generator name="ConceptURI" prefix="ariadneplus">
<pattern>Concept/{term}</pattern>
@ -43,6 +90,14 @@
<pattern>Concept/{scheme}/{term}</pattern>
</generator>
<generator name="ConceptURI-3" prefix="ariadneplus">
<pattern>Concept/{db}/{scheme}/{term}</pattern>
</generator>
<generator name="ConceptURI-2-short" prefix="ariadneplus" shorten="yes">
<pattern>Concept/{scheme}/{term}</pattern>
</generator>
<generator name="LangURI" prefix="lexvo">
<pattern>{term}</pattern>
</generator>
@ -80,5 +135,12 @@
</custom>
</generator>
<generator name="ConcatMultipleTerms1">
<custom generatorClass="gr.forth.ConcatMultipleTerms">
<set-arg name="prefix" type="constant"/>
<set-arg name="delimiter" type="constant"/>
<set-arg name="text1"/>
</custom>
</generator>
</generator_policy>
</generator_policy>

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8"?>
<oai:record xmlns:oai="http://www.openarchives.org/OAI/2.0/"
xmlns:dri="http://www.driver-repository.eu/namespace/dri">
<oai:header>
<dri:objIdentifier>aarhus_dime_::0002e4a6fbda2154d6bdde6d7453b77e</dri:objIdentifier>
<dri:recordIdentifier>oai:metaldetektorfund.dk:fund/?dimeid=71394</dri:recordIdentifier>
<dri:dateOfCollection>2021-10-25T11:15:09.361+02:00</dri:dateOfCollection>
<dri:datasourceprefix>aarhus_dime_</dri:datasourceprefix>
<dri:datasourcename>DIME - Aarhus University</dri:datasourcename>
<dri:datasourceapi>api_________::ariadne_plus::aarhusdime::oai</dri:datasourceapi>
<identifier xmlns="http://www.openarchives.org/OAI/2.0/">oai:metaldetektorfund.dk:fund/?dimeid=71394</identifier>
<datestamp xmlns="http://www.openarchives.org/OAI/2.0/">2021-07-29T14:36:49Z</datestamp>
</oai:header>
<metadata xmlns="http://www.openarchives.org/OAI/2.0/">
<find xmlns:dime="https://www.metaldetektorfund.dk/api/oai-pmh"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://www.metaldetektorfund.dk/api/oai-pmh https://www.metaldetektorfund.dk/api/oai-pmh/oai-dime2.xsd">
<dime_id>71394</dime_id>
<url>https://www.metaldetektorfund.dk/fund/?dimeid=71394</url>
<native_type>https://www.metaldetektorfund.dk/wiki/dime.find.coin.viking.dirham</native_type>
<title lang="da">Dirhem</title>
<description lang="da">Dirhemklip m. probérmærker
</description>
<type>
<aat_uri>http://vocab.getty.edu/aat/300037258</aat_uri>
<aat_label lang="en">DIRHAMS</aat_label>
<aat_match>exact match</aat_match>
</type>
<temporal>
<temporal_label lang="da">Vikingetid</temporal_label>
<has_native_period>https://www.metaldetektorfund.dk/wiki/CYVX</has_native_period>
<has_period>http://n2t.net/ark:/99152/p0r8d9c3hq8</has_period>
<from>750</from>
<until>1066</until>
</temporal>
<spatial>
<has_place_name>Ærø Municipality</has_place_name>
<has_coordinate_system>EPSG 4326</has_coordinate_system>
<has_bounding_box_min_lat>10</has_bounding_box_min_lat>
<has_bounding_box_max_lat>10.5</has_bounding_box_max_lat>
<has_bounding_box_min_lon>54.5</has_bounding_box_min_lon>
<has_bounding_box_max_lon>55</has_bounding_box_max_lon>
<has_precision unit="degrees">0.5</has_precision>
</spatial>
<material>
<material_label lang="da">Sølv</material_label>
<has_native_material>https://www.metaldetektorfund.dk/wiki/dime.material.silver</has_native_material>
<aat_uri>http://vocab.getty.edu/page/aat/300011029</aat_uri>
<aat_label lang="en">SILVER (METAL)</aat_label>
<aat_match>exact</aat_match>
</material>
<dimensions>
<weight unit="g"/>
<length unit="mm"/>
</dimensions>
<digital_images>
<has_primary_visual_component>
<is_accessible_at>https://www.metaldetektorfund.dk/fundbilleder/5e8/5e89c43af1ad3.jpg</is_accessible_at>
<has_produced_media>image</has_produced_media>
<has_produced_format>image/jpeg</has_produced_format>
</has_primary_visual_component>
</digital_images>
<has_contributor>Langelands Museum (Arkæologi Sydfyn)</has_contributor>
<has_creator>Langelands Museum (Arkæologi Sydfyn)</has_creator>
</find>
</metadata>
<oai:about>
<provenance xmlns="http://www.openarchives.org/OAI/2.0/provenance"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/provenance http://www.openarchives.org/OAI/2.0/provenance.xsd">
<originDescription altered="true" harvestDate="2021-10-25T11:15:09.361+02:00">
<baseURL>https%3A%2F%2Fwww.metaldetektorfund.dk%2Fapi%2Foai-pmh%2F</baseURL>
<identifier>oai:metaldetektorfund.dk:fund/?dimeid=71394</identifier>
<datestamp>2021-07-29T14:36:49Z</datestamp>
<metadataNamespace/>
</originDescription>
</provenance>
</oai:about>
</oai:record>

@ -0,0 +1,53 @@
<find xmlns:dime="https://www.metaldetektorfund.dk/api/oai-pmh"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:oai="http://www.openarchives.org/OAI/2.0/"
xmlns:dri="http://www.driver-repository.eu/namespace/dri"
xsi:schemaLocation="https://www.metaldetektorfund.dk/api/oai-pmh https://www.metaldetektorfund.dk/api/oai-pmh/oai-dime2.xsd">
<dime_id>71394</dime_id>
<url>https://www.metaldetektorfund.dk/fund/?dimeid=71394</url>
<native_type>https://www.metaldetektorfund.dk/wiki/dime.find.coin.viking.dirham</native_type>
<title lang="da">Dirhem</title>
<description lang="da">Dirhemklip m. probérmærker
</description>
<type>
<aat_uri>http://vocab.getty.edu/aat/300037258</aat_uri>
<aat_label lang="en">DIRHAMS</aat_label>
<aat_match>exact match</aat_match>
</type>
<temporal>
<temporal_label lang="da">Vikingetid</temporal_label>
<has_native_period>https://www.metaldetektorfund.dk/wiki/CYVX</has_native_period>
<has_period>http://n2t.net/ark:/99152/p0r8d9c3hq8</has_period>
<from>750</from>
<until>1066</until>
</temporal>
<spatial>
<has_place_name>Ærø Municipality</has_place_name>
<has_coordinate_system>EPSG 4326</has_coordinate_system>
<has_bounding_box_min_lat>10</has_bounding_box_min_lat>
<has_bounding_box_max_lat>10.5</has_bounding_box_max_lat>
<has_bounding_box_min_lon>54.5</has_bounding_box_min_lon>
<has_bounding_box_max_lon>55</has_bounding_box_max_lon>
<has_precision unit="degrees">0.5</has_precision>
</spatial>
<material>
<material_label lang="da">Sølv</material_label>
<has_native_material>https://www.metaldetektorfund.dk/wiki/dime.material.silver</has_native_material>
<aat_uri>http://vocab.getty.edu/page/aat/300011029</aat_uri>
<aat_label lang="en">SILVER (METAL)</aat_label>
<aat_match>exact</aat_match>
</material>
<dimensions>
<weight unit="g"/>
<length unit="mm"/>
</dimensions>
<digital_images>
<has_primary_visual_component>
<is_accessible_at>https://www.metaldetektorfund.dk/fundbilleder/5e8/5e89c43af1ad3.jpg</is_accessible_at>
<has_produced_media>image</has_produced_media>
<has_produced_format>image/jpeg</has_produced_format>
</has_primary_visual_component>
</digital_images>
<has_contributor>Langelands Museum (Arkæologi Sydfyn)</has_contributor>
<has_creator>Langelands Museum (Arkæologi Sydfyn)</has_creator>
</find>
Loading…
Cancel
Save