Open kvndrsslr opened 3 years ago
I tested these cases and they seem to work as expected. However, I have a question. "The generated configuration should have fcage:fromPort 0 for the first output and fcage:fromPort 1 for the second output." Are you talking about LinkingEnrichmentOperator node that it should have 2 inputs? Or do you mean something else? In a way how it is implemented now, for each node we determine only fcage:hasInput if there is input. Thus, for the above screenshot we would obtain the following configuration:
@prefix example: <urn:example:demo/>.
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
@prefix dbpedia: <http://dbpedia.org/resource/>.
@prefix deer: <https://w3id.org/deer/>.
@prefix fcage: <https://w3id.org/fcage/>.
@prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
<urn:example:demo/01448638-4c31-43a0-a9f5-87202f7c1f26> a deer:FileModelReader;
deer:fromUri "w".
<urn:example:demo/55ec509e-8705-42be-8f9e-1237692835e7> a deer:LinkingEnrichmentOperator;
fcage:hasInput ([
fcage:fromNode <urn:example:demo/01448638-4c31-43a0-a9f5-87202f7c1f26>;
fcage:fromPort "0"^^xsd:integer
] [
fcage:fromNode <urn:example:demo/01448638-4c31-43a0-a9f5-87202f7c1f26>;
fcage:fromPort "1"^^xsd:integer
]);
deer:threshold "a";
deer:selectMode "s";
deer:linksPart "d";
deer:linkingPredicate "f";
deer:specFile "g".
example:ef1b33da-badd-4442-9fe2-7222fa5f3674 a deer:FileModelWriter;
fcage:hasInput ([
fcage:fromNode <urn:example:demo/55ec509e-8705-42be-8f9e-1237692835e7>;
fcage:fromPort "0"^^xsd:integer
]);
deer:outputFormat "zz";
deer:outputFile "xx".
<urn:example:demo/5091d102-ebc4-401c-bc87-b780d3b6618b> a deer:FileModelWriter;
fcage:hasInput ([
fcage:fromNode <urn:example:demo/55ec509e-8705-42be-8f9e-1237692835e7>;
fcage:fromPort "0"^^xsd:integer
]);
deer:outputFormat "cc";
deer:outputFile "vv".
I suppose I got your idea and fixed the current implementation correspondingly. The output for your example now looks as follows:
@prefix example: <urn:example:demo/>.
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
@prefix dbpedia: <http://dbpedia.org/resource/>.
@prefix deer: <https://w3id.org/deer/>.
@prefix fcage: <https://w3id.org/fcage/>.
@prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
example:cb47d77c-8cc4-40a0-aa5d-154ab18ea332 a deer:FileModelReader;
deer:fromUri "q".
example:eb73c4a4-8b7a-45ca-b47d-1362104a3d9c a deer:LinkingEnrichmentOperator;
fcage:hasInput ([
fcage:fromNode example:cb47d77c-8cc4-40a0-aa5d-154ab18ea332;
fcage:fromPort "0"^^xsd:integer
] [
fcage:fromNode example:cb47d77c-8cc4-40a0-aa5d-154ab18ea332;
fcage:fromPort "0"^^xsd:integer
]);
deer:threshold "w";
deer:selectMode "e";
deer:linksPart "r";
deer:linkingPredicate "t";
deer:specFile "y".
example:f2002b80-f46d-4c39-86af-bb7a1dae9f39 a deer:FileModelWriter;
fcage:hasInput ([
fcage:fromNode example:eb73c4a4-8b7a-45ca-b47d-1362104a3d9c;
fcage:fromPort "0"^^xsd:integer
]);
deer:outputFormat "zz";
deer:outputFile "xx".
example:dc061975-aec9-4684-99bc-c4c2dc66565b a deer:FileModelWriter;
fcage:hasInput ([
fcage:fromNode example:eb73c4a4-8b7a-45ca-b47d-1362104a3d9c;
fcage:fromPort "1"^^xsd:integer
]);
deer:outputFormat "cc";
deer:outputFile "vv".
Test Cases
Properties we need to test
Example:
The generated configuration should have
fcage:fromPort 0
for the first output andfcage:fromPort 1
for the second output. Test also if this is holds when you remove the first link in the webUI and repaint the link in the webUI. The ordering should be determined by the output ports order and not the order in which the links are drawn.