ArtResearch / pharos-mappings

X3ML mappings for Pharos consortium
5 stars 1 forks source link

Create graph without hashing (x3ml engine) #134

Closed mafragias closed 3 years ago

mafragias commented 3 years ago

New functionality to be able to create graphs without hashing the uri from which the graph is created. That is because we want to use the URI created from URIorUUID generator as the graph name.

ymark commented 3 years ago

I understand, that you would like to use a URI (provided from the XML input) as the name of the entire graphspace. Do you have an indicative example to test it?

mafragias commented 3 years ago

Correction : The is issue is not with the hash.

I cannot generate a graph where the suffix is graph (with existing URI) and it's properly assigned to NamedGraph :

1st CASE :

NAMEGRAPH POLICY

<generator name="namedgraphNoPrefix">
    <pattern>{text}/graph</pattern>
</generator>

RESULT (Doesn't get the correct type ans is of type string)

<https://pharos.artresearch.net/resource/itatti/itatti/namedgraphs/graph> {
    <https://pharos.artresearch.net/resource/itatti/itatti/namedgraphs/graph>
            a       <https://pharos.artresearch.net/custom/SourceNamedgraph> ;
            <https://pharos.artresearch.net/custom/consists_of>
                    "http://forum.jstor.org/oai/ssn/9000393203/graph" .
}

2nd CASE: NAMEGRAPH POLICY

<generator name="namedgraphwithoughtprefix">
    <custom generatorClass="gr.forth.URIorUUID">
        <set-arg name="text"></set-arg>
    </custom>
</generator>

RESULT (no graph at the end) :

<https://pharos.artresearch.net/resource/itatti/itatti/namedgraphs/graph> {
    <https://pharos.artresearch.net/resource/itatti/itatti/namedgraphs/graph>
            a       <https://pharos.artresearch.net/custom/SourceNamedgraph> ;
            <https://pharos.artresearch.net/custom/consists_of>
                    <http://forum.jstor.org/oai/ssn/9000393203> .

    <http://forum.jstor.org/oai/ssn/9000393203>
            a       <https://pharos.artresearch.net/custom/Namedgraph> .
}

In both cases the graph name is http://forum.jstor.org/oai/ssn/9000393203/graph like below :

<http://forum.jstor.org/oai/ssn/9000393203/graph> {
    <http://forum.jstor.org/oai/ssn/9000393203>
            a       <http://www.cidoc-crm.org/cidoc-crm/E21_Person> , <https://pharos.artresearch.net/custom/Namedgraph> ;
            <http://www.w3.org/2000/01/rdf-schema#label>
                    "Mansueti, Giovanni di Niccolò" ;
            <http://www.cidoc-crm.org/cidoc-crm/P100i_died_in>
                    <https://pharos.artresearch.net/resource/itatti/actor/9000393203/death> ;
            <http://www.cidoc-crm.org/cidoc-crm/P2_has_type>
                    <http://vocab.getty.edu/aat/300025103> ;
            <http://www.cidoc-crm.org/cidoc-crm/P67i_is_referred_to_by>
                    <http://forum.jstor.org/oai/ssn/9000393203> ;
            <https://pharos.artresearch.net/custom/has_provider>
                    <https://pharos.artresearch.net/resource/itatti/source/ITatti> , <https://pharos.artresearch.net/resource/itatti/source/SharedShelf> .
ymark commented 3 years ago

OK I see.

I suggest that you adopt the second approach with a little bit of XPATH magic. The following should do the job.

<instance_generator name="URIorUUID">
    <arg name="text">string-join((text(),"graph"),'/')</arg>
</instance_generator>
mafragias commented 3 years ago

Very useful, I am closing this issue.