merged with maaster

This commit is contained in:
Sandro La Bruzzo 2020-04-29 13:20:57 +02:00
commit a6b1a59d0a
344 changed files with 24732 additions and 24626 deletions

View File

@ -27,11 +27,9 @@ public class GenerateOoziePropertiesMojo extends AbstractMojo {
if (System.getProperties().containsKey(PROPERTY_NAME_WF_SOURCE_DIR) if (System.getProperties().containsKey(PROPERTY_NAME_WF_SOURCE_DIR)
&& !System.getProperties().containsKey(PROPERTY_NAME_SANDBOX_NAME)) { && !System.getProperties().containsKey(PROPERTY_NAME_SANDBOX_NAME)) {
String generatedSandboxName = String generatedSandboxName =
generateSandboxName( generateSandboxName(System.getProperties().getProperty(PROPERTY_NAME_WF_SOURCE_DIR));
System.getProperties().getProperty(PROPERTY_NAME_WF_SOURCE_DIR));
if (generatedSandboxName != null) { if (generatedSandboxName != null) {
System.getProperties() System.getProperties().setProperty(PROPERTY_NAME_SANDBOX_NAME, generatedSandboxName);
.setProperty(PROPERTY_NAME_SANDBOX_NAME, generatedSandboxName);
} else { } else {
System.out.println( System.out.println(
"unable to generate sandbox name from path: " "unable to generate sandbox name from path: "

View File

@ -70,16 +70,16 @@ public class WritePredefinedProjectProperties extends AbstractMojo {
protected File outputFile; protected File outputFile;
/** /**
* If true, the plugin will silently ignore any non-existent properties files, and the build * If true, the plugin will silently ignore any non-existent properties files, and the build will
* will continue * continue
* *
* @parameter property="properties.quiet" default-value="true" * @parameter property="properties.quiet" default-value="true"
*/ */
private boolean quiet; private boolean quiet;
/** /**
* Comma separated list of characters to escape when writing property values. cr=carriage * Comma separated list of characters to escape when writing property values. cr=carriage return,
* return, lf=linefeed, tab=tab. Any other values are taken literally. * lf=linefeed, tab=tab. Any other values are taken literally.
* *
* @parameter default-value="cr,lf,tab" property="properties.escapeChars" * @parameter default-value="cr,lf,tab" property="properties.escapeChars"
*/ */
@ -117,7 +117,8 @@ public class WritePredefinedProjectProperties extends AbstractMojo {
*/ */
private String include; private String include;
/* (non-Javadoc) /*
* (non-Javadoc)
* @see org.apache.maven.plugin.AbstractMojo#execute() * @see org.apache.maven.plugin.AbstractMojo#execute()
*/ */
@Override @Override
@ -437,8 +438,7 @@ public class WritePredefinedProjectProperties extends AbstractMojo {
public void setIncludePropertyKeysFromFiles(String[] includePropertyKeysFromFiles) { public void setIncludePropertyKeysFromFiles(String[] includePropertyKeysFromFiles) {
if (includePropertyKeysFromFiles != null) { if (includePropertyKeysFromFiles != null) {
this.includePropertyKeysFromFiles = this.includePropertyKeysFromFiles =
Arrays.copyOf( Arrays.copyOf(includePropertyKeysFromFiles, includePropertyKeysFromFiles.length);
includePropertyKeysFromFiles, includePropertyKeysFromFiles.length);
} }
} }
} }

View File

@ -81,8 +81,7 @@ public class WritePredefinedProjectPropertiesTest {
} }
@Test @Test
public void testExecuteWithProjectPropertiesExclusion(@TempDir File testFolder) public void testExecuteWithProjectPropertiesExclusion(@TempDir File testFolder) throws Exception {
throws Exception {
// given // given
String key = "projectPropertyKey"; String key = "projectPropertyKey";
String value = "projectPropertyValue"; String value = "projectPropertyValue";
@ -106,8 +105,7 @@ public class WritePredefinedProjectPropertiesTest {
} }
@Test @Test
public void testExecuteWithProjectPropertiesInclusion(@TempDir File testFolder) public void testExecuteWithProjectPropertiesInclusion(@TempDir File testFolder) throws Exception {
throws Exception {
// given // given
String key = "projectPropertyKey"; String key = "projectPropertyKey";
String value = "projectPropertyValue"; String value = "projectPropertyValue";
@ -131,8 +129,7 @@ public class WritePredefinedProjectPropertiesTest {
} }
@Test @Test
public void testExecuteIncludingPropertyKeysFromFile(@TempDir File testFolder) public void testExecuteIncludingPropertyKeysFromFile(@TempDir File testFolder) throws Exception {
throws Exception {
// given // given
String key = "projectPropertyKey"; String key = "projectPropertyKey";
String value = "projectPropertyValue"; String value = "projectPropertyValue";
@ -148,8 +145,7 @@ public class WritePredefinedProjectPropertiesTest {
includedProperties.setProperty(includedKey, "irrelevantValue"); includedProperties.setProperty(includedKey, "irrelevantValue");
includedProperties.store(new FileWriter(includedPropertiesFile), null); includedProperties.store(new FileWriter(includedPropertiesFile), null);
mojo.setIncludePropertyKeysFromFiles( mojo.setIncludePropertyKeysFromFiles(new String[] {includedPropertiesFile.getAbsolutePath()});
new String[] {includedPropertiesFile.getAbsolutePath()});
// execute // execute
mojo.execute(); mojo.execute();
@ -225,8 +221,7 @@ public class WritePredefinedProjectPropertiesTest {
includedProperties.setProperty(includedKey, "irrelevantValue"); includedProperties.setProperty(includedKey, "irrelevantValue");
includedProperties.storeToXML(new FileOutputStream(includedPropertiesFile), null); includedProperties.storeToXML(new FileOutputStream(includedPropertiesFile), null);
mojo.setIncludePropertyKeysFromFiles( mojo.setIncludePropertyKeysFromFiles(new String[] {includedPropertiesFile.getAbsolutePath()});
new String[] {includedPropertiesFile.getAbsolutePath()});
// execute // execute
mojo.execute(); mojo.execute();
@ -257,8 +252,7 @@ public class WritePredefinedProjectPropertiesTest {
includedProperties.setProperty(includedKey, "irrelevantValue"); includedProperties.setProperty(includedKey, "irrelevantValue");
includedProperties.store(new FileOutputStream(includedPropertiesFile), null); includedProperties.store(new FileOutputStream(includedPropertiesFile), null);
mojo.setIncludePropertyKeysFromFiles( mojo.setIncludePropertyKeysFromFiles(new String[] {includedPropertiesFile.getAbsolutePath()});
new String[] {includedPropertiesFile.getAbsolutePath()});
// execute // execute
Assertions.assertThrows(MojoExecutionException.class, () -> mojo.execute()); Assertions.assertThrows(MojoExecutionException.class, () -> mojo.execute());

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>eu.dnetlib.dhp</groupId>
<artifactId>dhp-code-style</artifactId>
<version>1.1.7-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>

View File

@ -0,0 +1,252 @@
<?xml version="1.0" encoding="UTF-8"?>
<profiles version="10">
<profile kind="CodeFormatterProfile" name="Android" version="10">
<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="80"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="120"/>
<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="2"/>
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="100"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="tab"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/>
<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="false"/>
</profile>
</profiles>

View File

@ -0,0 +1,727 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<profiles version="18">
<profile kind="CodeFormatterProfile" name="Android_custom" version="18">
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_logical_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.align_with_spaces" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off"/>
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_logical_operator" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="120"/>
<setting id="org.eclipse.jdt.core.formatter.use_on_off_tags" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.keep_method_body_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_additive_operator" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_relational_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_shift_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_lambda_body" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_parameters" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="32"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_loops" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_relational_operator" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_additive_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.text_block_indentation" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_module_statements" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="80"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_additive_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_conditional_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_shift_operator" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines" value="2147483647"/>
<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try" value="80"/>
<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="48"/>
<setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.keep_code_block_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_assignment_operator" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_not_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_arguments" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation" value="48"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_label" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_logical_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_relational_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.indent_tag_description" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_string_concatenation" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_logical_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_shift_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_shift_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_additive_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.join_lines_in_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="tab"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_relational_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_string_concatenation" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="120"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
</profile>
<profile kind="CodeFormatterProfile" name="Dnet" version="18">
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_logical_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.align_with_spaces" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off"/>
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_logical_operator" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line" value="one_line_if_empty"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="140"/>
<setting id="org.eclipse.jdt.core.formatter.use_on_off_tags" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.keep_method_body_on_one_line" value="one_line_if_empty"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line" value="one_line_if_empty"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line" value="one_line_if_empty"/>
<setting id="org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line" value="one_line_if_empty"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_additive_operator" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_relational_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line" value="one_line_if_empty"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_shift_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_lambda_body" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_parameters" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_loops" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_relational_operator" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_additive_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.text_block_indentation" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_module_statements" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line" value="one_line_if_empty"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="80"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_additive_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_conditional_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_shift_operator" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines" value="2147483647"/>
<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try" value="80"/>
<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="80"/>
<setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.keep_code_block_on_one_line" value="one_line_if_empty"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_assignment_operator" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_not_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line" value="one_line_if_empty"/>
<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_arguments" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_label" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_logical_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_relational_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.indent_tag_description" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="80"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_string_concatenation" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_logical_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_shift_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_shift_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line" value="one_line_if_empty"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_additive_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.join_lines_in_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="tab"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_relational_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_string_concatenation" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="160"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
</profile>
</profiles>

View File

@ -0,0 +1,337 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<profiles version="13">
<profile kind="CodeFormatterProfile" name="GoogleStyle" version="13">
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_cascading_method_invocation_with_arguments.count_dependent" value="16|-1|16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.use_on_off_tags" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_prefer_two_fragments" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_comment_inline_tags" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_local_variable_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_parameter" value="1040"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_type.count_dependent" value="1585|-1|1585"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="80"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields.count_dependent" value="16|-1|16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression.count_dependent" value="16|4|80"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration.count_dependent" value="16|4|48"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="2"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration.count_dependent" value="16|4|49"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_cascading_method_invocation_with_arguments" value="16"/>
<setting id="org.eclipse.jdt.core.compiler.source" value="1.7"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration.count_dependent" value="16|4|48"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_non_simple_local_variable_annotation" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants.count_dependent" value="16|5|48"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="100"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation.count_dependent" value="16|4|48"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_package" value="1585"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="16"/>
<setting id="org.eclipse.jdt.core.compiler.problem.assertIdentifier" value="error"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_non_simple_type_annotation" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_field_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.compiler.problem.enumIdentifier" value="error"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_generic_type_arguments" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.comment_new_line_at_start_of_html_paragraph" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comment_prefix" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_non_simple_parameter_annotation" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_method" value="1585"/>
<setting id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="2"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation.count_dependent" value="16|5|80"/>
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_parameter.count_dependent" value="1040|-1|1040"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_package.count_dependent" value="1585|-1|1585"/>
<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.force_if_else_statement_brace" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="3"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_non_simple_package_annotation" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation.count_dependent" value="16|-1|16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_type" value="1585"/>
<setting id="org.eclipse.jdt.core.compiler.compliance" value="1.7"/>
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_new_anonymous_class" value="20"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_local_variable.count_dependent" value="1585|-1|1585"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_field.count_dependent" value="1585|-1|1585"/>
<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration.count_dependent" value="16|5|80"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type" value="insert"/>
<setting id="org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode" value="enabled"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_label" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant.count_dependent" value="16|-1|16"/>
<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="100"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_binary_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="2"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.join_lines_in_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_field" value="1585"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer.count_dependent" value="16|5|80"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.compiler.codegen.targetPlatform" value="1.7"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try" value="80"/>
<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration.count_dependent" value="16|4|48"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_method.count_dependent" value="1585|-1|1585"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression.count_dependent" value="16|-1|16"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_non_simple_member_annotation" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_local_variable" value="1585"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call.count_dependent" value="16|5|80"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_generic_type_arguments.count_dependent" value="16|-1|16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression.count_dependent" value="16|5|80"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration.count_dependent" value="16|5|80"/>
<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_for_statement" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
</profile>
</profiles>

View File

@ -9,6 +9,7 @@
<artifactId>dhp-build</artifactId> <artifactId>dhp-build</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<modules> <modules>
<module>dhp-code-style</module>
<module>dhp-build-assembly-resources</module> <module>dhp-build-assembly-resources</module>
<module>dhp-build-properties-maven-plugin</module> <module>dhp-build-properties-maven-plugin</module>
</modules> </modules>

View File

@ -35,9 +35,7 @@ public class ArgumentApplicationParser implements Serializable {
Arrays.stream(configuration) Arrays.stream(configuration)
.map( .map(
conf -> { conf -> {
final Option o = final Option o = new Option(conf.getParamName(), true, conf.getParamDescription());
new Option(
conf.getParamName(), true, conf.getParamDescription());
o.setLongOpt(conf.getParamLongName()); o.setLongOpt(conf.getParamLongName());
o.setRequired(conf.isParamRequired()); o.setRequired(conf.isParamRequired());
if (conf.isCompressed()) { if (conf.isCompressed()) {

View File

@ -12,23 +12,18 @@ public class SparkSessionSupport {
private SparkSessionSupport() {} private SparkSessionSupport() {}
/** /**
* Runs a given function using SparkSession created using default builder and supplied * Runs a given function using SparkSession created using default builder and supplied SparkConf.
* SparkConf. Stops SparkSession when SparkSession is managed. Allows to reuse SparkSession * Stops SparkSession when SparkSession is managed. Allows to reuse SparkSession created
* created externally. * externally.
* *
* @param conf SparkConf instance * @param conf SparkConf instance
* @param isSparkSessionManaged When true will stop SparkSession * @param isSparkSessionManaged When true will stop SparkSession
* @param fn Consumer to be applied to constructed SparkSession * @param fn Consumer to be applied to constructed SparkSession
*/ */
public static void runWithSparkSession( public static void runWithSparkSession(
SparkConf conf, SparkConf conf, Boolean isSparkSessionManaged, ThrowingConsumer<SparkSession, Exception> fn) {
Boolean isSparkSessionManaged,
ThrowingConsumer<SparkSession, Exception> fn) {
runWithSparkSession( runWithSparkSession(
c -> SparkSession.builder().config(c).getOrCreate(), c -> SparkSession.builder().config(c).getOrCreate(), conf, isSparkSessionManaged, fn);
conf,
isSparkSessionManaged,
fn);
} }
/** /**
@ -41,9 +36,7 @@ public class SparkSessionSupport {
* @param fn Consumer to be applied to constructed SparkSession * @param fn Consumer to be applied to constructed SparkSession
*/ */
public static void runWithSparkHiveSession( public static void runWithSparkHiveSession(
SparkConf conf, SparkConf conf, Boolean isSparkSessionManaged, ThrowingConsumer<SparkSession, Exception> fn) {
Boolean isSparkSessionManaged,
ThrowingConsumer<SparkSession, Exception> fn) {
runWithSparkSession( runWithSparkSession(
c -> SparkSession.builder().config(c).enableHiveSupport().getOrCreate(), c -> SparkSession.builder().config(c).enableHiveSupport().getOrCreate(),
conf, conf,
@ -52,9 +45,9 @@ public class SparkSessionSupport {
} }
/** /**
* Runs a given function using SparkSession created using supplied builder and supplied * Runs a given function using SparkSession created using supplied builder and supplied SparkConf.
* SparkConf. Stops SparkSession when SparkSession is managed. Allows to reuse SparkSession * Stops SparkSession when SparkSession is managed. Allows to reuse SparkSession created
* created externally. * externally.
* *
* @param sparkSessionBuilder Builder of SparkSession * @param sparkSessionBuilder Builder of SparkSession
* @param conf SparkConf instance * @param conf SparkConf instance

View File

@ -32,8 +32,7 @@ public class VtdUtilityParser {
} }
} }
private static Map<String, String> getAttributes( private static Map<String, String> getAttributes(final VTDNav vn, final List<String> attributes) {
final VTDNav vn, final List<String> attributes) {
final Map<String, String> currentAttributes = new HashMap<>(); final Map<String, String> currentAttributes = new HashMap<>();
if (attributes != null) { if (attributes != null) {

View File

@ -14,8 +14,7 @@ public abstract class AbstractExtensionFunction extends ExtensionFunctionDefinit
public abstract String getName(); public abstract String getName();
public abstract Sequence doCall(XPathContext context, Sequence[] arguments) public abstract Sequence doCall(XPathContext context, Sequence[] arguments) throws XPathException;
throws XPathException;
@Override @Override
public StructuredQName getFunctionQName() { public StructuredQName getFunctionQName() {

View File

@ -24,8 +24,7 @@ public class PickFirst extends AbstractExtensionFunction {
final String s1 = getValue(arguments[0]); final String s1 = getValue(arguments[0]);
final String s2 = getValue(arguments[1]); final String s2 = getValue(arguments[1]);
return new StringValue( return new StringValue(StringUtils.isNotBlank(s1) ? s1 : StringUtils.isNotBlank(s2) ? s2 : "");
StringUtils.isNotBlank(s1) ? s1 : StringUtils.isNotBlank(s2) ? s2 : "");
} }
private String getValue(final Sequence arg) throws XPathException { private String getValue(final Sequence arg) throws XPathException {

View File

@ -89,7 +89,8 @@ public class MessageManager {
} }
public void close() throws IOException { public void close() throws IOException {
channels.values() channels
.values()
.forEach( .forEach(
ch -> { ch -> {
try { try {
@ -125,8 +126,7 @@ public class MessageManager {
} }
public void startConsumingMessage( public void startConsumingMessage(
final String queueName, final boolean durable, final boolean autodelete) final String queueName, final boolean durable, final boolean autodelete) throws Exception {
throws Exception {
Channel channel = createChannel(createConnection(), queueName, durable, autodelete); Channel channel = createChannel(createConnection(), queueName, durable, autodelete);
channel.basicConsume(queueName, false, new MessageConsumer(channel, queueMessages)); channel.basicConsume(queueName, false, new MessageConsumer(channel, queueMessages));

View File

@ -12,8 +12,7 @@ public class ArgumentApplicationParserTest {
public void testParseParameter() throws Exception { public void testParseParameter() throws Exception {
final String jsonConfiguration = final String jsonConfiguration =
IOUtils.toString( IOUtils.toString(
this.getClass() this.getClass().getResourceAsStream("/eu/dnetlib/application/parameters.json"));
.getResourceAsStream("/eu/dnetlib/application/parameters.json"));
assertNotNull(jsonConfiguration); assertNotNull(jsonConfiguration);
ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration);
parser.parseArgument( parser.parseArgument(

View File

@ -21,8 +21,7 @@ public class HdfsSupportTest {
@Test @Test
public void shouldThrowARuntimeExceptionOnError() { public void shouldThrowARuntimeExceptionOnError() {
// when // when
assertThrows( assertThrows(RuntimeException.class, () -> HdfsSupport.remove(null, new Configuration()));
RuntimeException.class, () -> HdfsSupport.remove(null, new Configuration()));
} }
@Test @Test
@ -53,8 +52,7 @@ public class HdfsSupportTest {
@Test @Test
public void shouldThrowARuntimeExceptionOnError() { public void shouldThrowARuntimeExceptionOnError() {
// when // when
assertThrows( assertThrows(RuntimeException.class, () -> HdfsSupport.listFiles(null, new Configuration()));
RuntimeException.class, () -> HdfsSupport.listFiles(null, new Configuration()));
} }
@Test @Test

View File

@ -27,9 +27,7 @@ public class MessageTest {
assertEquals(m1.getJobName(), m.getJobName()); assertEquals(m1.getJobName(), m.getJobName());
assertNotNull(m1.getBody()); assertNotNull(m1.getBody());
m1.getBody() m1.getBody().keySet().forEach(it -> assertEquals(m1.getBody().get(it), m.getBody().get(it)));
.keySet()
.forEach(it -> assertEquals(m1.getBody().get(it), m.getBody().get(it)));
assertEquals(m1.getJobName(), m.getJobName()); assertEquals(m1.getJobName(), m.getJobName());
} }

View File

@ -0,0 +1,40 @@
package eu.dnetlib.dhp.schema.common;
import eu.dnetlib.dhp.schema.oaf.Qualifier;
public class ModelConstants {
public static final String DNET_RESULT_TYPOLOGIES = "dnet:result_typologies";
public static final String DATASET_RESULTTYPE_CLASSID = "dataset";
public static final String PUBLICATION_RESULTTYPE_CLASSID = "publication";
public static final String SOFTWARE_RESULTTYPE_CLASSID = "software";
public static final String ORP_RESULTTYPE_CLASSID = "other";
public static Qualifier PUBLICATION_DEFAULT_RESULTTYPE = new Qualifier();
public static Qualifier DATASET_DEFAULT_RESULTTYPE = new Qualifier();
public static Qualifier SOFTWARE_DEFAULT_RESULTTYPE = new Qualifier();
public static Qualifier ORP_DEFAULT_RESULTTYPE = new Qualifier();
static {
PUBLICATION_DEFAULT_RESULTTYPE.setClassid(PUBLICATION_RESULTTYPE_CLASSID);
PUBLICATION_DEFAULT_RESULTTYPE.setClassname(PUBLICATION_RESULTTYPE_CLASSID);
PUBLICATION_DEFAULT_RESULTTYPE.setSchemeid(DNET_RESULT_TYPOLOGIES);
PUBLICATION_DEFAULT_RESULTTYPE.setSchemename(DNET_RESULT_TYPOLOGIES);
DATASET_DEFAULT_RESULTTYPE.setClassid(DATASET_RESULTTYPE_CLASSID);
DATASET_DEFAULT_RESULTTYPE.setClassname(DATASET_RESULTTYPE_CLASSID);
DATASET_DEFAULT_RESULTTYPE.setSchemeid(DNET_RESULT_TYPOLOGIES);
DATASET_DEFAULT_RESULTTYPE.setSchemename(DNET_RESULT_TYPOLOGIES);
SOFTWARE_DEFAULT_RESULTTYPE.setClassid(SOFTWARE_RESULTTYPE_CLASSID);
SOFTWARE_DEFAULT_RESULTTYPE.setClassname(SOFTWARE_RESULTTYPE_CLASSID);
SOFTWARE_DEFAULT_RESULTTYPE.setSchemeid(DNET_RESULT_TYPOLOGIES);
SOFTWARE_DEFAULT_RESULTTYPE.setSchemename(DNET_RESULT_TYPOLOGIES);
ORP_DEFAULT_RESULTTYPE.setClassid(ORP_RESULTTYPE_CLASSID);
ORP_DEFAULT_RESULTTYPE.setClassname(ORP_RESULTTYPE_CLASSID);
ORP_DEFAULT_RESULTTYPE.setSchemeid(DNET_RESULT_TYPOLOGIES);
ORP_DEFAULT_RESULTTYPE.setSchemename(DNET_RESULT_TYPOLOGIES);
}
}

View File

@ -3,6 +3,8 @@ package eu.dnetlib.dhp.schema.common;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import eu.dnetlib.dhp.schema.oaf.*; import eu.dnetlib.dhp.schema.oaf.*;
import java.util.Map; import java.util.Map;
import java.util.Optional;
import java.util.function.Function;
/** Oaf model utility methods. */ /** Oaf model utility methods. */
public class ModelSupport { public class ModelSupport {
@ -21,8 +23,7 @@ public class ModelSupport {
} }
/** /**
* Defines the mapping between the actual entity types and the relative classes implementing * Defines the mapping between the actual entity types and the relative classes implementing them
* them
*/ */
public static final Map<EntityType, Class> entityTypes = Maps.newHashMap(); public static final Map<EntityType, Class> entityTypes = Maps.newHashMap();
@ -146,4 +147,52 @@ public class ModelSupport {
entityMapping.get(EntityType.valueOf(sourceType)).name(), entityMapping.get(EntityType.valueOf(sourceType)).name(),
entityMapping.get(EntityType.valueOf(targetType)).name()); entityMapping.get(EntityType.valueOf(targetType)).name());
} }
public static <T extends Oaf> Function<T, String> idFn() {
return x -> {
if (isSubClass(x, Relation.class)) {
return idFnForRelation(x);
}
return idFnForOafEntity(x);
};
}
private static <T extends Oaf> String idFnForRelation(T t) {
Relation r = (Relation) t;
return Optional.ofNullable(r.getSource())
.map(
source ->
Optional.ofNullable(r.getTarget())
.map(
target ->
Optional.ofNullable(r.getRelType())
.map(
relType ->
Optional.ofNullable(r.getSubRelType())
.map(
subRelType ->
Optional.ofNullable(r.getRelClass())
.map(
relClass ->
String.join(
source,
target,
relType,
subRelType,
relClass))
.orElse(
String.join(
source,
target,
relType,
subRelType)))
.orElse(String.join(source, target, relType)))
.orElse(String.join(source, target)))
.orElse(source))
.orElse(null);
}
private static <T extends Oaf> String idFnForOafEntity(T t) {
return ((OafEntity) t).getId();
}
} }

View File

@ -76,11 +76,6 @@ public class DataInfo implements Serializable {
@Override @Override
public int hashCode() { public int hashCode() {
return Objects.hash( return Objects.hash(
invisible, invisible, inferred, deletedbyinference, trust, inferenceprovenance, provenanceaction);
inferred,
deletedbyinference,
trust,
inferenceprovenance,
provenanceaction);
} }
} }

View File

@ -1,8 +1,8 @@
package eu.dnetlib.dhp.schema.oaf; package eu.dnetlib.dhp.schema.oaf;
import eu.dnetlib.dhp.schema.common.ModelConstants;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import java.util.Objects;
public class Dataset extends Result implements Serializable { public class Dataset extends Result implements Serializable {
@ -20,6 +20,10 @@ public class Dataset extends Result implements Serializable {
private List<GeoLocation> geolocation; private List<GeoLocation> geolocation;
public Dataset() {
setResulttype(ModelConstants.DATASET_DEFAULT_RESULTTYPE);
}
public Field<String> getStoragedate() { public Field<String> getStoragedate() {
return storagedate; return storagedate;
} }
@ -87,9 +91,7 @@ public class Dataset extends Result implements Serializable {
final Dataset d = (Dataset) e; final Dataset d = (Dataset) e;
storagedate = storagedate =
d.getStoragedate() != null && compareTrust(this, e) < 0 d.getStoragedate() != null && compareTrust(this, e) < 0 ? d.getStoragedate() : storagedate;
? d.getStoragedate()
: storagedate;
device = d.getDevice() != null && compareTrust(this, e) < 0 ? d.getDevice() : device; device = d.getDevice() != null && compareTrust(this, e) < 0 ? d.getDevice() : device;
@ -111,32 +113,4 @@ public class Dataset extends Result implements Serializable {
mergeOAFDataInfo(d); mergeOAFDataInfo(d);
} }
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
if (!super.equals(o)) return false;
Dataset dataset = (Dataset) o;
return Objects.equals(storagedate, dataset.storagedate)
&& Objects.equals(device, dataset.device)
&& Objects.equals(size, dataset.size)
&& Objects.equals(version, dataset.version)
&& Objects.equals(lastmetadataupdate, dataset.lastmetadataupdate)
&& Objects.equals(metadataversionnumber, dataset.metadataversionnumber)
&& Objects.equals(geolocation, dataset.geolocation);
}
@Override
public int hashCode() {
return Objects.hash(
super.hashCode(),
storagedate,
device,
size,
version,
lastmetadataupdate,
metadataversionnumber,
geolocation);
}
} }

View File

@ -2,7 +2,6 @@ package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import java.util.Objects;
public class Datasource extends OafEntity implements Serializable { public class Datasource extends OafEntity implements Serializable {
@ -386,15 +385,10 @@ public class Datasource extends OafEntity implements Serializable {
? d.getOfficialname() ? d.getOfficialname()
: officialname; : officialname;
englishname = englishname =
d.getEnglishname() != null && compareTrust(this, e) < 0 d.getEnglishname() != null && compareTrust(this, e) < 0 ? d.getEnglishname() : officialname;
? d.getEnglishname()
: officialname;
websiteurl = websiteurl =
d.getWebsiteurl() != null && compareTrust(this, e) < 0 d.getWebsiteurl() != null && compareTrust(this, e) < 0 ? d.getWebsiteurl() : websiteurl;
? d.getWebsiteurl() logourl = d.getLogourl() != null && compareTrust(this, e) < 0 ? d.getLogourl() : getLogourl();
: websiteurl;
logourl =
d.getLogourl() != null && compareTrust(this, e) < 0 ? d.getLogourl() : getLogourl();
contactemail = contactemail =
d.getContactemail() != null && compareTrust(this, e) < 0 d.getContactemail() != null && compareTrust(this, e) < 0
? d.getContactemail() ? d.getContactemail()
@ -403,20 +397,15 @@ public class Datasource extends OafEntity implements Serializable {
d.getNamespaceprefix() != null && compareTrust(this, e) < 0 d.getNamespaceprefix() != null && compareTrust(this, e) < 0
? d.getNamespaceprefix() ? d.getNamespaceprefix()
: namespaceprefix; : namespaceprefix;
latitude = latitude = d.getLatitude() != null && compareTrust(this, e) < 0 ? d.getLatitude() : latitude;
d.getLatitude() != null && compareTrust(this, e) < 0 ? d.getLatitude() : latitude;
longitude = longitude =
d.getLongitude() != null && compareTrust(this, e) < 0 d.getLongitude() != null && compareTrust(this, e) < 0 ? d.getLongitude() : longitude;
? d.getLongitude()
: longitude;
dateofvalidation = dateofvalidation =
d.getDateofvalidation() != null && compareTrust(this, e) < 0 d.getDateofvalidation() != null && compareTrust(this, e) < 0
? d.getDateofvalidation() ? d.getDateofvalidation()
: dateofvalidation; : dateofvalidation;
description = description =
d.getDescription() != null && compareTrust(this, e) < 0 d.getDescription() != null && compareTrust(this, e) < 0 ? d.getDescription() : description;
? d.getDescription()
: description;
subjects = mergeLists(subjects, d.getSubjects()); subjects = mergeLists(subjects, d.getSubjects());
// opendoar specific fields (od*) // opendoar specific fields (od*)
@ -429,9 +418,7 @@ public class Datasource extends OafEntity implements Serializable {
? d.getOdnumberofitemsdate() ? d.getOdnumberofitemsdate()
: odnumberofitemsdate; : odnumberofitemsdate;
odpolicies = odpolicies =
d.getOdpolicies() != null && compareTrust(this, e) < 0 d.getOdpolicies() != null && compareTrust(this, e) < 0 ? d.getOdpolicies() : odpolicies;
? d.getOdpolicies()
: odpolicies;
odlanguages = mergeLists(odlanguages, d.getOdlanguages()); odlanguages = mergeLists(odlanguages, d.getOdlanguages());
odcontenttypes = mergeLists(odcontenttypes, d.getOdcontenttypes()); odcontenttypes = mergeLists(odcontenttypes, d.getOdcontenttypes());
accessinfopackage = mergeLists(accessinfopackage, d.getAccessinfopackage()); accessinfopackage = mergeLists(accessinfopackage, d.getAccessinfopackage());
@ -483,9 +470,7 @@ public class Datasource extends OafEntity implements Serializable {
: datauploadrestriction; : datauploadrestriction;
versioning = versioning =
d.getVersioning() != null && compareTrust(this, e) < 0 d.getVersioning() != null && compareTrust(this, e) < 0 ? d.getVersioning() : versioning;
? d.getVersioning()
: versioning;
citationguidelineurl = citationguidelineurl =
d.getCitationguidelineurl() != null && compareTrust(this, e) < 0 d.getCitationguidelineurl() != null && compareTrust(this, e) < 0
? d.getCitationguidelineurl() ? d.getCitationguidelineurl()
@ -497,9 +482,7 @@ public class Datasource extends OafEntity implements Serializable {
? d.getQualitymanagementkind() ? d.getQualitymanagementkind()
: qualitymanagementkind; : qualitymanagementkind;
pidsystems = pidsystems =
d.getPidsystems() != null && compareTrust(this, e) < 0 d.getPidsystems() != null && compareTrust(this, e) < 0 ? d.getPidsystems() : pidsystems;
? d.getPidsystems()
: pidsystems;
certificates = certificates =
d.getCertificates() != null && compareTrust(this, e) < 0 d.getCertificates() != null && compareTrust(this, e) < 0
@ -512,88 +495,4 @@ public class Datasource extends OafEntity implements Serializable {
mergeOAFDataInfo(e); mergeOAFDataInfo(e);
} }
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
if (!super.equals(o)) return false;
Datasource that = (Datasource) o;
return Objects.equals(datasourcetype, that.datasourcetype)
&& Objects.equals(openairecompatibility, that.openairecompatibility)
&& Objects.equals(officialname, that.officialname)
&& Objects.equals(englishname, that.englishname)
&& Objects.equals(websiteurl, that.websiteurl)
&& Objects.equals(logourl, that.logourl)
&& Objects.equals(contactemail, that.contactemail)
&& Objects.equals(namespaceprefix, that.namespaceprefix)
&& Objects.equals(latitude, that.latitude)
&& Objects.equals(longitude, that.longitude)
&& Objects.equals(dateofvalidation, that.dateofvalidation)
&& Objects.equals(description, that.description)
&& Objects.equals(subjects, that.subjects)
&& Objects.equals(odnumberofitems, that.odnumberofitems)
&& Objects.equals(odnumberofitemsdate, that.odnumberofitemsdate)
&& Objects.equals(odpolicies, that.odpolicies)
&& Objects.equals(odlanguages, that.odlanguages)
&& Objects.equals(odcontenttypes, that.odcontenttypes)
&& Objects.equals(accessinfopackage, that.accessinfopackage)
&& Objects.equals(releasestartdate, that.releasestartdate)
&& Objects.equals(releaseenddate, that.releaseenddate)
&& Objects.equals(missionstatementurl, that.missionstatementurl)
&& Objects.equals(dataprovider, that.dataprovider)
&& Objects.equals(serviceprovider, that.serviceprovider)
&& Objects.equals(databaseaccesstype, that.databaseaccesstype)
&& Objects.equals(datauploadtype, that.datauploadtype)
&& Objects.equals(databaseaccessrestriction, that.databaseaccessrestriction)
&& Objects.equals(datauploadrestriction, that.datauploadrestriction)
&& Objects.equals(versioning, that.versioning)
&& Objects.equals(citationguidelineurl, that.citationguidelineurl)
&& Objects.equals(qualitymanagementkind, that.qualitymanagementkind)
&& Objects.equals(pidsystems, that.pidsystems)
&& Objects.equals(certificates, that.certificates)
&& Objects.equals(policies, that.policies)
&& Objects.equals(journal, that.journal);
}
@Override
public int hashCode() {
return Objects.hash(
super.hashCode(),
datasourcetype,
openairecompatibility,
officialname,
englishname,
websiteurl,
logourl,
contactemail,
namespaceprefix,
latitude,
longitude,
dateofvalidation,
description,
subjects,
odnumberofitems,
odnumberofitemsdate,
odpolicies,
odlanguages,
odcontenttypes,
accessinfopackage,
releasestartdate,
releaseenddate,
missionstatementurl,
dataprovider,
serviceprovider,
databaseaccesstype,
datauploadtype,
databaseaccessrestriction,
datauploadrestriction,
versioning,
citationguidelineurl,
qualitymanagementkind,
pidsystems,
certificates,
policies,
journal);
}
} }

View File

@ -123,15 +123,9 @@ public class Instance implements Serializable {
public String toComparableString() { public String toComparableString() {
return String.format( return String.format(
"%s::%s::%s::%s", "%s::%s::%s::%s",
hostedby != null && hostedby.getKey() != null hostedby != null && hostedby.getKey() != null ? hostedby.getKey().toLowerCase() : "",
? hostedby.getKey().toLowerCase() accessright != null && accessright.getClassid() != null ? accessright.getClassid() : "",
: "", instancetype != null && instancetype.getClassid() != null ? instancetype.getClassid() : "",
accessright != null && accessright.getClassid() != null
? accessright.getClassid()
: "",
instancetype != null && instancetype.getClassid() != null
? instancetype.getClassid()
: "",
url != null ? url : ""); url != null ? url : "");
} }

View File

@ -41,8 +41,7 @@ public class KeyValue implements Serializable {
? "" ? ""
: String.format( : String.format(
"%s::%s", "%s::%s",
key != null ? key.toLowerCase() : "", key != null ? key.toLowerCase() : "", value != null ? value.toLowerCase() : "");
value != null ? value.toLowerCase() : "");
} }
@JsonIgnore @JsonIgnore

View File

@ -41,8 +41,7 @@ public abstract class Oaf implements Serializable {
} }
protected String extractTrust(Oaf e) { protected String extractTrust(Oaf e) {
if (e == null || e.getDataInfo() == null || e.getDataInfo().getTrust() == null) if (e == null || e.getDataInfo() == null || e.getDataInfo().getTrust() == null) return "0.0";
return "0.0";
return e.getDataInfo().getTrust(); return e.getDataInfo().getTrust();
} }

View File

@ -113,27 +113,11 @@ public abstract class OafEntity extends Oaf implements Serializable {
if (o == null || getClass() != o.getClass()) return false; if (o == null || getClass() != o.getClass()) return false;
if (!super.equals(o)) return false; if (!super.equals(o)) return false;
OafEntity oafEntity = (OafEntity) o; OafEntity oafEntity = (OafEntity) o;
return Objects.equals(id, oafEntity.id) return Objects.equals(id, oafEntity.id);
&& Objects.equals(originalId, oafEntity.originalId)
&& Objects.equals(collectedfrom, oafEntity.collectedfrom)
&& Objects.equals(pid, oafEntity.pid)
&& Objects.equals(dateofcollection, oafEntity.dateofcollection)
&& Objects.equals(dateoftransformation, oafEntity.dateoftransformation)
&& Objects.equals(extraInfo, oafEntity.extraInfo)
&& Objects.equals(oaiprovenance, oafEntity.oaiprovenance);
} }
@Override @Override
public int hashCode() { public int hashCode() {
return Objects.hash( return Objects.hash(super.hashCode(), id);
super.hashCode(),
id,
originalId,
collectedfrom,
pid,
dateofcollection,
dateoftransformation,
extraInfo,
oaiprovenance);
} }
} }

View File

@ -2,7 +2,6 @@ package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import java.util.Objects;
public class Organization extends OafEntity implements Serializable { public class Organization extends OafEntity implements Serializable {
@ -181,27 +180,19 @@ public class Organization extends OafEntity implements Serializable {
? o.getLegalshortname() ? o.getLegalshortname()
: legalshortname; : legalshortname;
legalname = legalname =
o.getLegalname() != null && compareTrust(this, e) < 0 o.getLegalname() != null && compareTrust(this, e) < 0 ? o.getLegalname() : legalname;
? o.getLegalname()
: legalname;
alternativeNames = mergeLists(o.getAlternativeNames(), alternativeNames); alternativeNames = mergeLists(o.getAlternativeNames(), alternativeNames);
websiteurl = websiteurl =
o.getWebsiteurl() != null && compareTrust(this, e) < 0 o.getWebsiteurl() != null && compareTrust(this, e) < 0 ? o.getWebsiteurl() : websiteurl;
? o.getWebsiteurl()
: websiteurl;
logourl = o.getLogourl() != null && compareTrust(this, e) < 0 ? o.getLogourl() : logourl; logourl = o.getLogourl() != null && compareTrust(this, e) < 0 ? o.getLogourl() : logourl;
eclegalbody = eclegalbody =
o.getEclegalbody() != null && compareTrust(this, e) < 0 o.getEclegalbody() != null && compareTrust(this, e) < 0 ? o.getEclegalbody() : eclegalbody;
? o.getEclegalbody()
: eclegalbody;
eclegalperson = eclegalperson =
o.getEclegalperson() != null && compareTrust(this, e) < 0 o.getEclegalperson() != null && compareTrust(this, e) < 0
? o.getEclegalperson() ? o.getEclegalperson()
: eclegalperson; : eclegalperson;
ecnonprofit = ecnonprofit =
o.getEcnonprofit() != null && compareTrust(this, e) < 0 o.getEcnonprofit() != null && compareTrust(this, e) < 0 ? o.getEcnonprofit() : ecnonprofit;
? o.getEcnonprofit()
: ecnonprofit;
ecresearchorganization = ecresearchorganization =
o.getEcresearchorganization() != null && compareTrust(this, e) < 0 o.getEcresearchorganization() != null && compareTrust(this, e) < 0
? o.getEcresearchorganization() ? o.getEcresearchorganization()
@ -227,58 +218,8 @@ public class Organization extends OafEntity implements Serializable {
? o.getEcsmevalidated() ? o.getEcsmevalidated()
: ecsmevalidated; : ecsmevalidated;
ecnutscode = ecnutscode =
o.getEcnutscode() != null && compareTrust(this, e) < 0 o.getEcnutscode() != null && compareTrust(this, e) < 0 ? o.getEcnutscode() : ecnutscode;
? o.getEcnutscode()
: ecnutscode;
country = o.getCountry() != null && compareTrust(this, e) < 0 ? o.getCountry() : country; country = o.getCountry() != null && compareTrust(this, e) < 0 ? o.getCountry() : country;
mergeOAFDataInfo(o); mergeOAFDataInfo(o);
} }
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
if (!super.equals(o)) return false;
Organization that = (Organization) o;
return Objects.equals(legalshortname, that.legalshortname)
&& Objects.equals(legalname, that.legalname)
&& Objects.equals(alternativeNames, that.alternativeNames)
&& Objects.equals(websiteurl, that.websiteurl)
&& Objects.equals(logourl, that.logourl)
&& Objects.equals(eclegalbody, that.eclegalbody)
&& Objects.equals(eclegalperson, that.eclegalperson)
&& Objects.equals(ecnonprofit, that.ecnonprofit)
&& Objects.equals(ecresearchorganization, that.ecresearchorganization)
&& Objects.equals(echighereducation, that.echighereducation)
&& Objects.equals(
ecinternationalorganizationeurinterests,
that.ecinternationalorganizationeurinterests)
&& Objects.equals(ecinternationalorganization, that.ecinternationalorganization)
&& Objects.equals(ecenterprise, that.ecenterprise)
&& Objects.equals(ecsmevalidated, that.ecsmevalidated)
&& Objects.equals(ecnutscode, that.ecnutscode)
&& Objects.equals(country, that.country);
}
@Override
public int hashCode() {
return Objects.hash(
super.hashCode(),
legalshortname,
legalname,
alternativeNames,
websiteurl,
logourl,
eclegalbody,
eclegalperson,
ecnonprofit,
ecresearchorganization,
echighereducation,
ecinternationalorganizationeurinterests,
ecinternationalorganization,
ecenterprise,
ecsmevalidated,
ecnutscode,
country);
}
} }

View File

@ -80,7 +80,6 @@ public class OriginDescription implements Serializable {
@Override @Override
public int hashCode() { public int hashCode() {
return Objects.hash( return Objects.hash(harvestDate, altered, baseURL, identifier, datestamp, metadataNamespace);
harvestDate, altered, baseURL, identifier, datestamp, metadataNamespace);
} }
} }

View File

@ -1,8 +1,8 @@
package eu.dnetlib.dhp.schema.oaf; package eu.dnetlib.dhp.schema.oaf;
import eu.dnetlib.dhp.schema.common.ModelConstants;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import java.util.Objects;
public class OtherResearchProduct extends Result implements Serializable { public class OtherResearchProduct extends Result implements Serializable {
@ -12,6 +12,10 @@ public class OtherResearchProduct extends Result implements Serializable {
private List<Field<String>> tool; private List<Field<String>> tool;
public OtherResearchProduct() {
setResulttype(ModelConstants.ORP_DEFAULT_RESULTTYPE);
}
public List<Field<String>> getContactperson() { public List<Field<String>> getContactperson() {
return contactperson; return contactperson;
} }
@ -51,20 +55,4 @@ public class OtherResearchProduct extends Result implements Serializable {
tool = mergeLists(tool, o.getTool()); tool = mergeLists(tool, o.getTool());
mergeOAFDataInfo(e); mergeOAFDataInfo(e);
} }
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
if (!super.equals(o)) return false;
OtherResearchProduct that = (OtherResearchProduct) o;
return Objects.equals(contactperson, that.contactperson)
&& Objects.equals(contactgroup, that.contactgroup)
&& Objects.equals(tool, that.tool);
}
@Override
public int hashCode() {
return Objects.hash(super.hashCode(), contactperson, contactgroup, tool);
}
} }

View File

@ -2,7 +2,6 @@ package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import java.util.Objects;
public class Project extends OafEntity implements Serializable { public class Project extends OafEntity implements Serializable {
@ -277,25 +276,19 @@ public class Project extends OafEntity implements Serializable {
Project p = (Project) e; Project p = (Project) e;
websiteurl = websiteurl =
p.getWebsiteurl() != null && compareTrust(this, e) < 0 p.getWebsiteurl() != null && compareTrust(this, e) < 0 ? p.getWebsiteurl() : websiteurl;
? p.getWebsiteurl()
: websiteurl;
code = p.getCode() != null && compareTrust(this, e) < 0 ? p.getCode() : code; code = p.getCode() != null && compareTrust(this, e) < 0 ? p.getCode() : code;
acronym = p.getAcronym() != null && compareTrust(this, e) < 0 ? p.getAcronym() : acronym; acronym = p.getAcronym() != null && compareTrust(this, e) < 0 ? p.getAcronym() : acronym;
title = p.getTitle() != null && compareTrust(this, e) < 0 ? p.getTitle() : title; title = p.getTitle() != null && compareTrust(this, e) < 0 ? p.getTitle() : title;
startdate = startdate =
p.getStartdate() != null && compareTrust(this, e) < 0 p.getStartdate() != null && compareTrust(this, e) < 0 ? p.getStartdate() : startdate;
? p.getStartdate()
: startdate;
enddate = p.getEnddate() != null && compareTrust(this, e) < 0 ? p.getEnddate() : enddate; enddate = p.getEnddate() != null && compareTrust(this, e) < 0 ? p.getEnddate() : enddate;
callidentifier = callidentifier =
p.getCallidentifier() != null && compareTrust(this, e) < 0 p.getCallidentifier() != null && compareTrust(this, e) < 0
? p.getCallidentifier() ? p.getCallidentifier()
: callidentifier; : callidentifier;
keywords = keywords = p.getKeywords() != null && compareTrust(this, e) < 0 ? p.getKeywords() : keywords;
p.getKeywords() != null && compareTrust(this, e) < 0 ? p.getKeywords() : keywords; duration = p.getDuration() != null && compareTrust(this, e) < 0 ? p.getDuration() : duration;
duration =
p.getDuration() != null && compareTrust(this, e) < 0 ? p.getDuration() : duration;
ecsc39 = p.getEcsc39() != null && compareTrust(this, e) < 0 ? p.getEcsc39() : ecsc39; ecsc39 = p.getEcsc39() != null && compareTrust(this, e) < 0 ? p.getEcsc39() : ecsc39;
oamandatepublications = oamandatepublications =
p.getOamandatepublications() != null && compareTrust(this, e) < 0 p.getOamandatepublications() != null && compareTrust(this, e) < 0
@ -312,13 +305,9 @@ public class Project extends OafEntity implements Serializable {
? p.getContracttype() ? p.getContracttype()
: contracttype; : contracttype;
optional1 = optional1 =
p.getOptional1() != null && compareTrust(this, e) < 0 p.getOptional1() != null && compareTrust(this, e) < 0 ? p.getOptional1() : optional1;
? p.getOptional1()
: optional1;
optional2 = optional2 =
p.getOptional2() != null && compareTrust(this, e) < 0 p.getOptional2() != null && compareTrust(this, e) < 0 ? p.getOptional2() : optional2;
? p.getOptional2()
: optional2;
jsonextrainfo = jsonextrainfo =
p.getJsonextrainfo() != null && compareTrust(this, e) < 0 p.getJsonextrainfo() != null && compareTrust(this, e) < 0
? p.getJsonextrainfo() ? p.getJsonextrainfo()
@ -328,9 +317,7 @@ public class Project extends OafEntity implements Serializable {
? p.getContactfullname() ? p.getContactfullname()
: contactfullname; : contactfullname;
contactfax = contactfax =
p.getContactfax() != null && compareTrust(this, e) < 0 p.getContactfax() != null && compareTrust(this, e) < 0 ? p.getContactfax() : contactfax;
? p.getContactfax()
: contactfax;
contactphone = contactphone =
p.getContactphone() != null && compareTrust(this, e) < 0 p.getContactphone() != null && compareTrust(this, e) < 0
? p.getContactphone() ? p.getContactphone()
@ -340,82 +327,13 @@ public class Project extends OafEntity implements Serializable {
? p.getContactemail() ? p.getContactemail()
: contactemail; : contactemail;
summary = p.getSummary() != null && compareTrust(this, e) < 0 ? p.getSummary() : summary; summary = p.getSummary() != null && compareTrust(this, e) < 0 ? p.getSummary() : summary;
currency = currency = p.getCurrency() != null && compareTrust(this, e) < 0 ? p.getCurrency() : currency;
p.getCurrency() != null && compareTrust(this, e) < 0 ? p.getCurrency() : currency;
totalcost = totalcost =
p.getTotalcost() != null && compareTrust(this, e) < 0 p.getTotalcost() != null && compareTrust(this, e) < 0 ? p.getTotalcost() : totalcost;
? p.getTotalcost()
: totalcost;
fundedamount = fundedamount =
p.getFundedamount() != null && compareTrust(this, e) < 0 p.getFundedamount() != null && compareTrust(this, e) < 0
? p.getFundedamount() ? p.getFundedamount()
: fundedamount; : fundedamount;
mergeOAFDataInfo(e); mergeOAFDataInfo(e);
} }
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
if (!super.equals(o)) return false;
Project project = (Project) o;
return Objects.equals(websiteurl, project.websiteurl)
&& Objects.equals(code, project.code)
&& Objects.equals(acronym, project.acronym)
&& Objects.equals(title, project.title)
&& Objects.equals(startdate, project.startdate)
&& Objects.equals(enddate, project.enddate)
&& Objects.equals(callidentifier, project.callidentifier)
&& Objects.equals(keywords, project.keywords)
&& Objects.equals(duration, project.duration)
&& Objects.equals(ecsc39, project.ecsc39)
&& Objects.equals(oamandatepublications, project.oamandatepublications)
&& Objects.equals(ecarticle29_3, project.ecarticle29_3)
&& Objects.equals(subjects, project.subjects)
&& Objects.equals(fundingtree, project.fundingtree)
&& Objects.equals(contracttype, project.contracttype)
&& Objects.equals(optional1, project.optional1)
&& Objects.equals(optional2, project.optional2)
&& Objects.equals(jsonextrainfo, project.jsonextrainfo)
&& Objects.equals(contactfullname, project.contactfullname)
&& Objects.equals(contactfax, project.contactfax)
&& Objects.equals(contactphone, project.contactphone)
&& Objects.equals(contactemail, project.contactemail)
&& Objects.equals(summary, project.summary)
&& Objects.equals(currency, project.currency)
&& Objects.equals(totalcost, project.totalcost)
&& Objects.equals(fundedamount, project.fundedamount);
}
@Override
public int hashCode() {
return Objects.hash(
super.hashCode(),
websiteurl,
code,
acronym,
title,
startdate,
enddate,
callidentifier,
keywords,
duration,
ecsc39,
oamandatepublications,
ecarticle29_3,
subjects,
fundingtree,
contracttype,
optional1,
optional2,
jsonextrainfo,
contactfullname,
contactfax,
contactphone,
contactemail,
summary,
currency,
totalcost,
fundedamount);
}
} }

View File

@ -1,13 +1,17 @@
package eu.dnetlib.dhp.schema.oaf; package eu.dnetlib.dhp.schema.oaf;
import eu.dnetlib.dhp.schema.common.ModelConstants;
import java.io.Serializable; import java.io.Serializable;
import java.util.Objects;
public class Publication extends Result implements Serializable { public class Publication extends Result implements Serializable {
// publication specific // publication specific
private Journal journal; private Journal journal;
public Publication() {
setResulttype(ModelConstants.PUBLICATION_DEFAULT_RESULTTYPE);
}
public Journal getJournal() { public Journal getJournal() {
return journal; return journal;
} }
@ -29,18 +33,4 @@ public class Publication extends Result implements Serializable {
if (p.getJournal() != null && compareTrust(this, e) < 0) journal = p.getJournal(); if (p.getJournal() != null && compareTrust(this, e) < 0) journal = p.getJournal();
mergeOAFDataInfo(e); mergeOAFDataInfo(e);
} }
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
if (!super.equals(o)) return false;
Publication that = (Publication) o;
return Objects.equals(journal, that.journal);
}
@Override
public int hashCode() {
return Objects.hash(super.hashCode(), journal);
}
} }

View File

@ -3,7 +3,6 @@ package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable; import java.io.Serializable;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.Objects;
public class Result extends OafEntity implements Serializable { public class Result extends OafEntity implements Serializable {
@ -231,6 +230,9 @@ public class Result extends OafEntity implements Serializable {
instance = mergeLists(instance, r.getInstance()); instance = mergeLists(instance, r.getInstance());
if (r.getBestaccessright() != null && compareTrust(this, r) < 0)
bestaccessright = r.getBestaccessright();
if (r.getResulttype() != null && compareTrust(this, r) < 0) resulttype = r.getResulttype(); if (r.getResulttype() != null && compareTrust(this, r) < 0) resulttype = r.getResulttype();
if (r.getLanguage() != null && compareTrust(this, r) < 0) language = r.getLanguage(); if (r.getLanguage() != null && compareTrust(this, r) < 0) language = r.getLanguage();
@ -286,60 +288,4 @@ public class Result extends OafEntity implements Serializable {
} }
return a.size() > b.size() ? a : b; return a.size() > b.size() ? a : b;
} }
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
if (!super.equals(o)) return false;
Result result = (Result) o;
return Objects.equals(author, result.author)
&& Objects.equals(resulttype, result.resulttype)
&& Objects.equals(language, result.language)
&& Objects.equals(country, result.country)
&& Objects.equals(subject, result.subject)
&& Objects.equals(title, result.title)
&& Objects.equals(relevantdate, result.relevantdate)
&& Objects.equals(description, result.description)
&& Objects.equals(dateofacceptance, result.dateofacceptance)
&& Objects.equals(publisher, result.publisher)
&& Objects.equals(embargoenddate, result.embargoenddate)
&& Objects.equals(source, result.source)
&& Objects.equals(fulltext, result.fulltext)
&& Objects.equals(format, result.format)
&& Objects.equals(contributor, result.contributor)
&& Objects.equals(resourcetype, result.resourcetype)
&& Objects.equals(coverage, result.coverage)
&& Objects.equals(bestaccessright, result.bestaccessright)
&& Objects.equals(context, result.context)
&& Objects.equals(externalReference, result.externalReference)
&& Objects.equals(instance, result.instance);
}
@Override
public int hashCode() {
return Objects.hash(
super.hashCode(),
author,
resulttype,
language,
country,
subject,
title,
relevantdate,
description,
dateofacceptance,
publisher,
embargoenddate,
source,
fulltext,
format,
contributor,
resourcetype,
coverage,
bestaccessright,
context,
externalReference,
instance);
}
} }

View File

@ -1,8 +1,8 @@
package eu.dnetlib.dhp.schema.oaf; package eu.dnetlib.dhp.schema.oaf;
import eu.dnetlib.dhp.schema.common.ModelConstants;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import java.util.Objects;
public class Software extends Result implements Serializable { public class Software extends Result implements Serializable {
@ -14,6 +14,10 @@ public class Software extends Result implements Serializable {
private Qualifier programmingLanguage; private Qualifier programmingLanguage;
public Software() {
setResulttype(ModelConstants.SOFTWARE_DEFAULT_RESULTTYPE);
}
public List<Field<String>> getDocumentationUrl() { public List<Field<String>> getDocumentationUrl() {
return documentationUrl; return documentationUrl;
} }
@ -71,26 +75,4 @@ public class Software extends Result implements Serializable {
mergeOAFDataInfo(e); mergeOAFDataInfo(e);
} }
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
if (!super.equals(o)) return false;
Software software = (Software) o;
return Objects.equals(documentationUrl, software.documentationUrl)
&& Objects.equals(license, software.license)
&& Objects.equals(codeRepositoryUrl, software.codeRepositoryUrl)
&& Objects.equals(programmingLanguage, software.programmingLanguage);
}
@Override
public int hashCode() {
return Objects.hash(
super.hashCode(),
documentationUrl,
license,
codeRepositoryUrl,
programmingLanguage);
}
} }

View File

@ -56,12 +56,8 @@ public class DLIDataset extends Dataset {
if (a != null) if (a != null)
a.forEach( a.forEach(
p -> { p -> {
if (p != null if (p != null && StringUtils.isNotBlank(p.getId()) && result.containsKey(p.getId())) {
&& StringUtils.isNotBlank(p.getId()) if ("incomplete".equalsIgnoreCase(result.get(p.getId()).getCompletionStatus())
&& result.containsKey(p.getId())) {
if ("incomplete"
.equalsIgnoreCase(
result.get(p.getId()).getCompletionStatus())
&& StringUtils.isNotBlank(p.getCompletionStatus())) { && StringUtils.isNotBlank(p.getCompletionStatus())) {
result.put(p.getId(), p); result.put(p.getId(), p);
} }
@ -72,12 +68,8 @@ public class DLIDataset extends Dataset {
if (b != null) if (b != null)
b.forEach( b.forEach(
p -> { p -> {
if (p != null if (p != null && StringUtils.isNotBlank(p.getId()) && result.containsKey(p.getId())) {
&& StringUtils.isNotBlank(p.getId()) if ("incomplete".equalsIgnoreCase(result.get(p.getId()).getCompletionStatus())
&& result.containsKey(p.getId())) {
if ("incomplete"
.equalsIgnoreCase(
result.get(p.getId()).getCompletionStatus())
&& StringUtils.isNotBlank(p.getCompletionStatus())) { && StringUtils.isNotBlank(p.getCompletionStatus())) {
result.put(p.getId(), p); result.put(p.getId(), p);
} }

View File

@ -54,12 +54,8 @@ public class DLIPublication extends Publication implements Serializable {
if (a != null) if (a != null)
a.forEach( a.forEach(
p -> { p -> {
if (p != null if (p != null && StringUtils.isNotBlank(p.getId()) && result.containsKey(p.getId())) {
&& StringUtils.isNotBlank(p.getId()) if ("incomplete".equalsIgnoreCase(result.get(p.getId()).getCompletionStatus())
&& result.containsKey(p.getId())) {
if ("incomplete"
.equalsIgnoreCase(
result.get(p.getId()).getCompletionStatus())
&& StringUtils.isNotBlank(p.getCompletionStatus())) { && StringUtils.isNotBlank(p.getCompletionStatus())) {
result.put(p.getId(), p); result.put(p.getId(), p);
} }
@ -70,12 +66,8 @@ public class DLIPublication extends Publication implements Serializable {
if (b != null) if (b != null)
b.forEach( b.forEach(
p -> { p -> {
if (p != null if (p != null && StringUtils.isNotBlank(p.getId()) && result.containsKey(p.getId())) {
&& StringUtils.isNotBlank(p.getId()) if ("incomplete".equalsIgnoreCase(result.get(p.getId()).getCompletionStatus())
&& result.containsKey(p.getId())) {
if ("incomplete"
.equalsIgnoreCase(
result.get(p.getId()).getCompletionStatus())
&& StringUtils.isNotBlank(p.getCompletionStatus())) { && StringUtils.isNotBlank(p.getCompletionStatus())) {
result.put(p.getId(), p); result.put(p.getId(), p);
} }

View File

@ -82,12 +82,8 @@ public class DLIUnknown extends Oaf implements Serializable {
if (a != null) if (a != null)
a.forEach( a.forEach(
p -> { p -> {
if (p != null if (p != null && StringUtils.isNotBlank(p.getId()) && result.containsKey(p.getId())) {
&& StringUtils.isNotBlank(p.getId()) if ("incomplete".equalsIgnoreCase(result.get(p.getId()).getCompletionStatus())
&& result.containsKey(p.getId())) {
if ("incomplete"
.equalsIgnoreCase(
result.get(p.getId()).getCompletionStatus())
&& StringUtils.isNotBlank(p.getCompletionStatus())) { && StringUtils.isNotBlank(p.getCompletionStatus())) {
result.put(p.getId(), p); result.put(p.getId(), p);
} }
@ -98,12 +94,8 @@ public class DLIUnknown extends Oaf implements Serializable {
if (b != null) if (b != null)
b.forEach( b.forEach(
p -> { p -> {
if (p != null if (p != null && StringUtils.isNotBlank(p.getId()) && result.containsKey(p.getId())) {
&& StringUtils.isNotBlank(p.getId()) if ("incomplete".equalsIgnoreCase(result.get(p.getId()).getCompletionStatus())
&& result.containsKey(p.getId())) {
if ("incomplete"
.equalsIgnoreCase(
result.get(p.getId()).getCompletionStatus())
&& StringUtils.isNotBlank(p.getCompletionStatus())) { && StringUtils.isNotBlank(p.getCompletionStatus())) {
result.put(p.getId(), p); result.put(p.getId(), p);
} }

View File

@ -65,8 +65,7 @@ public class MigrateActionSet {
ISLookUpService isLookUp = ISLookupClientFactory.getLookUpService(isLookupUrl); ISLookUpService isLookUp = ISLookupClientFactory.getLookUpService(isLookupUrl);
Configuration conf = Configuration conf = getConfiguration(distcp_task_timeout, distcp_memory_mb, distcp_num_maps);
getConfiguration(distcp_task_timeout, distcp_memory_mb, distcp_num_maps);
FileSystem targetFS = FileSystem.get(conf); FileSystem targetFS = FileSystem.get(conf);
Configuration sourceConf = Configuration sourceConf =
@ -99,13 +98,7 @@ public class MigrateActionSet {
final String actionSetDirectory = pathQ.pollLast(); final String actionSetDirectory = pathQ.pollLast();
final Path targetPath = final Path targetPath =
new Path( new Path(targetNN + workDir + SEPARATOR + actionSetDirectory + SEPARATOR + rawSet);
targetNN
+ workDir
+ SEPARATOR
+ actionSetDirectory
+ SEPARATOR
+ rawSet);
log.info("using TARGET PATH: {}", targetPath); log.info("using TARGET PATH: {}", targetPath);
@ -114,12 +107,7 @@ public class MigrateActionSet {
targetFS.delete(targetPath, true); targetFS.delete(targetPath, true);
} }
runDistcp( runDistcp(
distcp_num_maps, distcp_num_maps, distcp_memory_mb, distcp_task_timeout, conf, source, targetPath);
distcp_memory_mb,
distcp_task_timeout,
conf,
source,
targetPath);
} }
targetPaths.add(targetPath); targetPaths.add(targetPath);
@ -128,8 +116,7 @@ public class MigrateActionSet {
} }
props.setProperty( props.setProperty(
TARGET_PATHS, TARGET_PATHS, targetPaths.stream().map(p -> p.toString()).collect(Collectors.joining(",")));
targetPaths.stream().map(p -> p.toString()).collect(Collectors.joining(",")));
File file = new File(System.getProperty("oozie.action.output.properties")); File file = new File(System.getProperty("oozie.action.output.properties"));
try (OutputStream os = new FileOutputStream(file)) { try (OutputStream os = new FileOutputStream(file)) {

View File

@ -48,9 +48,7 @@ public class ProtoConverter implements Serializable {
rel.setRelClass(r.getRelClass()); rel.setRelClass(r.getRelClass());
rel.setCollectedfrom( rel.setCollectedfrom(
r.getCollectedfromCount() > 0 r.getCollectedfromCount() > 0
? r.getCollectedfromList().stream() ? r.getCollectedfromList().stream().map(kv -> mapKV(kv)).collect(Collectors.toList())
.map(kv -> mapKV(kv))
.collect(Collectors.toList())
: null); : null);
return rel; return rel;
} }
@ -77,9 +75,7 @@ public class ProtoConverter implements Serializable {
final ResultProtos.Result r = oaf.getEntity().getResult(); final ResultProtos.Result r = oaf.getEntity().getResult();
if (r.getInstanceCount() > 0) { if (r.getInstanceCount() > 0) {
return r.getInstanceList().stream() return r.getInstanceList().stream().map(i -> convertInstance(i)).collect(Collectors.toList());
.map(i -> convertInstance(i))
.collect(Collectors.toList());
} }
return Lists.newArrayList(); return Lists.newArrayList();
} }
@ -130,8 +126,7 @@ public class ProtoConverter implements Serializable {
} }
private static Datasource convertDataSource(OafProtos.Oaf oaf) { private static Datasource convertDataSource(OafProtos.Oaf oaf) {
final DatasourceProtos.Datasource.Metadata m = final DatasourceProtos.Datasource.Metadata m = oaf.getEntity().getDatasource().getMetadata();
oaf.getEntity().getDatasource().getMetadata();
final Datasource datasource = setOaf(new Datasource(), oaf); final Datasource datasource = setOaf(new Datasource(), oaf);
setEntity(datasource, oaf); setEntity(datasource, oaf);
datasource.setAccessinfopackage( datasource.setAccessinfopackage(
@ -171,9 +166,7 @@ public class ProtoConverter implements Serializable {
datasource.setOpenairecompatibility(mapQualifier(m.getOpenairecompatibility())); datasource.setOpenairecompatibility(mapQualifier(m.getOpenairecompatibility()));
datasource.setPidsystems(mapStringField(m.getPidsystems())); datasource.setPidsystems(mapStringField(m.getPidsystems()));
datasource.setPolicies( datasource.setPolicies(
m.getPoliciesList().stream() m.getPoliciesList().stream().map(ProtoConverter::mapKV).collect(Collectors.toList()));
.map(ProtoConverter::mapKV)
.collect(Collectors.toList()));
datasource.setQualitymanagementkind(mapStringField(m.getQualitymanagementkind())); datasource.setQualitymanagementkind(mapStringField(m.getQualitymanagementkind()));
datasource.setReleaseenddate(mapStringField(m.getReleaseenddate())); datasource.setReleaseenddate(mapStringField(m.getReleaseenddate()));
datasource.setServiceprovider(mapBoolField(m.getServiceprovider())); datasource.setServiceprovider(mapBoolField(m.getServiceprovider()));
@ -218,9 +211,7 @@ public class ProtoConverter implements Serializable {
project.setTitle(mapStringField(m.getTitle())); project.setTitle(mapStringField(m.getTitle()));
project.setWebsiteurl(mapStringField(m.getWebsiteurl())); project.setWebsiteurl(mapStringField(m.getWebsiteurl()));
project.setFundingtree( project.setFundingtree(
m.getFundingtreeList().stream() m.getFundingtreeList().stream().map(f -> mapStringField(f)).collect(Collectors.toList()));
.map(f -> mapStringField(f))
.collect(Collectors.toList()));
project.setJsonextrainfo(mapStringField(m.getJsonextrainfo())); project.setJsonextrainfo(mapStringField(m.getJsonextrainfo()));
project.setSummary(mapStringField(m.getSummary())); project.setSummary(mapStringField(m.getSummary()));
project.setOptional1(mapStringField(m.getOptional1())); project.setOptional1(mapStringField(m.getOptional1()));
@ -278,9 +269,7 @@ public class ProtoConverter implements Serializable {
.map(ProtoConverter::mapStringField) .map(ProtoConverter::mapStringField)
.collect(Collectors.toList())); .collect(Collectors.toList()));
otherResearchProducts.setTool( otherResearchProducts.setTool(
m.getToolList().stream() m.getToolList().stream().map(ProtoConverter::mapStringField).collect(Collectors.toList()));
.map(ProtoConverter::mapStringField)
.collect(Collectors.toList()));
return otherResearchProducts; return otherResearchProducts;
} }
@ -326,9 +315,7 @@ public class ProtoConverter implements Serializable {
entity.setId(e.getId()); entity.setId(e.getId());
entity.setOriginalId(e.getOriginalIdList()); entity.setOriginalId(e.getOriginalIdList());
entity.setCollectedfrom( entity.setCollectedfrom(
e.getCollectedfromList().stream() e.getCollectedfromList().stream().map(ProtoConverter::mapKV).collect(Collectors.toList()));
.map(ProtoConverter::mapKV)
.collect(Collectors.toList()));
entity.setPid( entity.setPid(
e.getPidList().stream() e.getPidList().stream()
.map(ProtoConverter::mapStructuredProperty) .map(ProtoConverter::mapStructuredProperty)
@ -346,9 +333,7 @@ public class ProtoConverter implements Serializable {
// setting Entity fields // setting Entity fields
final ResultProtos.Result.Metadata m = oaf.getEntity().getResult().getMetadata(); final ResultProtos.Result.Metadata m = oaf.getEntity().getResult().getMetadata();
entity.setAuthor( entity.setAuthor(
m.getAuthorList().stream() m.getAuthorList().stream().map(ProtoConverter::mapAuthor).collect(Collectors.toList()));
.map(ProtoConverter::mapAuthor)
.collect(Collectors.toList()));
entity.setResulttype(mapQualifier(m.getResulttype())); entity.setResulttype(mapQualifier(m.getResulttype()));
entity.setLanguage(mapQualifier(m.getLanguage())); entity.setLanguage(mapQualifier(m.getLanguage()));
entity.setCountry( entity.setCountry(
@ -396,12 +381,9 @@ public class ProtoConverter implements Serializable {
.map(ProtoConverter::mapStringField) .map(ProtoConverter::mapStringField)
.collect(Collectors.toList())); .collect(Collectors.toList()));
entity.setContext( entity.setContext(
m.getContextList().stream() m.getContextList().stream().map(ProtoConverter::mapContext).collect(Collectors.toList()));
.map(ProtoConverter::mapContext)
.collect(Collectors.toList()));
entity.setBestaccessright( entity.setBestaccessright(getBestAccessRights(oaf.getEntity().getResult().getInstanceList()));
getBestAccessRights(oaf.getEntity().getResult().getInstanceList()));
return entity; return entity;
} }

View File

@ -68,20 +68,17 @@ public class TransformActions implements Serializable {
SparkConf conf = new SparkConf(); SparkConf conf = new SparkConf();
runWithSparkSession( runWithSparkSession(
conf, conf, isSparkSessionManaged, spark -> transformActions(inputPaths, targetBaseDir, spark));
isSparkSessionManaged,
spark -> transformActions(inputPaths, targetBaseDir, spark));
} }
private static void transformActions( private static void transformActions(String inputPaths, String targetBaseDir, SparkSession spark)
String inputPaths, String targetBaseDir, SparkSession spark) throws IOException { throws IOException {
final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext());
final FileSystem fs = FileSystem.get(spark.sparkContext().hadoopConfiguration()); final FileSystem fs = FileSystem.get(spark.sparkContext().hadoopConfiguration());
for (String sourcePath : Lists.newArrayList(Splitter.on(",").split(inputPaths))) { for (String sourcePath : Lists.newArrayList(Splitter.on(",").split(inputPaths))) {
LinkedList<String> pathQ = LinkedList<String> pathQ = Lists.newLinkedList(Splitter.on(SEPARATOR).split(sourcePath));
Lists.newLinkedList(Splitter.on(SEPARATOR).split(sourcePath));
final String rawset = pathQ.pollLast(); final String rawset = pathQ.pollLast();
final String actionSetDirectory = pathQ.pollLast(); final String actionSetDirectory = pathQ.pollLast();
@ -98,17 +95,11 @@ public class TransformActions implements Serializable {
log.info("transforming actions from '{}' to '{}'", sourcePath, targetDirectory); log.info("transforming actions from '{}' to '{}'", sourcePath, targetDirectory);
sc.sequenceFile(sourcePath, Text.class, Text.class) sc.sequenceFile(sourcePath, Text.class, Text.class)
.map( .map(a -> eu.dnetlib.actionmanager.actions.AtomicAction.fromJSON(a._2().toString()))
a ->
eu.dnetlib.actionmanager.actions.AtomicAction.fromJSON(
a._2().toString()))
.map(TransformActions::doTransform) .map(TransformActions::doTransform)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.mapToPair( .mapToPair(
a -> a -> new Tuple2<>(a.getClazz().toString(), OBJECT_MAPPER.writeValueAsString(a)))
new Tuple2<>(
a.getClazz().toString(),
OBJECT_MAPPER.writeValueAsString(a)))
.mapToPair(t -> new Tuple2(new Text(t._1()), new Text(t._2()))) .mapToPair(t -> new Tuple2(new Text(t._1()), new Text(t._2())))
.saveAsNewAPIHadoopFile( .saveAsNewAPIHadoopFile(
targetDirectory.toString(), targetDirectory.toString(),
@ -139,20 +130,14 @@ public class TransformActions implements Serializable {
return new AtomicAction<>(Project.class, (Project) oaf); return new AtomicAction<>(Project.class, (Project) oaf);
case result: case result:
final String resulttypeid = final String resulttypeid =
proto_oaf proto_oaf.getEntity().getResult().getMetadata().getResulttype().getClassid();
.getEntity()
.getResult()
.getMetadata()
.getResulttype()
.getClassid();
switch (resulttypeid) { switch (resulttypeid) {
case "publication": case "publication":
return new AtomicAction<>(Publication.class, (Publication) oaf); return new AtomicAction<>(Publication.class, (Publication) oaf);
case "software": case "software":
return new AtomicAction<>(Software.class, (Software) oaf); return new AtomicAction<>(Software.class, (Software) oaf);
case "other": case "other":
return new AtomicAction<>( return new AtomicAction<>(OtherResearchProduct.class, (OtherResearchProduct) oaf);
OtherResearchProduct.class, (OtherResearchProduct) oaf);
case "dataset": case "dataset":
return new AtomicAction<>(Dataset.class, (Dataset) oaf); return new AtomicAction<>(Dataset.class, (Dataset) oaf);
default: default:

View File

@ -29,16 +29,13 @@ public class PartitionActionSetsByPayloadTypeJob {
private static final StructType KV_SCHEMA = private static final StructType KV_SCHEMA =
StructType$.MODULE$.apply( StructType$.MODULE$.apply(
Arrays.asList( Arrays.asList(
StructField$.MODULE$.apply( StructField$.MODULE$.apply("key", DataTypes.StringType, false, Metadata.empty()),
"key", DataTypes.StringType, false, Metadata.empty()), StructField$.MODULE$.apply("value", DataTypes.StringType, false, Metadata.empty())));
StructField$.MODULE$.apply(
"value", DataTypes.StringType, false, Metadata.empty())));
private static final StructType ATOMIC_ACTION_SCHEMA = private static final StructType ATOMIC_ACTION_SCHEMA =
StructType$.MODULE$.apply( StructType$.MODULE$.apply(
Arrays.asList( Arrays.asList(
StructField$.MODULE$.apply( StructField$.MODULE$.apply("clazz", DataTypes.StringType, false, Metadata.empty()),
"clazz", DataTypes.StringType, false, Metadata.empty()),
StructField$.MODULE$.apply( StructField$.MODULE$.apply(
"payload", DataTypes.StringType, false, Metadata.empty()))); "payload", DataTypes.StringType, false, Metadata.empty())));
@ -101,14 +98,10 @@ public class PartitionActionSetsByPayloadTypeJob {
private static void readAndWriteActionSetsFromPaths( private static void readAndWriteActionSetsFromPaths(
SparkSession spark, List<String> inputActionSetPaths, String outputPath) { SparkSession spark, List<String> inputActionSetPaths, String outputPath) {
inputActionSetPaths.stream() inputActionSetPaths.stream()
.filter( .filter(path -> HdfsSupport.exists(path, spark.sparkContext().hadoopConfiguration()))
path ->
HdfsSupport.exists(
path, spark.sparkContext().hadoopConfiguration()))
.forEach( .forEach(
inputActionSetPath -> { inputActionSetPath -> {
Dataset<Row> actionDS = Dataset<Row> actionDS = readActionSetFromPath(spark, inputActionSetPath);
readActionSetFromPath(spark, inputActionSetPath);
saveActions(actionDS, outputPath); saveActions(actionDS, outputPath);
}); });
} }
@ -122,7 +115,8 @@ public class PartitionActionSetsByPayloadTypeJob {
sc.sequenceFile(path, Text.class, Text.class) sc.sequenceFile(path, Text.class, Text.class)
.map(x -> RowFactory.create(x._1().toString(), x._2().toString())); .map(x -> RowFactory.create(x._1().toString(), x._2().toString()));
return spark.createDataFrame(rdd, KV_SCHEMA) return spark
.createDataFrame(rdd, KV_SCHEMA)
.withColumn("atomic_action", from_json(col("value"), ATOMIC_ACTION_SCHEMA)) .withColumn("atomic_action", from_json(col("value"), ATOMIC_ACTION_SCHEMA))
.select(expr("atomic_action.*")); .select(expr("atomic_action.*"));
} }

View File

@ -128,30 +128,28 @@ public class PromoteActionPayloadForGraphTableJob {
SparkSession spark, String path, Class<G> rowClazz) { SparkSession spark, String path, Class<G> rowClazz) {
logger.info("Reading graph table from path: {}", path); logger.info("Reading graph table from path: {}", path);
return spark.read() return spark
.read()
.textFile(path) .textFile(path)
.map( .map(
(MapFunction<String, G>) value -> OBJECT_MAPPER.readValue(value, rowClazz), (MapFunction<String, G>) value -> OBJECT_MAPPER.readValue(value, rowClazz),
Encoders.bean(rowClazz)); Encoders.bean(rowClazz));
/* /*
return spark * return spark .read() .parquet(path) .as(Encoders.bean(rowClazz));
.read()
.parquet(path)
.as(Encoders.bean(rowClazz));
*/ */
} }
private static <A extends Oaf> Dataset<A> readActionPayload( private static <A extends Oaf> Dataset<A> readActionPayload(
SparkSession spark, String path, Class<A> actionPayloadClazz) { SparkSession spark, String path, Class<A> actionPayloadClazz) {
logger.info("Reading action payload from path: {}", path); logger.info("Reading action payload from path: {}", path);
return spark.read() return spark
.read()
.parquet(path) .parquet(path)
.map( .map(
(MapFunction<Row, A>) (MapFunction<Row, A>)
value -> value ->
OBJECT_MAPPER.readValue( OBJECT_MAPPER.readValue(value.<String>getAs("payload"), actionPayloadClazz),
value.<String>getAs("payload"), actionPayloadClazz),
Encoders.bean(actionPayloadClazz)); Encoders.bean(actionPayloadClazz));
} }
@ -166,14 +164,11 @@ public class PromoteActionPayloadForGraphTableJob {
actionPayloadClazz.getSimpleName(), actionPayloadClazz.getSimpleName(),
rowClazz.getSimpleName()); rowClazz.getSimpleName());
SerializableSupplier<Function<G, String>> rowIdFn = SerializableSupplier<Function<G, String>> rowIdFn = ModelSupport::idFn;
PromoteActionPayloadForGraphTableJob::idFn; SerializableSupplier<Function<A, String>> actionPayloadIdFn = ModelSupport::idFn;
SerializableSupplier<Function<A, String>> actionPayloadIdFn =
PromoteActionPayloadForGraphTableJob::idFn;
SerializableSupplier<BiFunction<G, A, G>> mergeRowWithActionPayloadAndGetFn = SerializableSupplier<BiFunction<G, A, G>> mergeRowWithActionPayloadAndGetFn =
MergeAndGet.functionFor(strategy); MergeAndGet.functionFor(strategy);
SerializableSupplier<BiFunction<G, G, G>> mergeRowsAndGetFn = SerializableSupplier<BiFunction<G, G, G>> mergeRowsAndGetFn = MergeAndGet.functionFor(strategy);
MergeAndGet.functionFor(strategy);
SerializableSupplier<G> zeroFn = zeroFn(rowClazz); SerializableSupplier<G> zeroFn = zeroFn(rowClazz);
SerializableSupplier<Function<G, Boolean>> isNotZeroFn = SerializableSupplier<Function<G, Boolean>> isNotZeroFn =
PromoteActionPayloadForGraphTableJob::isNotZeroFnUsingIdOrSource; PromoteActionPayloadForGraphTableJob::isNotZeroFnUsingIdOrSource;
@ -192,68 +187,6 @@ public class PromoteActionPayloadForGraphTableJob {
joinedAndMerged, rowIdFn, mergeRowsAndGetFn, zeroFn, isNotZeroFn, rowClazz); joinedAndMerged, rowIdFn, mergeRowsAndGetFn, zeroFn, isNotZeroFn, rowClazz);
} }
private static <T extends Oaf> Function<T, String> idFn() {
return x -> {
if (isSubClass(x, Relation.class)) {
return idFnForRelation(x);
}
return idFnForOafEntity(x);
};
}
private static <T extends Oaf> String idFnForRelation(T t) {
Relation r = (Relation) t;
return Optional.ofNullable(r.getSource())
.map(
source ->
Optional.ofNullable(r.getTarget())
.map(
target ->
Optional.ofNullable(r.getRelType())
.map(
relType ->
Optional.ofNullable(
r
.getSubRelType())
.map(
subRelType ->
Optional
.ofNullable(
r
.getRelClass())
.map(
relClass ->
String
.join(
source,
target,
relType,
subRelType,
relClass))
.orElse(
String
.join(
source,
target,
relType,
subRelType)))
.orElse(
String
.join(
source,
target,
relType)))
.orElse(
String.join(
source, target)))
.orElse(source))
.orElse(null);
}
private static <T extends Oaf> String idFnForOafEntity(T t) {
return ((OafEntity) t).getId();
}
private static <T extends Oaf> SerializableSupplier<T> zeroFn(Class<T> clazz) { private static <T extends Oaf> SerializableSupplier<T> zeroFn(Class<T> clazz) {
switch (clazz.getCanonicalName()) { switch (clazz.getCanonicalName()) {
case "eu.dnetlib.dhp.schema.oaf.Dataset": case "eu.dnetlib.dhp.schema.oaf.Dataset":

View File

@ -23,8 +23,8 @@ public class PromoteActionPayloadFunctions {
private PromoteActionPayloadFunctions() {} private PromoteActionPayloadFunctions() {}
/** /**
* Joins dataset representing graph table with dataset representing action payload using * Joins dataset representing graph table with dataset representing action payload using supplied
* supplied functions. * functions.
* *
* @param rowDS Dataset representing graph table * @param rowDS Dataset representing graph table
* @param actionPayloadDS Dataset representing action payload * @param actionPayloadDS Dataset representing action payload
@ -62,30 +62,21 @@ public class PromoteActionPayloadFunctions {
.map( .map(
(MapFunction<Tuple2<Tuple2<String, G>, Tuple2<String, A>>, G>) (MapFunction<Tuple2<Tuple2<String, G>, Tuple2<String, A>>, G>)
value -> { value -> {
Optional<G> rowOpt = Optional<G> rowOpt = Optional.ofNullable(value._1()).map(Tuple2::_2);
Optional.ofNullable(value._1()).map(Tuple2::_2); Optional<A> actionPayloadOpt = Optional.ofNullable(value._2()).map(Tuple2::_2);
Optional<A> actionPayloadOpt = return rowOpt
Optional.ofNullable(value._2()).map(Tuple2::_2); .map(
return rowOpt.map(
row -> row ->
actionPayloadOpt actionPayloadOpt
.map( .map(
actionPayload -> actionPayload ->
mergeAndGetFn mergeAndGetFn.get().apply(row, actionPayload))
.get()
.apply(
row,
actionPayload))
.orElse(row)) .orElse(row))
.orElseGet( .orElseGet(
() -> () ->
actionPayloadOpt actionPayloadOpt
.filter( .filter(
actionPayload -> actionPayload -> actionPayload.getClass().equals(rowClazz))
actionPayload
.getClass()
.equals(
rowClazz))
.map(rowClazz::cast) .map(rowClazz::cast)
.orElse(null)); .orElse(null));
}, },
@ -96,8 +87,7 @@ public class PromoteActionPayloadFunctions {
private static <T extends Oaf> Dataset<Tuple2<String, T>> mapToTupleWithId( private static <T extends Oaf> Dataset<Tuple2<String, T>> mapToTupleWithId(
Dataset<T> ds, SerializableSupplier<Function<T, String>> idFn, Class<T> clazz) { Dataset<T> ds, SerializableSupplier<Function<T, String>> idFn, Class<T> clazz) {
return ds.map( return ds.map(
(MapFunction<T, Tuple2<String, T>>) (MapFunction<T, Tuple2<String, T>>) value -> new Tuple2<>(idFn.get().apply(value), value),
value -> new Tuple2<>(idFn.get().apply(value), value),
Encoders.tuple(Encoders.STRING(), Encoders.kryo(clazz))); Encoders.tuple(Encoders.STRING(), Encoders.kryo(clazz)));
} }
@ -122,8 +112,8 @@ public class PromoteActionPayloadFunctions {
Class<G> rowClazz) { Class<G> rowClazz) {
TypedColumn<G, G> aggregator = TypedColumn<G, G> aggregator =
new TableAggregator<>(zeroFn, mergeAndGetFn, isNotZeroFn, rowClazz).toColumn(); new TableAggregator<>(zeroFn, mergeAndGetFn, isNotZeroFn, rowClazz).toColumn();
return rowDS.groupByKey( return rowDS
(MapFunction<G, String>) x -> rowIdFn.get().apply(x), Encoders.STRING()) .groupByKey((MapFunction<G, String>) x -> rowIdFn.get().apply(x), Encoders.STRING())
.agg(aggregator) .agg(aggregator)
.map((MapFunction<Tuple2<String, G>, G>) Tuple2::_2, Encoders.kryo(rowClazz)); .map((MapFunction<Tuple2<String, G>, G>) Tuple2::_2, Encoders.kryo(rowClazz));
} }
@ -174,8 +164,7 @@ public class PromoteActionPayloadFunctions {
} else if (!isNotZero.apply(left) && isNotZero.apply(right)) { } else if (!isNotZero.apply(left) && isNotZero.apply(right)) {
return right; return right;
} }
throw new RuntimeException( throw new RuntimeException("internal aggregation error: left and right objects are zero");
"internal aggregation error: left and right objects are zero");
} }
@Override @Override

View File

@ -48,8 +48,7 @@ public class PartitionActionSetsByPayloadTypeJobTest {
private static final StructType ATOMIC_ACTION_SCHEMA = private static final StructType ATOMIC_ACTION_SCHEMA =
StructType$.MODULE$.apply( StructType$.MODULE$.apply(
Arrays.asList( Arrays.asList(
StructField$.MODULE$.apply( StructField$.MODULE$.apply("clazz", DataTypes.StringType, false, Metadata.empty()),
"clazz", DataTypes.StringType, false, Metadata.empty()),
StructField$.MODULE$.apply( StructField$.MODULE$.apply(
"payload", DataTypes.StringType, false, Metadata.empty()))); "payload", DataTypes.StringType, false, Metadata.empty())));
@ -75,8 +74,7 @@ public class PartitionActionSetsByPayloadTypeJobTest {
@Mock private ISClient isClient; @Mock private ISClient isClient;
@Test @Test
public void shouldPartitionActionSetsByPayloadType(@TempDir Path workingDir) public void shouldPartitionActionSetsByPayloadType(@TempDir Path workingDir) throws Exception {
throws Exception {
// given // given
Path inputActionSetsBaseDir = workingDir.resolve("input").resolve("action_sets"); Path inputActionSetsBaseDir = workingDir.resolve("input").resolve("action_sets");
Path outputDir = workingDir.resolve("output"); Path outputDir = workingDir.resolve("output");
@ -93,7 +91,9 @@ public class PartitionActionSetsByPayloadTypeJobTest {
job.setIsClient(isClient); job.setIsClient(isClient);
job.run( job.run(
Boolean.FALSE, Boolean.FALSE,
"", // it can be empty we're mocking the response from isClient to resolve the "", // it can be empty we're mocking the response from isClient
// to
// resolve the
// paths // paths
outputDir.toString()); outputDir.toString());
@ -112,8 +112,7 @@ public class PartitionActionSetsByPayloadTypeJobTest {
} }
} }
private List<String> resolveInputActionSetPaths(Path inputActionSetsBaseDir) private List<String> resolveInputActionSetPaths(Path inputActionSetsBaseDir) throws IOException {
throws IOException {
Path inputActionSetJsonDumpsDir = getInputActionSetJsonDumpsDir(); Path inputActionSetJsonDumpsDir = getInputActionSetJsonDumpsDir();
return Files.list(inputActionSetJsonDumpsDir) return Files.list(inputActionSetJsonDumpsDir)
.map( .map(
@ -132,36 +131,27 @@ public class PartitionActionSetsByPayloadTypeJobTest {
Files.list(inputActionSetJsonDumpsDir) Files.list(inputActionSetJsonDumpsDir)
.forEach( .forEach(
inputActionSetJsonDumpFile -> { inputActionSetJsonDumpFile -> {
String inputActionSetId = String inputActionSetId = inputActionSetJsonDumpFile.getFileName().toString();
inputActionSetJsonDumpFile.getFileName().toString();
Path inputActionSetDir = inputActionSetsDir.resolve(inputActionSetId); Path inputActionSetDir = inputActionSetsDir.resolve(inputActionSetId);
Dataset<String> actionDS = Dataset<String> actionDS =
readActionsFromJsonDump(inputActionSetJsonDumpFile.toString()) readActionsFromJsonDump(inputActionSetJsonDumpFile.toString()).cache();
.cache();
writeActionsAsJobInput( writeActionsAsJobInput(actionDS, inputActionSetId, inputActionSetDir.toString());
actionDS, inputActionSetId, inputActionSetDir.toString());
Map<String, List<String>> actionSetOafsByType = Map<String, List<String>> actionSetOafsByType =
actionDS actionDS
.withColumn( .withColumn("atomic_action", from_json(col("value"), ATOMIC_ACTION_SCHEMA))
"atomic_action",
from_json(col("value"), ATOMIC_ACTION_SCHEMA))
.select(expr("atomic_action.*")).groupBy(col("clazz")) .select(expr("atomic_action.*")).groupBy(col("clazz"))
.agg(collect_list(col("payload")).as("payload_list")) .agg(collect_list(col("payload")).as("payload_list")).collectAsList().stream()
.collectAsList().stream()
.map( .map(
row -> row ->
new AbstractMap.SimpleEntry<>( new AbstractMap.SimpleEntry<>(
row.<String>getAs("clazz"), row.<String>getAs("clazz"),
mutableSeqAsJavaList( mutableSeqAsJavaList(row.<Seq<String>>getAs("payload_list"))))
row.<Seq<String>>getAs(
"payload_list"))))
.collect( .collect(
Collectors.toMap( Collectors.toMap(
AbstractMap.SimpleEntry::getKey, AbstractMap.SimpleEntry::getKey, AbstractMap.SimpleEntry::getValue));
AbstractMap.SimpleEntry::getValue));
actionSetOafsByType actionSetOafsByType
.keySet() .keySet()
@ -183,8 +173,7 @@ public class PartitionActionSetsByPayloadTypeJobTest {
private static Path getInputActionSetJsonDumpsDir() { private static Path getInputActionSetJsonDumpsDir() {
return Paths.get( return Paths.get(
Objects.requireNonNull( Objects.requireNonNull(cl.getResource("eu/dnetlib/dhp/actionmanager/partition/input/"))
cl.getResource("eu/dnetlib/dhp/actionmanager/partition/input/"))
.getFile()); .getFile());
} }
@ -194,20 +183,16 @@ public class PartitionActionSetsByPayloadTypeJobTest {
private static void writeActionsAsJobInput( private static void writeActionsAsJobInput(
Dataset<String> actionDS, String inputActionSetId, String path) { Dataset<String> actionDS, String inputActionSetId, String path) {
actionDS.javaRDD() actionDS
.javaRDD()
.mapToPair(json -> new Tuple2<>(new Text(inputActionSetId), new Text(json))) .mapToPair(json -> new Tuple2<>(new Text(inputActionSetId), new Text(json)))
.saveAsNewAPIHadoopFile( .saveAsNewAPIHadoopFile(
path, path, Text.class, Text.class, SequenceFileOutputFormat.class, configuration);
Text.class,
Text.class,
SequenceFileOutputFormat.class,
configuration);
} }
private static <T extends Oaf> void assertForOafType( private static <T extends Oaf> void assertForOafType(
Path outputDir, Map<String, List<String>> oafsByClassName, Class<T> clazz) { Path outputDir, Map<String, List<String>> oafsByClassName, Class<T> clazz) {
Path outputDatasetDir = Path outputDatasetDir = outputDir.resolve(String.format("clazz=%s", clazz.getCanonicalName()));
outputDir.resolve(String.format("clazz=%s", clazz.getCanonicalName()));
Files.exists(outputDatasetDir); Files.exists(outputDatasetDir);
List<T> actuals = List<T> actuals =
@ -225,13 +210,12 @@ public class PartitionActionSetsByPayloadTypeJobTest {
private static <T extends Oaf> Dataset<T> readActionPayloadFromJobOutput( private static <T extends Oaf> Dataset<T> readActionPayloadFromJobOutput(
String path, Class<T> clazz) { String path, Class<T> clazz) {
return spark.read() return spark
.read()
.parquet(path) .parquet(path)
.map( .map(
(MapFunction<Row, T>) (MapFunction<Row, T>)
value -> value -> OBJECT_MAPPER.readValue(value.<String>getAs("payload"), clazz),
OBJECT_MAPPER.readValue(
value.<String>getAs("payload"), clazz),
Encoders.bean(clazz)); Encoders.bean(clazz));
} }
@ -239,7 +223,6 @@ public class PartitionActionSetsByPayloadTypeJobTest {
return rethrowAsRuntimeException( return rethrowAsRuntimeException(
() -> OBJECT_MAPPER.readValue(json, clazz), () -> OBJECT_MAPPER.readValue(json, clazz),
String.format( String.format(
"failed to map json to class: json=%s, class=%s", "failed to map json to class: json=%s, class=%s", json, clazz.getCanonicalName()));
json, clazz.getCanonicalName()));
} }
} }

View File

@ -23,8 +23,7 @@ public class MergeAndGetTest {
Oaf b = mock(Oaf.class); Oaf b = mock(Oaf.class);
// when // when
SerializableSupplier<BiFunction<Oaf, Oaf, Oaf>> fn = SerializableSupplier<BiFunction<Oaf, Oaf, Oaf>> fn = functionFor(Strategy.MERGE_FROM_AND_GET);
functionFor(Strategy.MERGE_FROM_AND_GET);
// then // then
assertThrows(RuntimeException.class, () -> fn.get().apply(a, b)); assertThrows(RuntimeException.class, () -> fn.get().apply(a, b));
@ -37,8 +36,7 @@ public class MergeAndGetTest {
Relation b = mock(Relation.class); Relation b = mock(Relation.class);
// when // when
SerializableSupplier<BiFunction<Oaf, Oaf, Oaf>> fn = SerializableSupplier<BiFunction<Oaf, Oaf, Oaf>> fn = functionFor(Strategy.MERGE_FROM_AND_GET);
functionFor(Strategy.MERGE_FROM_AND_GET);
// then // then
assertThrows(RuntimeException.class, () -> fn.get().apply(a, b)); assertThrows(RuntimeException.class, () -> fn.get().apply(a, b));
@ -51,8 +49,7 @@ public class MergeAndGetTest {
OafEntity b = mock(OafEntity.class); OafEntity b = mock(OafEntity.class);
// when // when
SerializableSupplier<BiFunction<Oaf, Oaf, Oaf>> fn = SerializableSupplier<BiFunction<Oaf, Oaf, Oaf>> fn = functionFor(Strategy.MERGE_FROM_AND_GET);
functionFor(Strategy.MERGE_FROM_AND_GET);
// then // then
assertThrows(RuntimeException.class, () -> fn.get().apply(a, b)); assertThrows(RuntimeException.class, () -> fn.get().apply(a, b));
@ -65,8 +62,7 @@ public class MergeAndGetTest {
Oaf b = mock(Oaf.class); Oaf b = mock(Oaf.class);
// when // when
SerializableSupplier<BiFunction<Oaf, Oaf, Oaf>> fn = SerializableSupplier<BiFunction<Oaf, Oaf, Oaf>> fn = functionFor(Strategy.MERGE_FROM_AND_GET);
functionFor(Strategy.MERGE_FROM_AND_GET);
// then // then
assertThrows(RuntimeException.class, () -> fn.get().apply(a, b)); assertThrows(RuntimeException.class, () -> fn.get().apply(a, b));
@ -79,8 +75,7 @@ public class MergeAndGetTest {
OafEntity b = mock(OafEntity.class); OafEntity b = mock(OafEntity.class);
// when // when
SerializableSupplier<BiFunction<Oaf, Oaf, Oaf>> fn = SerializableSupplier<BiFunction<Oaf, Oaf, Oaf>> fn = functionFor(Strategy.MERGE_FROM_AND_GET);
functionFor(Strategy.MERGE_FROM_AND_GET);
// then // then
assertThrows(RuntimeException.class, () -> fn.get().apply(a, b)); assertThrows(RuntimeException.class, () -> fn.get().apply(a, b));
@ -93,8 +88,7 @@ public class MergeAndGetTest {
Relation b = mock(Relation.class); Relation b = mock(Relation.class);
// when // when
SerializableSupplier<BiFunction<Oaf, Oaf, Oaf>> fn = SerializableSupplier<BiFunction<Oaf, Oaf, Oaf>> fn = functionFor(Strategy.MERGE_FROM_AND_GET);
functionFor(Strategy.MERGE_FROM_AND_GET);
// then // then
Oaf x = fn.get().apply(a, b); Oaf x = fn.get().apply(a, b);
@ -110,8 +104,7 @@ public class MergeAndGetTest {
Oaf b = mock(Oaf.class); Oaf b = mock(Oaf.class);
// when // when
SerializableSupplier<BiFunction<Oaf, Oaf, Oaf>> fn = SerializableSupplier<BiFunction<Oaf, Oaf, Oaf>> fn = functionFor(Strategy.MERGE_FROM_AND_GET);
functionFor(Strategy.MERGE_FROM_AND_GET);
// then // then
assertThrows(RuntimeException.class, () -> fn.get().apply(a, b)); assertThrows(RuntimeException.class, () -> fn.get().apply(a, b));
@ -124,8 +117,7 @@ public class MergeAndGetTest {
Relation b = mock(Relation.class); Relation b = mock(Relation.class);
// when // when
SerializableSupplier<BiFunction<Oaf, Oaf, Oaf>> fn = SerializableSupplier<BiFunction<Oaf, Oaf, Oaf>> fn = functionFor(Strategy.MERGE_FROM_AND_GET);
functionFor(Strategy.MERGE_FROM_AND_GET);
// then // then
assertThrows(RuntimeException.class, () -> fn.get().apply(a, b)); assertThrows(RuntimeException.class, () -> fn.get().apply(a, b));
@ -141,8 +133,7 @@ public class MergeAndGetTest {
OafEntitySub2 b = mock(OafEntitySub2.class); OafEntitySub2 b = mock(OafEntitySub2.class);
// when // when
SerializableSupplier<BiFunction<Oaf, Oaf, Oaf>> fn = SerializableSupplier<BiFunction<Oaf, Oaf, Oaf>> fn = functionFor(Strategy.MERGE_FROM_AND_GET);
functionFor(Strategy.MERGE_FROM_AND_GET);
// then // then
assertThrows(RuntimeException.class, () -> fn.get().apply(a, b)); assertThrows(RuntimeException.class, () -> fn.get().apply(a, b));
@ -155,8 +146,7 @@ public class MergeAndGetTest {
OafEntity b = mock(OafEntity.class); OafEntity b = mock(OafEntity.class);
// when // when
SerializableSupplier<BiFunction<Oaf, Oaf, Oaf>> fn = SerializableSupplier<BiFunction<Oaf, Oaf, Oaf>> fn = functionFor(Strategy.MERGE_FROM_AND_GET);
functionFor(Strategy.MERGE_FROM_AND_GET);
// then // then
Oaf x = fn.get().apply(a, b); Oaf x = fn.get().apply(a, b);

View File

@ -53,8 +53,7 @@ public class PromoteActionPayloadForGraphTableJobTest {
@BeforeEach @BeforeEach
public void beforeEach() throws IOException { public void beforeEach() throws IOException {
workingDir = workingDir =
Files.createTempDirectory( Files.createTempDirectory(PromoteActionPayloadForGraphTableJobTest.class.getSimpleName());
PromoteActionPayloadForGraphTableJobTest.class.getSimpleName());
inputDir = workingDir.resolve("input"); inputDir = workingDir.resolve("input");
inputGraphRootDir = inputDir.resolve("graph"); inputGraphRootDir = inputDir.resolve("graph");
inputActionPayloadRootDir = inputDir.resolve("action_payload"); inputActionPayloadRootDir = inputDir.resolve("action_payload");
@ -88,16 +87,20 @@ public class PromoteActionPayloadForGraphTableJobTest {
() -> () ->
PromoteActionPayloadForGraphTableJob.main( PromoteActionPayloadForGraphTableJob.main(
new String[] { new String[] {
"-isSparkSessionManaged", Boolean.FALSE.toString(), "-isSparkSessionManaged",
"-inputGraphTablePath", "", Boolean.FALSE.toString(),
"-graphTableClassName", rowClazz.getCanonicalName(), "-inputGraphTablePath",
"-inputActionPayloadPath", "", "",
"-graphTableClassName",
rowClazz.getCanonicalName(),
"-inputActionPayloadPath",
"",
"-actionPayloadClassName", "-actionPayloadClassName",
actionPayloadClazz.getCanonicalName(), actionPayloadClazz.getCanonicalName(),
"-outputGraphTablePath", "", "-outputGraphTablePath",
"",
"-mergeAndGetStrategy", "-mergeAndGetStrategy",
MergeAndGet.Strategy.SELECT_NEWER_AND_GET MergeAndGet.Strategy.SELECT_NEWER_AND_GET.name()
.name()
})); }));
// then // then
@ -126,33 +129,38 @@ public class PromoteActionPayloadForGraphTableJobTest {
// when // when
PromoteActionPayloadForGraphTableJob.main( PromoteActionPayloadForGraphTableJob.main(
new String[] { new String[] {
"-isSparkSessionManaged", Boolean.FALSE.toString(), "-isSparkSessionManaged",
"-inputGraphTablePath", inputGraphTableDir.toString(), Boolean.FALSE.toString(),
"-graphTableClassName", rowClazz.getCanonicalName(), "-inputGraphTablePath",
"-inputActionPayloadPath", inputActionPayloadDir.toString(), inputGraphTableDir.toString(),
"-actionPayloadClassName", actionPayloadClazz.getCanonicalName(), "-graphTableClassName",
"-outputGraphTablePath", outputGraphTableDir.toString(), rowClazz.getCanonicalName(),
"-mergeAndGetStrategy", strategy.name() "-inputActionPayloadPath",
inputActionPayloadDir.toString(),
"-actionPayloadClassName",
actionPayloadClazz.getCanonicalName(),
"-outputGraphTablePath",
outputGraphTableDir.toString(),
"-mergeAndGetStrategy",
strategy.name()
}); });
// then // then
assertTrue(Files.exists(outputGraphTableDir)); assertTrue(Files.exists(outputGraphTableDir));
List<? extends Oaf> actualOutputRows = List<? extends Oaf> actualOutputRows =
readGraphTableFromJobOutput(outputGraphTableDir.toString(), rowClazz) readGraphTableFromJobOutput(outputGraphTableDir.toString(), rowClazz).collectAsList()
.collectAsList().stream() .stream()
.sorted(Comparator.comparingInt(Object::hashCode)) .sorted(Comparator.comparingInt(Object::hashCode))
.collect(Collectors.toList()); .collect(Collectors.toList());
String expectedOutputGraphTableJsonDumpPath = String expectedOutputGraphTableJsonDumpPath =
resultFileLocation(strategy, rowClazz, actionPayloadClazz); resultFileLocation(strategy, rowClazz, actionPayloadClazz);
Path expectedOutputGraphTableJsonDumpFile = Path expectedOutputGraphTableJsonDumpFile =
Paths.get( Paths.get(
Objects.requireNonNull( Objects.requireNonNull(cl.getResource(expectedOutputGraphTableJsonDumpPath))
cl.getResource(expectedOutputGraphTableJsonDumpPath))
.getFile()); .getFile());
List<? extends Oaf> expectedOutputRows = List<? extends Oaf> expectedOutputRows =
readGraphTableFromJsonDump( readGraphTableFromJsonDump(expectedOutputGraphTableJsonDumpFile.toString(), rowClazz)
expectedOutputGraphTableJsonDumpFile.toString(), rowClazz)
.collectAsList().stream() .collectAsList().stream()
.sorted(Comparator.comparingInt(Object::hashCode)) .sorted(Comparator.comparingInt(Object::hashCode))
.collect(Collectors.toList()); .collect(Collectors.toList());
@ -170,42 +178,27 @@ public class PromoteActionPayloadForGraphTableJobTest {
MergeAndGet.Strategy.MERGE_FROM_AND_GET, MergeAndGet.Strategy.MERGE_FROM_AND_GET,
eu.dnetlib.dhp.schema.oaf.Dataset.class, eu.dnetlib.dhp.schema.oaf.Dataset.class,
eu.dnetlib.dhp.schema.oaf.Result.class), eu.dnetlib.dhp.schema.oaf.Result.class),
arguments( arguments(MergeAndGet.Strategy.MERGE_FROM_AND_GET, Datasource.class, Datasource.class),
MergeAndGet.Strategy.MERGE_FROM_AND_GET, arguments(MergeAndGet.Strategy.MERGE_FROM_AND_GET, Organization.class, Organization.class),
Datasource.class,
Datasource.class),
arguments(
MergeAndGet.Strategy.MERGE_FROM_AND_GET,
Organization.class,
Organization.class),
arguments( arguments(
MergeAndGet.Strategy.MERGE_FROM_AND_GET, MergeAndGet.Strategy.MERGE_FROM_AND_GET,
OtherResearchProduct.class, OtherResearchProduct.class,
OtherResearchProduct.class), OtherResearchProduct.class),
arguments( arguments(
MergeAndGet.Strategy.MERGE_FROM_AND_GET, MergeAndGet.Strategy.MERGE_FROM_AND_GET, OtherResearchProduct.class, Result.class),
OtherResearchProduct.class,
Result.class),
arguments(MergeAndGet.Strategy.MERGE_FROM_AND_GET, Project.class, Project.class), arguments(MergeAndGet.Strategy.MERGE_FROM_AND_GET, Project.class, Project.class),
arguments( arguments(MergeAndGet.Strategy.MERGE_FROM_AND_GET, Publication.class, Publication.class),
MergeAndGet.Strategy.MERGE_FROM_AND_GET,
Publication.class,
Publication.class),
arguments(MergeAndGet.Strategy.MERGE_FROM_AND_GET, Publication.class, Result.class), arguments(MergeAndGet.Strategy.MERGE_FROM_AND_GET, Publication.class, Result.class),
arguments(MergeAndGet.Strategy.MERGE_FROM_AND_GET, Relation.class, Relation.class), arguments(MergeAndGet.Strategy.MERGE_FROM_AND_GET, Relation.class, Relation.class),
arguments(MergeAndGet.Strategy.MERGE_FROM_AND_GET, Software.class, Software.class), arguments(MergeAndGet.Strategy.MERGE_FROM_AND_GET, Software.class, Software.class),
arguments(MergeAndGet.Strategy.MERGE_FROM_AND_GET, Software.class, Result.class)); arguments(MergeAndGet.Strategy.MERGE_FROM_AND_GET, Software.class, Result.class));
} }
private static <G extends Oaf> Path createGraphTable( private static <G extends Oaf> Path createGraphTable(Path inputGraphRootDir, Class<G> rowClazz) {
Path inputGraphRootDir, Class<G> rowClazz) {
String inputGraphTableJsonDumpPath = inputGraphTableJsonDumpLocation(rowClazz); String inputGraphTableJsonDumpPath = inputGraphTableJsonDumpLocation(rowClazz);
Path inputGraphTableJsonDumpFile = Path inputGraphTableJsonDumpFile =
Paths.get( Paths.get(Objects.requireNonNull(cl.getResource(inputGraphTableJsonDumpPath)).getFile());
Objects.requireNonNull(cl.getResource(inputGraphTableJsonDumpPath)) Dataset<G> rowDS = readGraphTableFromJsonDump(inputGraphTableJsonDumpFile.toString(), rowClazz);
.getFile());
Dataset<G> rowDS =
readGraphTableFromJsonDump(inputGraphTableJsonDumpFile.toString(), rowClazz);
String inputGraphTableName = rowClazz.getSimpleName().toLowerCase(); String inputGraphTableName = rowClazz.getSimpleName().toLowerCase();
Path inputGraphTableDir = inputGraphRootDir.resolve(inputGraphTableName); Path inputGraphTableDir = inputGraphRootDir.resolve(inputGraphTableName);
writeGraphTableAaJobInput(rowDS, inputGraphTableDir.toString()); writeGraphTableAaJobInput(rowDS, inputGraphTableDir.toString());
@ -215,13 +208,13 @@ public class PromoteActionPayloadForGraphTableJobTest {
private static String inputGraphTableJsonDumpLocation(Class<? extends Oaf> rowClazz) { private static String inputGraphTableJsonDumpLocation(Class<? extends Oaf> rowClazz) {
return String.format( return String.format(
"%s/%s.json", "%s/%s.json",
"eu/dnetlib/dhp/actionmanager/promote/input/graph", "eu/dnetlib/dhp/actionmanager/promote/input/graph", rowClazz.getSimpleName().toLowerCase());
rowClazz.getSimpleName().toLowerCase());
} }
private static <G extends Oaf> Dataset<G> readGraphTableFromJsonDump( private static <G extends Oaf> Dataset<G> readGraphTableFromJsonDump(
String path, Class<G> rowClazz) { String path, Class<G> rowClazz) {
return spark.read() return spark
.read()
.textFile(path) .textFile(path)
.map( .map(
(MapFunction<String, G>) json -> OBJECT_MAPPER.readValue(json, rowClazz), (MapFunction<String, G>) json -> OBJECT_MAPPER.readValue(json, rowClazz),
@ -237,9 +230,7 @@ public class PromoteActionPayloadForGraphTableJobTest {
String inputActionPayloadJsonDumpPath = String inputActionPayloadJsonDumpPath =
inputActionPayloadJsonDumpLocation(rowClazz, actionPayloadClazz); inputActionPayloadJsonDumpLocation(rowClazz, actionPayloadClazz);
Path inputActionPayloadJsonDumpFile = Path inputActionPayloadJsonDumpFile =
Paths.get( Paths.get(Objects.requireNonNull(cl.getResource(inputActionPayloadJsonDumpPath)).getFile());
Objects.requireNonNull(cl.getResource(inputActionPayloadJsonDumpPath))
.getFile());
Dataset<String> actionPayloadDS = Dataset<String> actionPayloadDS =
readActionPayloadFromJsonDump(inputActionPayloadJsonDumpFile.toString()); readActionPayloadFromJsonDump(inputActionPayloadJsonDumpFile.toString());
Path inputActionPayloadDir = Path inputActionPayloadDir =
@ -253,8 +244,7 @@ public class PromoteActionPayloadForGraphTableJobTest {
return String.format( return String.format(
"eu/dnetlib/dhp/actionmanager/promote/input/action_payload/%s_table/%s.json", "eu/dnetlib/dhp/actionmanager/promote/input/action_payload/%s_table/%s.json",
rowClazz.getSimpleName().toLowerCase(), rowClazz.getSimpleName().toLowerCase(), actionPayloadClazz.getSimpleName().toLowerCase());
actionPayloadClazz.getSimpleName().toLowerCase());
} }
private static Dataset<String> readActionPayloadFromJsonDump(String path) { private static Dataset<String> readActionPayloadFromJsonDump(String path) {
@ -267,7 +257,8 @@ public class PromoteActionPayloadForGraphTableJobTest {
private static <G extends Oaf> Dataset<G> readGraphTableFromJobOutput( private static <G extends Oaf> Dataset<G> readGraphTableFromJobOutput(
String path, Class<G> rowClazz) { String path, Class<G> rowClazz) {
return spark.read() return spark
.read()
.textFile(path) .textFile(path)
.map( .map(
(MapFunction<String, G>) json -> OBJECT_MAPPER.readValue(json, rowClazz), (MapFunction<String, G>) json -> OBJECT_MAPPER.readValue(json, rowClazz),

View File

@ -50,13 +50,7 @@ public class PromoteActionPayloadFunctionsTest {
RuntimeException.class, RuntimeException.class,
() -> () ->
PromoteActionPayloadFunctions.joinGraphTableWithActionPayloadAndMerge( PromoteActionPayloadFunctions.joinGraphTableWithActionPayloadAndMerge(
null, null, null, null, null, null, OafImplSubSub.class, OafImpl.class));
null,
null,
null,
null,
OafImplSubSub.class,
OafImpl.class));
} }
@Test @Test
@ -91,12 +85,10 @@ public class PromoteActionPayloadFunctionsTest {
Dataset<OafImplSubSub> actionPayloadDS = Dataset<OafImplSubSub> actionPayloadDS =
spark.createDataset(actionPayloadData, Encoders.bean(OafImplSubSub.class)); spark.createDataset(actionPayloadData, Encoders.bean(OafImplSubSub.class));
SerializableSupplier<Function<OafImplSubSub, String>> rowIdFn = SerializableSupplier<Function<OafImplSubSub, String>> rowIdFn = () -> OafImplRoot::getId;
() -> OafImplRoot::getId;
SerializableSupplier<Function<OafImplSubSub, String>> actionPayloadIdFn = SerializableSupplier<Function<OafImplSubSub, String>> actionPayloadIdFn =
() -> OafImplRoot::getId; () -> OafImplRoot::getId;
SerializableSupplier<BiFunction<OafImplSubSub, OafImplSubSub, OafImplSubSub>> SerializableSupplier<BiFunction<OafImplSubSub, OafImplSubSub, OafImplSubSub>> mergeAndGetFn =
mergeAndGetFn =
() -> () ->
(x, y) -> { (x, y) -> {
x.merge(y); x.merge(y);
@ -175,12 +167,10 @@ public class PromoteActionPayloadFunctionsTest {
Dataset<OafImplSub> actionPayloadDS = Dataset<OafImplSub> actionPayloadDS =
spark.createDataset(actionPayloadData, Encoders.bean(OafImplSub.class)); spark.createDataset(actionPayloadData, Encoders.bean(OafImplSub.class));
SerializableSupplier<Function<OafImplSubSub, String>> rowIdFn = SerializableSupplier<Function<OafImplSubSub, String>> rowIdFn = () -> OafImplRoot::getId;
() -> OafImplRoot::getId;
SerializableSupplier<Function<OafImplSub, String>> actionPayloadIdFn = SerializableSupplier<Function<OafImplSub, String>> actionPayloadIdFn =
() -> OafImplRoot::getId; () -> OafImplRoot::getId;
SerializableSupplier<BiFunction<OafImplSubSub, OafImplSub, OafImplSubSub>> SerializableSupplier<BiFunction<OafImplSubSub, OafImplSub, OafImplSubSub>> mergeAndGetFn =
mergeAndGetFn =
() -> () ->
(x, y) -> { (x, y) -> {
x.merge(y); x.merge(y);
@ -245,10 +235,8 @@ public class PromoteActionPayloadFunctionsTest {
Dataset<OafImplSubSub> rowDS = Dataset<OafImplSubSub> rowDS =
spark.createDataset(rowData, Encoders.bean(OafImplSubSub.class)); spark.createDataset(rowData, Encoders.bean(OafImplSubSub.class));
SerializableSupplier<Function<OafImplSubSub, String>> rowIdFn = SerializableSupplier<Function<OafImplSubSub, String>> rowIdFn = () -> OafImplRoot::getId;
() -> OafImplRoot::getId; SerializableSupplier<BiFunction<OafImplSubSub, OafImplSubSub, OafImplSubSub>> mergeAndGetFn =
SerializableSupplier<BiFunction<OafImplSubSub, OafImplSubSub, OafImplSubSub>>
mergeAndGetFn =
() -> () ->
(x, y) -> { (x, y) -> {
x.merge(y); x.merge(y);
@ -261,12 +249,7 @@ public class PromoteActionPayloadFunctionsTest {
// when // when
List<OafImplSubSub> results = List<OafImplSubSub> results =
PromoteActionPayloadFunctions.groupGraphTableByIdAndMerge( PromoteActionPayloadFunctions.groupGraphTableByIdAndMerge(
rowDS, rowDS, rowIdFn, mergeAndGetFn, zeroFn, isNotZeroFn, OafImplSubSub.class)
rowIdFn,
mergeAndGetFn,
zeroFn,
isNotZeroFn,
OafImplSubSub.class)
.collectAsList(); .collectAsList();
// then // then

View File

@ -51,8 +51,7 @@ public class GenerateNativeStoreSparkJob {
if (invalidRecords != null) invalidRecords.add(1); if (invalidRecords != null) invalidRecords.add(1);
return null; return null;
} }
return new MetadataRecord( return new MetadataRecord(originalIdentifier, encoding, provenance, input, dateOfCollection);
originalIdentifier, encoding, provenance, input, dateOfCollection);
} catch (Throwable e) { } catch (Throwable e) {
if (invalidRecords != null) invalidRecords.add(1); if (invalidRecords != null) invalidRecords.add(1);
e.printStackTrace(); e.printStackTrace();
@ -69,8 +68,7 @@ public class GenerateNativeStoreSparkJob {
"/eu/dnetlib/dhp/collection/collection_input_parameters.json"))); "/eu/dnetlib/dhp/collection/collection_input_parameters.json")));
parser.parseArgument(args); parser.parseArgument(args);
final ObjectMapper jsonMapper = new ObjectMapper(); final ObjectMapper jsonMapper = new ObjectMapper();
final Provenance provenance = final Provenance provenance = jsonMapper.readValue(parser.get("provenance"), Provenance.class);
jsonMapper.readValue(parser.get("provenance"), Provenance.class);
final long dateOfCollection = new Long(parser.get("dateOfCollection")); final long dateOfCollection = new Long(parser.get("dateOfCollection"));
final SparkSession spark = final SparkSession spark =
@ -104,7 +102,8 @@ public class GenerateNativeStoreSparkJob {
null); null);
final JavaRDD<MetadataRecord> mappeRDD = final JavaRDD<MetadataRecord> mappeRDD =
inputRDD.map( inputRDD
.map(
item -> item ->
parseRecord( parseRecord(
item._2().toString(), item._2().toString(),
@ -121,10 +120,7 @@ public class GenerateNativeStoreSparkJob {
if (!test) { if (!test) {
manager.sendMessage( manager.sendMessage(
new Message( new Message(
parser.get("workflowId"), parser.get("workflowId"), "DataFrameCreation", MessageType.ONGOING, ongoingMap),
"DataFrameCreation",
MessageType.ONGOING,
ongoingMap),
parser.get("rabbitOngoingQueue"), parser.get("rabbitOngoingQueue"),
true, true,
false); false);
@ -138,10 +134,7 @@ public class GenerateNativeStoreSparkJob {
if (!test) { if (!test) {
manager.sendMessage( manager.sendMessage(
new Message( new Message(
parser.get("workflowId"), parser.get("workflowId"), "DataFrameCreation", MessageType.ONGOING, ongoingMap),
"DataFrameCreation",
MessageType.ONGOING,
ongoingMap),
parser.get("rabbitOngoingQueue"), parser.get("rabbitOngoingQueue"),
true, true,
false); false);
@ -152,8 +145,7 @@ public class GenerateNativeStoreSparkJob {
reportMap.put("mdStoreSize", "" + mdStoreRecords.value()); reportMap.put("mdStoreSize", "" + mdStoreRecords.value());
if (!test) { if (!test) {
manager.sendMessage( manager.sendMessage(
new Message( new Message(parser.get("workflowId"), "Collection", MessageType.REPORT, reportMap),
parser.get("workflowId"), "Collection", MessageType.REPORT, reportMap),
parser.get("rabbitReportQueue"), parser.get("rabbitReportQueue"),
true, true,
false); false);

View File

@ -34,8 +34,7 @@ public class OaiCollectorPlugin implements CollectorPlugin {
final List<String> sets = new ArrayList<>(); final List<String> sets = new ArrayList<>();
if (setParam != null) { if (setParam != null) {
sets.addAll( sets.addAll(
Lists.newArrayList( Lists.newArrayList(Splitter.on(",").omitEmptyStrings().trimResults().split(setParam)));
Splitter.on(",").omitEmptyStrings().trimResults().split(setParam)));
} }
if (sets.isEmpty()) { if (sets.isEmpty()) {
// If no set is defined, ALL the sets must be harvested // If no set is defined, ALL the sets must be harvested
@ -63,14 +62,11 @@ public class OaiCollectorPlugin implements CollectorPlugin {
.map( .map(
set -> set ->
getOaiIteratorFactory() getOaiIteratorFactory()
.newIterator( .newIterator(baseUrl, mdFormat, set, fromDate, untilDate))
baseUrl, mdFormat, set, fromDate,
untilDate))
.iterator(); .iterator();
return StreamSupport.stream( return StreamSupport.stream(
Spliterators.spliteratorUnknownSize(Iterators.concat(iters), Spliterator.ORDERED), Spliterators.spliteratorUnknownSize(Iterators.concat(iters), Spliterator.ORDERED), false);
false);
} }
public OaiIteratorFactory getOaiIteratorFactory() { public OaiIteratorFactory getOaiIteratorFactory() {

View File

@ -19,8 +19,8 @@ import org.dom4j.io.SAXReader;
public class OaiIterator implements Iterator<String> { public class OaiIterator implements Iterator<String> {
private static final Log log = private static final Log log = LogFactory.getLog(OaiIterator.class); // NOPMD by marko on
LogFactory.getLog(OaiIterator.class); // NOPMD by marko on 11/24/08 5:02 PM // 11/24/08 5:02 PM
private final Queue<String> queue = new PriorityBlockingQueue<>(); private final Queue<String> queue = new PriorityBlockingQueue<>();
private final SAXReader reader = new SAXReader(); private final SAXReader reader = new SAXReader();
@ -91,9 +91,7 @@ public class OaiIterator implements Iterator<String> {
private String firstPage() throws DnetCollectorException { private String firstPage() throws DnetCollectorException {
try { try {
String url = String url =
baseUrl baseUrl + "?verb=ListRecords&metadataPrefix=" + URLEncoder.encode(mdFormat, "UTF-8");
+ "?verb=ListRecords&metadataPrefix="
+ URLEncoder.encode(mdFormat, "UTF-8");
if (set != null && !set.isEmpty()) { if (set != null && !set.isEmpty()) {
url += "&set=" + URLEncoder.encode(set, "UTF-8"); url += "&set=" + URLEncoder.encode(set, "UTF-8");
} }
@ -150,8 +148,7 @@ public class OaiIterator implements Iterator<String> {
} catch (final DocumentException e1) { } catch (final DocumentException e1) {
final String resumptionToken = extractResumptionToken(xml); final String resumptionToken = extractResumptionToken(xml);
if (resumptionToken == null) { if (resumptionToken == null) {
throw new DnetCollectorException( throw new DnetCollectorException("Error parsing cleaned document:" + cleaned, e1);
"Error parsing cleaned document:" + cleaned, e1);
} }
return resumptionToken; return resumptionToken;
} }

View File

@ -48,8 +48,7 @@ public class DnetCollectorWorker {
final ApiDescriptor api = final ApiDescriptor api =
jsonMapper.readValue(argumentParser.get("apidescriptor"), ApiDescriptor.class); jsonMapper.readValue(argumentParser.get("apidescriptor"), ApiDescriptor.class);
final CollectorPlugin plugin = final CollectorPlugin plugin = collectorPluginFactory.getPluginByProtocol(api.getProtocol());
collectorPluginFactory.getPluginByProtocol(api.getProtocol());
final String hdfsuri = argumentParser.get("namenode"); final String hdfsuri = argumentParser.get("namenode");
@ -80,7 +79,8 @@ public class DnetCollectorWorker {
SequenceFile.Writer.valueClass(Text.class))) { SequenceFile.Writer.valueClass(Text.class))) {
final IntWritable key = new IntWritable(counter.get()); final IntWritable key = new IntWritable(counter.get());
final Text value = new Text(); final Text value = new Text();
plugin.collect(api) plugin
.collect(api)
.forEach( .forEach(
content -> { content -> {
key.set(counter.getAndIncrement()); key.set(counter.getAndIncrement());
@ -92,13 +92,11 @@ public class DnetCollectorWorker {
"Sending message: " "Sending message: "
+ manager.sendMessage( + manager.sendMessage(
new Message( new Message(
argumentParser.get( argumentParser.get("workflowId"),
"workflowId"),
"Collection", "Collection",
MessageType.ONGOING, MessageType.ONGOING,
ongoingMap), ongoingMap),
argumentParser.get( argumentParser.get("rabbitOngoingQueue"),
"rabbitOngoingQueue"),
true, true,
false)); false));
} catch (Exception e) { } catch (Exception e) {
@ -115,20 +113,14 @@ public class DnetCollectorWorker {
ongoingMap.put("ongoing", "" + counter.get()); ongoingMap.put("ongoing", "" + counter.get());
manager.sendMessage( manager.sendMessage(
new Message( new Message(
argumentParser.get("workflowId"), argumentParser.get("workflowId"), "Collection", MessageType.ONGOING, ongoingMap),
"Collection",
MessageType.ONGOING,
ongoingMap),
argumentParser.get("rabbitOngoingQueue"), argumentParser.get("rabbitOngoingQueue"),
true, true,
false); false);
reportMap.put("collected", "" + counter.get()); reportMap.put("collected", "" + counter.get());
manager.sendMessage( manager.sendMessage(
new Message( new Message(
argumentParser.get("workflowId"), argumentParser.get("workflowId"), "Collection", MessageType.REPORT, reportMap),
"Collection",
MessageType.REPORT,
reportMap),
argumentParser.get("rabbitOngoingQueue"), argumentParser.get("rabbitOngoingQueue"),
true, true,
false); false);

View File

@ -6,8 +6,7 @@ import eu.dnetlib.dhp.collection.worker.DnetCollectorException;
public class CollectorPluginFactory { public class CollectorPluginFactory {
public CollectorPlugin getPluginByProtocol(final String protocol) public CollectorPlugin getPluginByProtocol(final String protocol) throws DnetCollectorException {
throws DnetCollectorException {
if (protocol == null) throw new DnetCollectorException("protocol cannot be null"); if (protocol == null) throw new DnetCollectorException("protocol cannot be null");
switch (protocol.toLowerCase().trim()) { switch (protocol.toLowerCase().trim()) {
case "oai": case "oai":

View File

@ -51,15 +51,12 @@ public class HttpConnector {
* @return the content of the downloaded resource as InputStream * @return the content of the downloaded resource as InputStream
* @throws DnetCollectorException when retrying more than maxNumberOfRetry times * @throws DnetCollectorException when retrying more than maxNumberOfRetry times
*/ */
public InputStream getInputSourceAsStream(final String requestUrl) public InputStream getInputSourceAsStream(final String requestUrl) throws DnetCollectorException {
throws DnetCollectorException {
return attemptDownload(requestUrl, 1, new CollectorPluginErrorLogList()); return attemptDownload(requestUrl, 1, new CollectorPluginErrorLogList());
} }
private String attemptDownlaodAsString( private String attemptDownlaodAsString(
final String requestUrl, final String requestUrl, final int retryNumber, final CollectorPluginErrorLogList errorList)
final int retryNumber,
final CollectorPluginErrorLogList errorList)
throws DnetCollectorException { throws DnetCollectorException {
try { try {
final InputStream s = attemptDownload(requestUrl, 1, new CollectorPluginErrorLogList()); final InputStream s = attemptDownload(requestUrl, 1, new CollectorPluginErrorLogList());
@ -79,14 +76,11 @@ public class HttpConnector {
} }
private InputStream attemptDownload( private InputStream attemptDownload(
final String requestUrl, final String requestUrl, final int retryNumber, final CollectorPluginErrorLogList errorList)
final int retryNumber,
final CollectorPluginErrorLogList errorList)
throws DnetCollectorException { throws DnetCollectorException {
if (retryNumber > maxNumberOfRetry) { if (retryNumber > maxNumberOfRetry) {
throw new DnetCollectorException( throw new DnetCollectorException("Max number of retries exceeded. Cause: \n " + errorList);
"Max number of retries exceeded. Cause: \n " + errorList);
} }
log.debug("Downloading " + requestUrl + " - try: " + retryNumber); log.debug("Downloading " + requestUrl + " - try: " + retryNumber);
@ -94,8 +88,7 @@ public class HttpConnector {
InputStream input = null; InputStream input = null;
try { try {
final HttpURLConnection urlConn = final HttpURLConnection urlConn = (HttpURLConnection) new URL(requestUrl).openConnection();
(HttpURLConnection) new URL(requestUrl).openConnection();
urlConn.setInstanceFollowRedirects(false); urlConn.setInstanceFollowRedirects(false);
urlConn.setReadTimeout(readTimeOut * 1000); urlConn.setReadTimeout(readTimeOut * 1000);
urlConn.addRequestProperty("User-Agent", userAgent); urlConn.addRequestProperty("User-Agent", userAgent);
@ -105,8 +98,7 @@ public class HttpConnector {
} }
final int retryAfter = obtainRetryAfter(urlConn.getHeaderFields()); final int retryAfter = obtainRetryAfter(urlConn.getHeaderFields());
if (retryAfter > 0 if (retryAfter > 0 && urlConn.getResponseCode() == HttpURLConnection.HTTP_UNAVAILABLE) {
&& urlConn.getResponseCode() == HttpURLConnection.HTTP_UNAVAILABLE) {
log.warn("waiting and repeating request after " + retryAfter + " sec."); log.warn("waiting and repeating request after " + retryAfter + " sec.");
Thread.sleep(retryAfter * 1000); Thread.sleep(retryAfter * 1000);
errorList.add("503 Service Unavailable"); errorList.add("503 Service Unavailable");
@ -119,21 +111,16 @@ public class HttpConnector {
errorList.add( errorList.add(
String.format( String.format(
"%s %s. Moved to: %s", "%s %s. Moved to: %s",
urlConn.getResponseCode(), urlConn.getResponseCode(), urlConn.getResponseMessage(), newUrl));
urlConn.getResponseMessage(),
newUrl));
urlConn.disconnect(); urlConn.disconnect();
return attemptDownload(newUrl, retryNumber + 1, errorList); return attemptDownload(newUrl, retryNumber + 1, errorList);
} else if (urlConn.getResponseCode() != HttpURLConnection.HTTP_OK) { } else if (urlConn.getResponseCode() != HttpURLConnection.HTTP_OK) {
log.error( log.error(
String.format( String.format(
"HTTP error: %s %s", "HTTP error: %s %s", urlConn.getResponseCode(), urlConn.getResponseMessage()));
urlConn.getResponseCode(), urlConn.getResponseMessage()));
Thread.sleep(defaultDelay * 1000); Thread.sleep(defaultDelay * 1000);
errorList.add( errorList.add(
String.format( String.format("%s %s", urlConn.getResponseCode(), urlConn.getResponseMessage()));
"%s %s",
urlConn.getResponseCode(), urlConn.getResponseMessage()));
urlConn.disconnect(); urlConn.disconnect();
return attemptDownload(requestUrl, retryNumber + 1, errorList); return attemptDownload(requestUrl, retryNumber + 1, errorList);
} else { } else {
@ -179,9 +166,7 @@ public class HttpConnector {
private String obtainNewLocation(final Map<String, List<String>> headerMap) private String obtainNewLocation(final Map<String, List<String>> headerMap)
throws DnetCollectorException { throws DnetCollectorException {
for (final String key : headerMap.keySet()) { for (final String key : headerMap.keySet()) {
if (key != null if (key != null && key.toLowerCase().equals("location") && headerMap.get(key).size() > 0) {
&& key.toLowerCase().equals("location")
&& headerMap.get(key).size() > 0) {
return headerMap.get(key).get(0); return headerMap.get(key).get(0);
} }
} }
@ -198,12 +183,10 @@ public class HttpConnector {
new X509TrustManager() { new X509TrustManager() {
@Override @Override
public void checkClientTrusted( public void checkClientTrusted(final X509Certificate[] xcs, final String string) {}
final X509Certificate[] xcs, final String string) {}
@Override @Override
public void checkServerTrusted( public void checkServerTrusted(final X509Certificate[] xcs, final String string) {}
final X509Certificate[] xcs, final String string) {}
@Override @Override
public X509Certificate[] getAcceptedIssuers() { public X509Certificate[] getAcceptedIssuers() {

View File

@ -19,8 +19,8 @@ public class XmlCleaner {
private static Pattern invalidControlCharPattern = Pattern.compile("&#x?1[0-9a-fA-F];"); private static Pattern invalidControlCharPattern = Pattern.compile("&#x?1[0-9a-fA-F];");
/** /**
* Pattern that negates the allowable XML 4 byte unicode characters. Valid are: #x9 | #xA | #xD * Pattern that negates the allowable XML 4 byte unicode characters. Valid are: #x9 | #xA | #xD |
* | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] * [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
*/ */
private static Pattern invalidCharacterPattern = private static Pattern invalidCharacterPattern =
Pattern.compile("[^\t\r\n\u0020-\uD7FF\uE000-\uFFFD]"); // $NON-NLS-1$ Pattern.compile("[^\t\r\n\u0020-\uD7FF\uE000-\uFFFD]"); // $NON-NLS-1$
@ -72,14 +72,14 @@ public class XmlCleaner {
badEntities.put("&#159;", " "); // $NON-NLS-1$ //$NON-NLS-2$ // illegal HTML character badEntities.put("&#159;", " "); // $NON-NLS-1$ //$NON-NLS-2$ // illegal HTML character
// misc entities // misc entities
badEntities.put("&euro;", "\u20AC"); // $NON-NLS-1$ //$NON-NLS-2$ // euro badEntities.put("&euro;", "\u20AC"); // $NON-NLS-1$ //$NON-NLS-2$ // euro
badEntities.put( badEntities.put("&lsquo;", "\u2018"); // $NON-NLS-1$ //$NON-NLS-2$ // left single quotation
"&lsquo;", "\u2018"); // $NON-NLS-1$ //$NON-NLS-2$ // left single quotation mark // mark
badEntities.put( badEntities.put("&rsquo;", "\u2019"); // $NON-NLS-1$ //$NON-NLS-2$ // right single quotation
"&rsquo;", "\u2019"); // $NON-NLS-1$ //$NON-NLS-2$ // right single quotation mark // mark
// Latin 1 entities // Latin 1 entities
badEntities.put("&nbsp;", "\u00A0"); // $NON-NLS-1$ //$NON-NLS-2$ // no-break space badEntities.put("&nbsp;", "\u00A0"); // $NON-NLS-1$ //$NON-NLS-2$ // no-break space
badEntities.put( badEntities.put("&iexcl;", "\u00A1"); // $NON-NLS-1$ //$NON-NLS-2$ // inverted exclamation
"&iexcl;", "\u00A1"); // $NON-NLS-1$ //$NON-NLS-2$ // inverted exclamation mark // mark
badEntities.put("&cent;", "\u00A2"); // $NON-NLS-1$ //$NON-NLS-2$ // cent sign badEntities.put("&cent;", "\u00A2"); // $NON-NLS-1$ //$NON-NLS-2$ // cent sign
badEntities.put("&pound;", "\u00A3"); // $NON-NLS-1$ //$NON-NLS-2$ // pound sign badEntities.put("&pound;", "\u00A3"); // $NON-NLS-1$ //$NON-NLS-2$ // pound sign
badEntities.put("&curren;", "\u00A4"); // $NON-NLS-1$ //$NON-NLS-2$ // currency sign badEntities.put("&curren;", "\u00A4"); // $NON-NLS-1$ //$NON-NLS-2$ // currency sign
@ -88,11 +88,10 @@ public class XmlCleaner {
badEntities.put("&sect;", "\u00A7"); // $NON-NLS-1$ //$NON-NLS-2$ // section sign badEntities.put("&sect;", "\u00A7"); // $NON-NLS-1$ //$NON-NLS-2$ // section sign
badEntities.put("&uml;", "\u00A8"); // $NON-NLS-1$ //$NON-NLS-2$ // diaeresis badEntities.put("&uml;", "\u00A8"); // $NON-NLS-1$ //$NON-NLS-2$ // diaeresis
badEntities.put("&copy;", "\u00A9"); // $NON-NLS-1$ //$NON-NLS-2$ // copyright sign badEntities.put("&copy;", "\u00A9"); // $NON-NLS-1$ //$NON-NLS-2$ // copyright sign
badEntities.put( badEntities.put("&ordf;", "\u00AA"); // $NON-NLS-1$ //$NON-NLS-2$ // feminine ordinal
"&ordf;", "\u00AA"); // $NON-NLS-1$ //$NON-NLS-2$ // feminine ordinal indicator // indicator
badEntities.put( badEntities.put("&laquo;", "\u00AB"); // $NON-NLS-2$ // left-pointing double angle
"&laquo;", // quotation mark
"\u00AB"); //$NON-NLS-1$ //$NON-NLS-2$ // left-pointing double angle quotation mark
badEntities.put("&not;", "\u00AC"); // $NON-NLS-1$ //$NON-NLS-2$ // not sign badEntities.put("&not;", "\u00AC"); // $NON-NLS-1$ //$NON-NLS-2$ // not sign
badEntities.put("&shy;", "\u00AD"); // $NON-NLS-1$ //$NON-NLS-2$ // soft hyphen badEntities.put("&shy;", "\u00AD"); // $NON-NLS-1$ //$NON-NLS-2$ // soft hyphen
badEntities.put("&reg;", "\u00AE"); // $NON-NLS-1$ //$NON-NLS-2$ // registered sign badEntities.put("&reg;", "\u00AE"); // $NON-NLS-1$ //$NON-NLS-2$ // registered sign
@ -107,205 +106,198 @@ public class XmlCleaner {
badEntities.put("&middot;", "\u00B7"); // $NON-NLS-1$ //$NON-NLS-2$ // middle dot badEntities.put("&middot;", "\u00B7"); // $NON-NLS-1$ //$NON-NLS-2$ // middle dot
badEntities.put("&cedil;", "\u00B8"); // $NON-NLS-1$ //$NON-NLS-2$ // cedilla badEntities.put("&cedil;", "\u00B8"); // $NON-NLS-1$ //$NON-NLS-2$ // cedilla
badEntities.put("&sup1;", "\u00B9"); // $NON-NLS-1$ //$NON-NLS-2$ // superscript one badEntities.put("&sup1;", "\u00B9"); // $NON-NLS-1$ //$NON-NLS-2$ // superscript one
badEntities.put( badEntities.put("&ordm;", "\u00BA"); // $NON-NLS-1$ //$NON-NLS-2$ // masculine ordinal
"&ordm;", "\u00BA"); // $NON-NLS-1$ //$NON-NLS-2$ // masculine ordinal indicator // indicator
badEntities.put( badEntities.put("&raquo;", "\u00BB"); // $NON-NLS-2$ // right-pointing double
"&raquo;", // angle quotation
"\u00BB"); //$NON-NLS-1$ //$NON-NLS-2$ // right-pointing double angle quotation mark // mark
badEntities.put( badEntities.put("&frac14;", "\u00BC"); // $NON-NLS-1$ //$NON-NLS-2$ // vulgar fraction one
"&frac14;", "\u00BC"); // $NON-NLS-1$ //$NON-NLS-2$ // vulgar fraction one quarter // quarter
badEntities.put( badEntities.put("&frac12;", "\u00BD"); // $NON-NLS-1$ //$NON-NLS-2$ // vulgar fraction one
"&frac12;", "\u00BD"); // $NON-NLS-1$ //$NON-NLS-2$ // vulgar fraction one half // half
badEntities.put( badEntities.put("&frac34;", "\u00BE"); // $NON-NLS-1$ //$NON-NLS-2$ // vulgar fraction three
"&frac34;", // quarters
"\u00BE"); // $NON-NLS-1$ //$NON-NLS-2$ // vulgar fraction three quarters badEntities.put("&iquest;", "\u00BF"); // $NON-NLS-1$ //$NON-NLS-2$ // inverted question
badEntities.put( // mark
"&iquest;", "\u00BF"); // $NON-NLS-1$ //$NON-NLS-2$ // inverted question mark badEntities.put("&Agrave;", "\u00C0"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter
badEntities.put( // A
"&Agrave;", // with grave
"\u00C0"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter A with grave badEntities.put("&Aacute;", "\u00C1"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter
badEntities.put( // A
"&Aacute;", // with acute
"\u00C1"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter A with acute badEntities.put("&Acirc;", "\u00C2"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter A
badEntities.put( // with circumflex
"&Acirc;", badEntities.put("&Atilde;", "\u00C3"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter
"\u00C2"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter A with circumflex // A
badEntities.put( // with tilde
"&Atilde;", badEntities.put("&Auml;", "\u00C4"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter A
"\u00C3"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter A with tilde // with
badEntities.put( // diaeresis
"&Auml;", badEntities.put("&Aring;", "\u00C5"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter A
"\u00C4"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter A with diaeresis // with ring above
badEntities.put( badEntities.put("&AElig;", "\u00C6"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter
"&Aring;", // AE
"\u00C5"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter A with ring above badEntities.put("&Ccedil;", "\u00C7"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter
badEntities.put( // C
"&AElig;", "\u00C6"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter AE // with cedilla
badEntities.put( badEntities.put("&Egrave;", "\u00C8"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter
"&Ccedil;", // E
"\u00C7"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter C with cedilla // with grave
badEntities.put( badEntities.put("&Eacute;", "\u00C9"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter
"&Egrave;", // E
"\u00C8"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter E with grave // with acute
badEntities.put( badEntities.put("&Ecirc;", "\u00CA"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter E
"&Eacute;", // with circumflex
"\u00C9"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter E with acute badEntities.put("&Euml;", "\u00CB"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter E
badEntities.put( // with
"&Ecirc;", // diaeresis
"\u00CA"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter E with circumflex badEntities.put("&Igrave;", "\u00CC"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter
badEntities.put( // I
"&Euml;", // with grave
"\u00CB"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter E with diaeresis badEntities.put("&Iacute;", "\u00CD"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter
badEntities.put( // I
"&Igrave;", // with acute
"\u00CC"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter I with grave badEntities.put("&Icirc;", "\u00CE"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter I
badEntities.put( // with circumflex
"&Iacute;", badEntities.put("&Iuml;", "\u00CF"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter I
"\u00CD"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter I with acute // with
badEntities.put( // diaeresis
"&Icirc;",
"\u00CE"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter I with circumflex
badEntities.put(
"&Iuml;",
"\u00CF"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter I with diaeresis
badEntities.put("&ETH;", "\u00D0"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter ETH badEntities.put("&ETH;", "\u00D0"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter ETH
badEntities.put( badEntities.put("&Ntilde;", "\u00D1"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter
"&Ntilde;", // N
"\u00D1"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter N with tilde // with tilde
badEntities.put( badEntities.put("&Ograve;", "\u00D2"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter
"&Ograve;", // O
"\u00D2"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter O with grave // with grave
badEntities.put( badEntities.put("&Oacute;", "\u00D3"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter
"&Oacute;", // O
"\u00D3"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter O with acute // with acute
badEntities.put( badEntities.put("&Ocirc;", "\u00D4"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter O
"&Ocirc;", // with circumflex
"\u00D4"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter O with circumflex badEntities.put("&Otilde;", "\u00D5"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter
badEntities.put( // O
"&Otilde;", // with tilde
"\u00D5"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter O with tilde badEntities.put("&Ouml;", "\u00D6"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter O
badEntities.put( // with
"&Ouml;", // diaeresis
"\u00D6"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter O with diaeresis
badEntities.put("&times;", "\u00D7"); // $NON-NLS-1$ //$NON-NLS-2$ // multiplication sign badEntities.put("&times;", "\u00D7"); // $NON-NLS-1$ //$NON-NLS-2$ // multiplication sign
badEntities.put( badEntities.put("&Oslash;", "\u00D8"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter
"&Oslash;", // O
"\u00D8"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter O with stroke // with stroke
badEntities.put( badEntities.put("&Ugrave;", "\u00D9"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter
"&Ugrave;", // U
"\u00D9"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter U with grave // with grave
badEntities.put( badEntities.put("&Uacute;", "\u00DA"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter
"&Uacute;", // U
"\u00DA"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter U with acute // with acute
badEntities.put( badEntities.put("&Ucirc;", "\u00DB"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter U
"&Ucirc;", // with circumflex
"\u00DB"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter U with circumflex badEntities.put("&Uuml;", "\u00DC"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter U
badEntities.put( // with
"&Uuml;", // diaeresis
"\u00DC"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter U with diaeresis badEntities.put("&Yacute;", "\u00DD"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter
badEntities.put( // Y
"&Yacute;", // with acute
"\u00DD"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter Y with acute badEntities.put("&THORN;", "\u00DE"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter
badEntities.put( // THORN
"&THORN;", "\u00DE"); // $NON-NLS-1$ //$NON-NLS-2$ // latin capital letter THORN badEntities.put("&szlig;", "\u00DF"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter
badEntities.put( // sharp s
"&szlig;", "\u00DF"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter sharp s badEntities.put("&agrave;", "\u00E0"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter a
badEntities.put( // with
"&agrave;", // grave
"\u00E0"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter a with grave badEntities.put("&aacute;", "\u00E1"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter a
badEntities.put( // with
"&aacute;", // acute
"\u00E1"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter a with acute badEntities.put("&acirc;", "\u00E2"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter a
badEntities.put( // with
"&acirc;", // circumflex
"\u00E2"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter a with circumflex badEntities.put("&atilde;", "\u00E3"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter a
badEntities.put( // with
"&atilde;", // tilde
"\u00E3"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter a with tilde badEntities.put("&auml;", "\u00E4"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter a
badEntities.put( // with
"&auml;", // diaeresis
"\u00E4"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter a with diaeresis badEntities.put("&aring;", "\u00E5"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter a
badEntities.put( // with
"&aring;", // ring above
"\u00E5"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter a with ring above
badEntities.put("&aelig;", "\u00E6"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter ae badEntities.put("&aelig;", "\u00E6"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter ae
badEntities.put( badEntities.put("&ccedil;", "\u00E7"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter c
"&ccedil;", // with
"\u00E7"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter c with cedilla // cedilla
badEntities.put( badEntities.put("&egrave;", "\u00E8"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter e
"&egrave;", // with
"\u00E8"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter e with grave // grave
badEntities.put( badEntities.put("&eacute;", "\u00E9"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter e
"&eacute;", // with
"\u00E9"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter e with acute // acute
badEntities.put( badEntities.put("&ecirc;", "\u00EA"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter e
"&ecirc;", // with
"\u00EA"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter e with circumflex // circumflex
badEntities.put( badEntities.put("&euml;", "\u00EB"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter e
"&euml;", // with
"\u00EB"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter e with diaeresis // diaeresis
badEntities.put( badEntities.put("&igrave;", "\u00EC"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter i
"&igrave;", // with
"\u00EC"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter i with grave // grave
badEntities.put( badEntities.put("&iacute;", "\u00ED"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter i
"&iacute;", // with
"\u00ED"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter i with acute // acute
badEntities.put( badEntities.put("&icirc;", "\u00EE"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter i
"&icirc;", // with
"\u00EE"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter i with circumflex // circumflex
badEntities.put( badEntities.put("&iuml;", "\u00EF"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter i
"&iuml;", // with
"\u00EF"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter i with diaeresis // diaeresis
badEntities.put("&eth;", "\u00F0"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter eth badEntities.put("&eth;", "\u00F0"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter eth
badEntities.put( badEntities.put("&ntilde;", "\u00F1"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter n
"&ntilde;", // with
"\u00F1"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter n with tilde // tilde
badEntities.put( badEntities.put("&ograve;", "\u00F2"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter o
"&ograve;", // with
"\u00F2"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter o with grave // grave
badEntities.put( badEntities.put("&oacute;", "\u00F3"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter o
"&oacute;", // with
"\u00F3"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter o with acute // acute
badEntities.put( badEntities.put("&ocirc;", "\u00F4"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter o
"&ocirc;", // with
"\u00F4"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter o with circumflex // circumflex
badEntities.put( badEntities.put("&otilde;", "\u00F5"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter o
"&otilde;", // with
"\u00F5"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter o with tilde // tilde
badEntities.put( badEntities.put("&ouml;", "\u00F6"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter o
"&ouml;", // with
"\u00F6"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter o with diaeresis // diaeresis
badEntities.put("&divide;", "\u00F7"); // $NON-NLS-1$ //$NON-NLS-2$ // division sign badEntities.put("&divide;", "\u00F7"); // $NON-NLS-1$ //$NON-NLS-2$ // division sign
badEntities.put( badEntities.put("&oslash;", "\u00F8"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter o
"&oslash;", // with
"\u00F8"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter o with stroke // stroke
badEntities.put( badEntities.put("&ugrave;", "\u00F9"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter u
"&ugrave;", // with
"\u00F9"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter u with grave // grave
badEntities.put( badEntities.put("&uacute;", "\u00FA"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter u
"&uacute;", // with
"\u00FA"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter u with acute // acute
badEntities.put( badEntities.put("&ucirc;", "\u00FB"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter u
"&ucirc;", // with
"\u00FB"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter u with circumflex // circumflex
badEntities.put( badEntities.put("&uuml;", "\u00FC"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter u
"&uuml;", // with
"\u00FC"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter u with diaeresis // diaeresis
badEntities.put( badEntities.put("&yacute;", "\u00FD"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter y
"&yacute;", // with
"\u00FD"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter y with acute // acute
badEntities.put( badEntities.put("&thorn;", "\u00FE"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter
"&thorn;", "\u00FE"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter thorn // thorn
badEntities.put( badEntities.put("&yuml;", "\u00FF"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter y
"&yuml;", // with
"\u00FF"); // $NON-NLS-1$ //$NON-NLS-2$ // latin small letter y with diaeresis // diaeresis
} }
/** /**
* For each entity in the input that is not allowed in XML, replace the entity with its unicode * For each entity in the input that is not allowed in XML, replace the entity with its unicode
* equivalent or remove it. For each instance of a bare {@literal &}, replace it with {@literal * equivalent or remove it. For each instance of a bare {@literal &}, replace it with {@literal
* &amp;<br/> } XML only allows 4 entities: {@literal &amp;amp;}, {@literal &amp;quot;}, * &amp;<br/> } XML only allows 4 entities: {@literal &amp;amp;}, {@literal &amp;quot;}, {@literal
* {@literal &amp;lt;} and {@literal &amp;gt;}. * &amp;lt;} and {@literal &amp;gt;}.
* *
* @param broken the string to handle entities * @param broken the string to handle entities
* @return the string with entities appropriately fixed up * @return the string with entities appropriately fixed up
@ -335,9 +327,7 @@ public class XmlCleaner {
while (true) { while (true) {
// if we are at the end of the string then just escape the '&'; // if we are at the end of the string then just escape the '&';
if (i >= working.length()) { if (i >= working.length()) {
return working.substring(0, amp) return working.substring(0, amp) + "&amp;" + working.substring(amp + 1); // $NON-NLS-1$
+ "&amp;"
+ working.substring(amp + 1); // $NON-NLS-1$
} }
// if we have come to a ; then we have an entity // if we have come to a ; then we have an entity
// If it is something that xml can't handle then replace it. // If it is something that xml can't handle then replace it.
@ -351,10 +341,7 @@ public class XmlCleaner {
// Did we end an entity without finding a closing ; // Did we end an entity without finding a closing ;
// Then treat it as an '&' that needs to be replaced with &amp; // Then treat it as an '&' that needs to be replaced with &amp;
if (!Character.isLetterOrDigit(c)) { if (!Character.isLetterOrDigit(c)) {
working = working = working.substring(0, amp) + "&amp;" + working.substring(amp + 1); // $NON-NLS-1$
working.substring(0, amp)
+ "&amp;"
+ working.substring(amp + 1); // $NON-NLS-1$
amp = i + 4; // account for the 4 extra characters amp = i + 4; // account for the 4 extra characters
break; break;
} }
@ -375,8 +362,8 @@ public class XmlCleaner {
} }
/** /**
* Replace entity with its unicode equivalent, if it is not a valid XML entity. Otherwise strip * Replace entity with its unicode equivalent, if it is not a valid XML entity. Otherwise strip it
* it out. XML only allows 4 entities: &amp;amp;, &amp;quot;, &amp;lt; and &amp;gt;. * out. XML only allows 4 entities: &amp;amp;, &amp;quot;, &amp;lt; and &amp;gt;.
* *
* @param entity the entity to be replaced * @param entity the entity to be replaced
* @return the substitution for the entity, either itself, the unicode equivalent or an empty * @return the substitution for the entity, either itself, the unicode equivalent or an empty

View File

@ -45,15 +45,11 @@ public class TransformFunction implements MapFunction<MetadataRecord, MetadataRe
processor.registerExtensionFunction(cleanFunction); processor.registerExtensionFunction(cleanFunction);
final XsltCompiler comp = processor.newXsltCompiler(); final XsltCompiler comp = processor.newXsltCompiler();
XsltExecutable xslt = XsltExecutable xslt =
comp.compile( comp.compile(new StreamSource(new ByteArrayInputStream(transformationRule.getBytes())));
new StreamSource(
new ByteArrayInputStream(transformationRule.getBytes())));
XdmNode source = XdmNode source =
processor processor
.newDocumentBuilder() .newDocumentBuilder()
.build( .build(new StreamSource(new ByteArrayInputStream(value.getBody().getBytes())));
new StreamSource(
new ByteArrayInputStream(value.getBody().getBytes())));
XsltTransformer trans = xslt.load(); XsltTransformer trans = xslt.load();
trans.setInitialContextNode(source); trans.setInitialContextNode(source);
final StringWriter output = new StringWriter(); final StringWriter output = new StringWriter();

View File

@ -41,8 +41,7 @@ public class TransformSparkJobNode {
final String workflowId = parser.get("workflowId"); final String workflowId = parser.get("workflowId");
final String trasformationRule = final String trasformationRule =
extractXSLTFromTR( extractXSLTFromTR(
Objects.requireNonNull( Objects.requireNonNull(DHPUtils.decompressString(parser.get("transformationRule"))));
DHPUtils.decompressString(parser.get("transformationRule"))));
final String master = parser.get("master"); final String master = parser.get("master");
final String rabbitUser = parser.get("rabbitUser"); final String rabbitUser = parser.get("rabbitUser");
final String rabbitPassword = parser.get("rabbitPassword"); final String rabbitPassword = parser.get("rabbitPassword");
@ -53,10 +52,7 @@ public class TransformSparkJobNode {
parser.get("isTest") == null ? false : Boolean.valueOf(parser.get("isTest")); parser.get("isTest") == null ? false : Boolean.valueOf(parser.get("isTest"));
final SparkSession spark = final SparkSession spark =
SparkSession.builder() SparkSession.builder().appName("TransformStoreSparkJob").master(master).getOrCreate();
.appName("TransformStoreSparkJob")
.master(master)
.getOrCreate();
final Encoder<MetadataRecord> encoder = Encoders.bean(MetadataRecord.class); final Encoder<MetadataRecord> encoder = Encoders.bean(MetadataRecord.class);
final Dataset<MetadataRecord> mdstoreInput = final Dataset<MetadataRecord> mdstoreInput =
@ -85,8 +81,7 @@ public class TransformSparkJobNode {
System.out.println(new Message(workflowId, "Transform", MessageType.REPORT, reportMap)); System.out.println(new Message(workflowId, "Transform", MessageType.REPORT, reportMap));
if (!test) { if (!test) {
final MessageManager manager = final MessageManager manager =
new MessageManager( new MessageManager(rabbitHost, rabbitUser, rabbitPassword, false, false, null);
rabbitHost, rabbitUser, rabbitPassword, false, false, null);
manager.sendMessage( manager.sendMessage(
new Message(workflowId, "Transform", MessageType.REPORT, reportMap), new Message(workflowId, "Transform", MessageType.REPORT, reportMap),
rabbitReportQueue, rabbitReportQueue,

View File

@ -33,24 +33,34 @@ public class CollectionJobTest {
final Provenance provenance = new Provenance("pippo", "puppa", "ns_prefix"); final Provenance provenance = new Provenance("pippo", "puppa", "ns_prefix");
GenerateNativeStoreSparkJob.main( GenerateNativeStoreSparkJob.main(
new String[] { new String[] {
"-mt", "local", "-mt",
"-w", "wid", "local",
"-e", "XML", "-w",
"-d", "" + System.currentTimeMillis(), "wid",
"-p", new ObjectMapper().writeValueAsString(provenance), "-e",
"XML",
"-d",
"" + System.currentTimeMillis(),
"-p",
new ObjectMapper().writeValueAsString(provenance),
"-x", "-x",
"./*[local-name()='record']/*[local-name()='header']/*[local-name()='identifier']", "./*[local-name()='record']/*[local-name()='header']/*[local-name()='identifier']",
"-i", "-i",
this.getClass() this.getClass().getResource("/eu/dnetlib/dhp/collection/native.seq").toString(),
.getResource("/eu/dnetlib/dhp/collection/native.seq") "-o",
.toString(), testDir.toString() + "/store",
"-o", testDir.toString() + "/store", "-t",
"-t", "true", "true",
"-ru", "", "-ru",
"-rp", "", "",
"-rh", "", "-rp",
"-ro", "", "",
"-rr", "" "-rh",
"",
"-ro",
"",
"-rr",
""
}); });
System.out.println(new ObjectMapper().writeValueAsString(provenance)); System.out.println(new ObjectMapper().writeValueAsString(provenance));
} }

View File

@ -33,8 +33,7 @@ public class DnetCollectorWorkerApplicationTests {
when(argumentParser.get("workflowId")).thenReturn("sandro"); when(argumentParser.get("workflowId")).thenReturn("sandro");
when(argumentParser.get("rabbitOngoingQueue")).thenReturn("sandro"); when(argumentParser.get("rabbitOngoingQueue")).thenReturn("sandro");
when(messageManager.sendMessage( when(messageManager.sendMessage(any(Message.class), anyString(), anyBoolean(), anyBoolean()))
any(Message.class), anyString(), anyBoolean(), anyBoolean()))
.thenAnswer( .thenAnswer(
a -> { a -> {
System.out.println("sent message: " + a.getArguments()[0]); System.out.println("sent message: " + a.getArguments()[0]);
@ -46,9 +45,7 @@ public class DnetCollectorWorkerApplicationTests {
System.out.println("Called"); System.out.println("Called");
return true; return true;
}); });
worker = worker = new DnetCollectorWorker(new CollectorPluginFactory(), argumentParser, messageManager);
new DnetCollectorWorker(
new CollectorPluginFactory(), argumentParser, messageManager);
} }
@AfterEach @AfterEach

View File

@ -43,16 +43,12 @@ public class TransformationJobTest {
XsltExecutable exp = XsltExecutable exp =
comp.compile( comp.compile(
new StreamSource( new StreamSource(
this.getClass() this.getClass().getResourceAsStream("/eu/dnetlib/dhp/transform/ext_simple.xsl")));
.getResourceAsStream(
"/eu/dnetlib/dhp/transform/ext_simple.xsl")));
XdmNode source = XdmNode source =
proc.newDocumentBuilder() proc.newDocumentBuilder()
.build( .build(
new StreamSource( new StreamSource(
this.getClass() this.getClass().getResourceAsStream("/eu/dnetlib/dhp/transform/input.xml")));
.getResourceAsStream(
"/eu/dnetlib/dhp/transform/input.xml")));
XsltTransformer trans = exp.load(); XsltTransformer trans = exp.load();
trans.setInitialContextNode(source); trans.setInitialContextNode(source);
final StringWriter output = new StringWriter(); final StringWriter output = new StringWriter();
@ -73,22 +69,33 @@ public class TransformationJobTest {
final String xslt = final String xslt =
DHPUtils.compressString( DHPUtils.compressString(
IOUtils.toString( IOUtils.toString(
this.getClass() this.getClass().getResourceAsStream("/eu/dnetlib/dhp/transform/tr.xml")));
.getResourceAsStream("/eu/dnetlib/dhp/transform/tr.xml")));
TransformSparkJobNode.main( TransformSparkJobNode.main(
new String[] { new String[] {
"-mt", "local", "-mt",
"-i", mdstore_input, "local",
"-o", mdstore_output, "-i",
"-d", "1", mdstore_input,
"-w", "1", "-o",
"-tr", xslt, mdstore_output,
"-t", "true", "-d",
"-ru", "", "1",
"-rp", "", "-w",
"-rh", "", "1",
"-ro", "", "-tr",
"-rr", "" xslt,
"-t",
"true",
"-ru",
"",
"-rp",
"",
"-rh",
"",
"-ro",
"",
"-rr",
""
}); });
} }
@ -109,8 +116,7 @@ public class TransformationJobTest {
public void testTransformFunction() throws Exception { public void testTransformFunction() throws Exception {
SAXReader reader = new SAXReader(); SAXReader reader = new SAXReader();
Document document = Document document =
reader.read( reader.read(this.getClass().getResourceAsStream("/eu/dnetlib/dhp/transform/tr.xml"));
this.getClass().getResourceAsStream("/eu/dnetlib/dhp/transform/tr.xml"));
Node node = document.selectSingleNode("//CODE/*[local-name()='stylesheet']"); Node node = document.selectSingleNode("//CODE/*[local-name()='stylesheet']");
final String xslt = node.asXML(); final String xslt = node.asXML();
Map<String, Vocabulary> vocabularies = new HashMap<>(); Map<String, Vocabulary> vocabularies = new HashMap<>();
@ -122,8 +128,7 @@ public class TransformationJobTest {
MetadataRecord record = new MetadataRecord(); MetadataRecord record = new MetadataRecord();
record.setBody( record.setBody(
IOUtils.toString( IOUtils.toString(
this.getClass() this.getClass().getResourceAsStream("/eu/dnetlib/dhp/transform/input.xml")));
.getResourceAsStream("/eu/dnetlib/dhp/transform/input.xml")));
final MetadataRecord result = tf.call(record); final MetadataRecord result = tf.call(record);
assertNotNull(result.getBody()); assertNotNull(result.getBody());
@ -135,13 +140,11 @@ public class TransformationJobTest {
public void extractTr() throws Exception { public void extractTr() throws Exception {
final String xmlTr = final String xmlTr =
IOUtils.toString( IOUtils.toString(this.getClass().getResourceAsStream("/eu/dnetlib/dhp/transform/tr.xml"));
this.getClass().getResourceAsStream("/eu/dnetlib/dhp/transform/tr.xml"));
SAXReader reader = new SAXReader(); SAXReader reader = new SAXReader();
Document document = Document document =
reader.read( reader.read(this.getClass().getResourceAsStream("/eu/dnetlib/dhp/transform/tr.xml"));
this.getClass().getResourceAsStream("/eu/dnetlib/dhp/transform/tr.xml"));
Node node = document.selectSingleNode("//CODE/*[local-name()='stylesheet']"); Node node = document.selectSingleNode("//CODE/*[local-name()='stylesheet']");
System.out.println(node.asXML()); System.out.println(node.asXML());

View File

@ -40,8 +40,7 @@ abstract class AbstractSparkAction implements Serializable {
throws ISLookUpException, DocumentException, IOException { throws ISLookUpException, DocumentException, IOException {
final String xquery = final String xquery =
String.format( String.format("/RESOURCE_PROFILE[.//DEDUPLICATION/ACTION_SET/@id = '%s']", orchestrator);
"/RESOURCE_PROFILE[.//DEDUPLICATION/ACTION_SET/@id = '%s']", orchestrator);
String orchestratorProfile = isLookUpService.getResourceProfileByQuery(xquery); String orchestratorProfile = isLookUpService.getResourceProfileByQuery(xquery);

View File

@ -42,11 +42,7 @@ public class DatePicker {
.filter(d -> inRange(d.getKey())) .filter(d -> inRange(d.getKey()))
.sorted(reverseOrder(comparingByValue())) .sorted(reverseOrder(comparingByValue()))
.collect( .collect(
toMap( toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e2, LinkedHashMap::new));
Map.Entry::getKey,
Map.Entry::getValue,
(e1, e2) -> e2,
LinkedHashMap::new));
// shortcut // shortcut
if (sorted.size() == 0) { if (sorted.size() == 0) {
@ -67,11 +63,7 @@ public class DatePicker {
final int max = sorted.values().iterator().next(); final int max = sorted.values().iterator().next();
Optional<String> first = Optional<String> first =
sorted.entrySet().stream() sorted.entrySet().stream()
.filter( .filter(e -> e.getValue() == max && !endsWith(e.getKey(), DATE_DEFAULT_SUFFIX))
e ->
e.getValue() == max
&& !endsWith(
e.getKey(), DATE_DEFAULT_SUFFIX))
.map(Map.Entry::getKey) .map(Map.Entry::getKey)
.findFirst(); .findFirst();
if (first.isPresent()) { if (first.isPresent()) {
@ -88,9 +80,7 @@ public class DatePicker {
return date; return date;
} else { } else {
final Optional<String> first = final Optional<String> first =
accepted.stream() accepted.stream().filter(d -> !endsWith(d, DATE_DEFAULT_SUFFIX)).findFirst();
.filter(d -> !endsWith(d, DATE_DEFAULT_SUFFIX))
.findFirst();
if (first.isPresent()) { if (first.isPresent()) {
date.setValue(first.get()); date.setValue(first.get());
return date; return date;

View File

@ -34,7 +34,8 @@ public class DedupRecordFactory {
// <id, json_entity> // <id, json_entity>
Dataset<Tuple2<String, T>> entities = Dataset<Tuple2<String, T>> entities =
spark.read() spark
.read()
.textFile(entitiesInputPath) .textFile(entitiesInputPath)
.map( .map(
(MapFunction<String, Tuple2<String, T>>) (MapFunction<String, Tuple2<String, T>>)
@ -46,7 +47,8 @@ public class DedupRecordFactory {
// <source, target>: source is the dedup_id, target is the id of the mergedIn // <source, target>: source is the dedup_id, target is the id of the mergedIn
Dataset<Tuple2<String, String>> mergeRels = Dataset<Tuple2<String, String>> mergeRels =
spark.read() spark
.read()
.load(mergeRelsInputPath) .load(mergeRelsInputPath)
.as(Encoders.bean(Relation.class)) .as(Encoders.bean(Relation.class))
.where("relClass == 'merges'") .where("relClass == 'merges'")
@ -58,14 +60,11 @@ public class DedupRecordFactory {
return mergeRels return mergeRels
.joinWith(entities, mergeRels.col("_2").equalTo(entities.col("_1")), "inner") .joinWith(entities, mergeRels.col("_2").equalTo(entities.col("_1")), "inner")
.map( .map(
(MapFunction< (MapFunction<Tuple2<Tuple2<String, String>, Tuple2<String, T>>, Tuple2<String, T>>)
Tuple2<Tuple2<String, String>, Tuple2<String, T>>,
Tuple2<String, T>>)
value -> new Tuple2<>(value._1()._1(), value._2()._2()), value -> new Tuple2<>(value._1()._1(), value._2()._2()),
Encoders.tuple(Encoders.STRING(), Encoders.kryo(clazz))) Encoders.tuple(Encoders.STRING(), Encoders.kryo(clazz)))
.groupByKey( .groupByKey(
(MapFunction<Tuple2<String, T>, String>) entity -> entity._1(), (MapFunction<Tuple2<String, T>, String>) entity -> entity._1(), Encoders.STRING())
Encoders.STRING())
.mapGroups( .mapGroups(
(MapGroupsFunction<String, Tuple2<String, T>, T>) (MapGroupsFunction<String, Tuple2<String, T>, T>)
(key, values) -> entityMerger(key, values, ts, dataInfo), (key, values) -> entityMerger(key, values, ts, dataInfo),

View File

@ -35,14 +35,12 @@ public class DedupUtility {
Map<String, LongAccumulator> accumulators = new HashMap<>(); Map<String, LongAccumulator> accumulators = new HashMap<>();
String acc1 = String acc1 =
String.format( String.format("%s::%s", dedupConf.getWf().getEntityType(), "records per hash key = 1");
"%s::%s", dedupConf.getWf().getEntityType(), "records per hash key = 1");
accumulators.put(acc1, context.longAccumulator(acc1)); accumulators.put(acc1, context.longAccumulator(acc1));
String acc2 = String acc2 =
String.format( String.format(
"%s::%s", "%s::%s",
dedupConf.getWf().getEntityType(), dedupConf.getWf().getEntityType(), "missing " + dedupConf.getWf().getOrderField());
"missing " + dedupConf.getWf().getOrderField());
accumulators.put(acc2, context.longAccumulator(acc2)); accumulators.put(acc2, context.longAccumulator(acc2));
String acc3 = String acc3 =
String.format( String.format(
@ -50,8 +48,7 @@ public class DedupUtility {
dedupConf.getWf().getEntityType(), dedupConf.getWf().getEntityType(),
String.format( String.format(
"Skipped records for count(%s) >= %s", "Skipped records for count(%s) >= %s",
dedupConf.getWf().getOrderField(), dedupConf.getWf().getOrderField(), dedupConf.getWf().getGroupMaxSize()));
dedupConf.getWf().getGroupMaxSize()));
accumulators.put(acc3, context.longAccumulator(acc3)); accumulators.put(acc3, context.longAccumulator(acc3));
String acc4 = String.format("%s::%s", dedupConf.getWf().getEntityType(), "skip list"); String acc4 = String.format("%s::%s", dedupConf.getWf().getEntityType(), "skip list");
accumulators.put(acc4, context.longAccumulator(acc4)); accumulators.put(acc4, context.longAccumulator(acc4));
@ -60,9 +57,7 @@ public class DedupUtility {
accumulators.put(acc5, context.longAccumulator(acc5)); accumulators.put(acc5, context.longAccumulator(acc5));
String acc6 = String acc6 =
String.format( String.format(
"%s::%s", "%s::%s", dedupConf.getWf().getEntityType(), "d < " + dedupConf.getWf().getThreshold());
dedupConf.getWf().getEntityType(),
"d < " + dedupConf.getWf().getThreshold());
accumulators.put(acc6, context.longAccumulator(acc6)); accumulators.put(acc6, context.longAccumulator(acc6));
return accumulators; return accumulators;
@ -106,10 +101,7 @@ public class DedupUtility {
final Map<String, Author> basePidAuthorMap = final Map<String, Author> basePidAuthorMap =
base.stream() base.stream()
.filter(a -> a.getPid() != null && a.getPid().size() > 0) .filter(a -> a.getPid() != null && a.getPid().size() > 0)
.flatMap( .flatMap(a -> a.getPid().stream().map(p -> new Tuple2<>(p.toComparableString(), a)))
a ->
a.getPid().stream()
.map(p -> new Tuple2<>(p.toComparableString(), a)))
.collect(Collectors.toMap(Tuple2::_1, Tuple2::_2, (x1, x2) -> x1)); .collect(Collectors.toMap(Tuple2::_1, Tuple2::_2, (x1, x2) -> x1));
final List<Tuple2<StructuredProperty, Author>> pidToEnrich = final List<Tuple2<StructuredProperty, Author>> pidToEnrich =
@ -118,10 +110,7 @@ public class DedupUtility {
.flatMap( .flatMap(
a -> a ->
a.getPid().stream() a.getPid().stream()
.filter( .filter(p -> !basePidAuthorMap.containsKey(p.toComparableString()))
p ->
!basePidAuthorMap.containsKey(
p.toComparableString()))
.map(p -> new Tuple2<>(p, a))) .map(p -> new Tuple2<>(p, a)))
.collect(Collectors.toList()); .collect(Collectors.toList());
@ -167,14 +156,13 @@ public class DedupUtility {
.score(normalize(pa.getSurnameString()), normalize(pb.getSurnameString())); .score(normalize(pa.getSurnameString()), normalize(pb.getSurnameString()));
} else { } else {
return new JaroWinkler() return new JaroWinkler()
.score( .score(normalize(pa.getNormalisedFullname()), normalize(pb.getNormalisedFullname()));
normalize(pa.getNormalisedFullname()),
normalize(pb.getNormalisedFullname()));
} }
} }
private static String normalize(final String s) { private static String normalize(final String s) {
return nfd(s).toLowerCase() return nfd(s)
.toLowerCase()
// do not compact the regexes in a single expression, would cause StackOverflowError // do not compact the regexes in a single expression, would cause StackOverflowError
// in case // in case
// of large input strings // of large input strings
@ -219,8 +207,7 @@ public class DedupUtility {
final ISLookUpService isLookUpService = ISLookupClientFactory.getLookUpService(isLookUpUrl); final ISLookUpService isLookUpService = ISLookupClientFactory.getLookUpService(isLookUpUrl);
final String xquery = final String xquery =
String.format( String.format("/RESOURCE_PROFILE[.//DEDUPLICATION/ACTION_SET/@id = '%s']", orchestrator);
"/RESOURCE_PROFILE[.//DEDUPLICATION/ACTION_SET/@id = '%s']", orchestrator);
String orchestratorProfile = isLookUpService.getResourceProfileByQuery(xquery); String orchestratorProfile = isLookUpService.getResourceProfileByQuery(xquery);

View File

@ -19,7 +19,8 @@ public class Deduper implements Serializable {
Map<String, LongAccumulator> accumulators = Map<String, LongAccumulator> accumulators =
DedupUtility.constructAccumulator(config, context.sc()); DedupUtility.constructAccumulator(config, context.sc());
return blocks.flatMapToPair( return blocks
.flatMapToPair(
it -> { it -> {
final SparkReporter reporter = new SparkReporter(accumulators); final SparkReporter reporter = new SparkReporter(accumulators);
new BlockProcessor(config) new BlockProcessor(config)

View File

@ -73,8 +73,7 @@ public class SparkCreateDedupRecord extends AbstractSparkAction {
DedupUtility.createMergeRelPath(workingPath, actionSetId, subEntity); DedupUtility.createMergeRelPath(workingPath, actionSetId, subEntity);
final String entityPath = DedupUtility.createEntityPath(graphBasePath, subEntity); final String entityPath = DedupUtility.createEntityPath(graphBasePath, subEntity);
final Class<OafEntity> clazz = final Class<OafEntity> clazz = ModelSupport.entityTypes.get(EntityType.valueOf(subEntity));
ModelSupport.entityTypes.get(EntityType.valueOf(subEntity));
final DataInfo dataInfo = getDataInfo(dedupConf); final DataInfo dataInfo = getDataInfo(dedupConf);
DedupRecordFactory.createDedupRecord(spark, dataInfo, mergeRelPath, entityPath, clazz) DedupRecordFactory.createDedupRecord(spark, dataInfo, mergeRelPath, entityPath, clazz)
.write() .write()

View File

@ -91,27 +91,16 @@ public class SparkCreateMergeRels extends AbstractSparkAction {
final JavaPairRDD<Object, String> vertexes = final JavaPairRDD<Object, String> vertexes =
sc.textFile(graphBasePath + "/" + subEntity) sc.textFile(graphBasePath + "/" + subEntity)
.map( .map(s -> MapDocumentUtil.getJPathString(dedupConf.getWf().getIdPath(), s))
s -> .mapToPair((PairFunction<String, Object, String>) s -> new Tuple2<>(hash(s), s));
MapDocumentUtil.getJPathString(
dedupConf.getWf().getIdPath(), s))
.mapToPair(
(PairFunction<String, Object, String>)
s -> new Tuple2<>(hash(s), s));
final RDD<Edge<String>> edgeRdd = final RDD<Edge<String>> edgeRdd =
spark.read() spark
.load( .read()
DedupUtility.createSimRelPath( .load(DedupUtility.createSimRelPath(workingPath, actionSetId, subEntity))
workingPath, actionSetId, subEntity))
.as(Encoders.bean(Relation.class)) .as(Encoders.bean(Relation.class))
.javaRDD() .javaRDD()
.map( .map(it -> new Edge<>(hash(it.getSource()), hash(it.getTarget()), it.getRelClass()))
it ->
new Edge<>(
hash(it.getSource()),
hash(it.getTarget()),
it.getRelClass()))
.rdd(); .rdd();
final Dataset<Relation> mergeRels = final Dataset<Relation> mergeRels =

View File

@ -46,9 +46,7 @@ public class SparkCreateSimRels extends AbstractSparkAction {
SparkConf conf = new SparkConf(); SparkConf conf = new SparkConf();
conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer"); conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer");
conf.registerKryoClasses( conf.registerKryoClasses(
new Class[] { new Class[] {MapDocument.class, FieldListImpl.class, FieldValueImpl.class, Block.class});
MapDocument.class, FieldListImpl.class, FieldValueImpl.class, Block.class
});
new SparkCreateSimRels(parser, getSparkSession(conf)) new SparkCreateSimRels(parser, getSparkSession(conf))
.run(ISLookupClientFactory.getLookUpService(parser.get("isLookUpUrl"))); .run(ISLookupClientFactory.getLookUpService(parser.get("isLookUpUrl")));
@ -76,8 +74,7 @@ public class SparkCreateSimRels extends AbstractSparkAction {
final String subEntity = dedupConf.getWf().getSubEntityValue(); final String subEntity = dedupConf.getWf().getSubEntityValue();
log.info("Creating simrels for: '{}'", subEntity); log.info("Creating simrels for: '{}'", subEntity);
final String outputPath = final String outputPath = DedupUtility.createSimRelPath(workingPath, actionSetId, subEntity);
DedupUtility.createSimRelPath(workingPath, actionSetId, subEntity);
removeOutputDir(spark, outputPath); removeOutputDir(spark, outputPath);
JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext());
@ -87,9 +84,7 @@ public class SparkCreateSimRels extends AbstractSparkAction {
.mapToPair( .mapToPair(
(PairFunction<String, String, MapDocument>) (PairFunction<String, String, MapDocument>)
s -> { s -> {
MapDocument d = MapDocument d = MapDocumentUtil.asMapDocumentWithJPath(dedupConf, s);
MapDocumentUtil.asMapDocumentWithJPath(
dedupConf, s);
return new Tuple2<>(d.getIdentifier(), d); return new Tuple2<>(d.getIdentifier(), d);
}); });
@ -102,7 +97,8 @@ public class SparkCreateSimRels extends AbstractSparkAction {
.map(t -> createSimRel(t._1(), t._2(), entity)); .map(t -> createSimRel(t._1(), t._2(), entity));
// save the simrel in the workingdir // save the simrel in the workingdir
spark.createDataset(relations.rdd(), Encoders.bean(Relation.class)) spark
.createDataset(relations.rdd(), Encoders.bean(Relation.class))
.write() .write()
.mode(SaveMode.Append) .mode(SaveMode.Append)
.save(outputPath); .save(outputPath);

View File

@ -62,7 +62,8 @@ public class SparkPropagateRelation extends AbstractSparkAction {
removeOutputDir(spark, outputRelationPath); removeOutputDir(spark, outputRelationPath);
Dataset<Relation> mergeRels = Dataset<Relation> mergeRels =
spark.read() spark
.read()
.load(DedupUtility.createMergeRelPath(workingPath, "*", "*")) .load(DedupUtility.createMergeRelPath(workingPath, "*", "*"))
.as(Encoders.bean(Relation.class)); .as(Encoders.bean(Relation.class));
@ -80,17 +81,11 @@ public class SparkPropagateRelation extends AbstractSparkAction {
final String relationPath = DedupUtility.createEntityPath(graphBasePath, "relation"); final String relationPath = DedupUtility.createEntityPath(graphBasePath, "relation");
Dataset<Relation> rels = Dataset<Relation> rels =
spark.read() spark.read().textFile(relationPath).map(patchRelFn(), Encoders.bean(Relation.class));
.textFile(relationPath)
.map(patchRelFn(), Encoders.bean(Relation.class));
Dataset<Relation> newRels = Dataset<Relation> newRels =
processDataset( processDataset(
processDataset( processDataset(rels, mergedIds, FieldType.SOURCE, getFixRelFn(FieldType.SOURCE)),
rels,
mergedIds,
FieldType.SOURCE,
getFixRelFn(FieldType.SOURCE)),
mergedIds, mergedIds,
FieldType.TARGET, FieldType.TARGET,
getFixRelFn(FieldType.TARGET)) getFixRelFn(FieldType.TARGET))
@ -113,11 +108,10 @@ public class SparkPropagateRelation extends AbstractSparkAction {
MapFunction<Tuple2<Tuple2<String, Relation>, Tuple2<String, String>>, Relation> mapFn) { MapFunction<Tuple2<Tuple2<String, Relation>, Tuple2<String, String>>, Relation> mapFn) {
final Dataset<Tuple2<String, Relation>> mapped = final Dataset<Tuple2<String, Relation>> mapped =
rels.map( rels.map(
(MapFunction<Relation, Tuple2<String, Relation>>) (MapFunction<Relation, Tuple2<String, Relation>>) r -> new Tuple2<>(getId(r, type), r),
r -> new Tuple2<>(getId(r, type), r),
Encoders.tuple(Encoders.STRING(), Encoders.kryo(Relation.class))); Encoders.tuple(Encoders.STRING(), Encoders.kryo(Relation.class)));
return mapped.joinWith( return mapped
mergedIds, mapped.col("_1").equalTo(mergedIds.col("_1")), "left_outer") .joinWith(mergedIds, mapped.col("_1").equalTo(mergedIds.col("_1")), "left_outer")
.map(mapFn, Encoders.bean(Relation.class)); .map(mapFn, Encoders.bean(Relation.class));
} }

View File

@ -74,16 +74,14 @@ public class SparkUpdateEntity extends AbstractSparkAction {
removeOutputDir(spark, outputPath); removeOutputDir(spark, outputPath);
JavaRDD<String> sourceEntity = JavaRDD<String> sourceEntity =
sc.textFile( sc.textFile(DedupUtility.createEntityPath(graphBasePath, type.toString()));
DedupUtility.createEntityPath(graphBasePath, type.toString()));
if (mergeRelExists(workingPath, type.toString())) { if (mergeRelExists(workingPath, type.toString())) {
final String mergeRelPath = final String mergeRelPath =
DedupUtility.createMergeRelPath(workingPath, "*", type.toString()); DedupUtility.createMergeRelPath(workingPath, "*", type.toString());
final String dedupRecordPath = final String dedupRecordPath =
DedupUtility.createDedupRecordPath( DedupUtility.createDedupRecordPath(workingPath, "*", type.toString());
workingPath, "*", type.toString());
final Dataset<Relation> rel = final Dataset<Relation> rel =
spark.read().load(mergeRelPath).as(Encoders.bean(Relation.class)); spark.read().load(mergeRelPath).as(Encoders.bean(Relation.class));
@ -94,25 +92,19 @@ public class SparkUpdateEntity extends AbstractSparkAction {
.distinct() .distinct()
.toJavaRDD() .toJavaRDD()
.mapToPair( .mapToPair(
(PairFunction<Row, String, String>) (PairFunction<Row, String, String>) r -> new Tuple2<>(r.getString(0), "d"));
r -> new Tuple2<>(r.getString(0), "d"));
JavaPairRDD<String, String> entitiesWithId = JavaPairRDD<String, String> entitiesWithId =
sourceEntity.mapToPair( sourceEntity.mapToPair(
(PairFunction<String, String, String>) (PairFunction<String, String, String>)
s -> s -> new Tuple2<>(MapDocumentUtil.getJPathString(IDJSONPATH, s), s));
new Tuple2<>(
MapDocumentUtil.getJPathString(
IDJSONPATH, s),
s));
JavaRDD<String> map = JavaRDD<String> map =
entitiesWithId entitiesWithId
.leftOuterJoin(mergedIds) .leftOuterJoin(mergedIds)
.map( .map(
k -> k ->
k._2()._2().isPresent() k._2()._2().isPresent()
? updateDeletedByInference( ? updateDeletedByInference(k._2()._1(), clazz)
k._2()._1(), clazz)
: k._2()._1()); : k._2()._1());
sourceEntity = map.union(sc.textFile(dedupRecordPath)); sourceEntity = map.union(sc.textFile(dedupRecordPath));
@ -133,9 +125,7 @@ public class SparkUpdateEntity extends AbstractSparkAction {
for (FileStatus fs : fileStatuses) { for (FileStatus fs : fileStatuses) {
if (fs.isDirectory()) if (fs.isDirectory())
if (fileSystem.exists( if (fileSystem.exists(
new Path( new Path(DedupUtility.createMergeRelPath(basePath, fs.getPath().getName(), entity))))
DedupUtility.createMergeRelPath(
basePath, fs.getPath().getName(), entity))))
result = true; result = true;
} }

View File

@ -37,9 +37,7 @@ public class Block implements Serializable {
block.setDocuments( block.setDocuments(
StreamSupport.stream(it.spliterator(), false) StreamSupport.stream(it.spliterator(), false)
.flatMap(b -> b.getDocuments().stream()) .flatMap(b -> b.getDocuments().stream())
.sorted( .sorted(Comparator.comparing(a -> a.getFieldMap().get(orderField).stringValue()))
Comparator.comparing(
a -> a.getFieldMap().get(orderField).stringValue()))
.limit(maxSize) .limit(maxSize)
.collect(Collectors.toCollection(ArrayList::new))); .collect(Collectors.toCollection(ArrayList::new)));
return block; return block;
@ -50,9 +48,7 @@ public class Block implements Serializable {
block.setKey(b1.getKey()); block.setKey(b1.getKey());
block.setDocuments( block.setDocuments(
Stream.concat(b1.getDocuments().stream(), b2.getDocuments().stream()) Stream.concat(b1.getDocuments().stream(), b2.getDocuments().stream())
.sorted( .sorted(Comparator.comparing(a -> a.getFieldMap().get(orderField).stringValue()))
Comparator.comparing(
a -> a.getFieldMap().get(orderField).stringValue()))
.limit(maxSize) .limit(maxSize)
.collect(Collectors.toCollection(ArrayList::new))); .collect(Collectors.toCollection(ArrayList::new)));

View File

@ -18,9 +18,7 @@ public class MergeAuthorTest {
public void setUp() throws Exception { public void setUp() throws Exception {
final String json = final String json =
IOUtils.toString( IOUtils.toString(
this.getClass() this.getClass().getResourceAsStream("/eu/dnetlib/dhp/dedup/json/authors_merge.json"));
.getResourceAsStream(
"/eu/dnetlib/dhp/dedup/json/authors_merge.json"));
publicationsToMerge = publicationsToMerge =
Arrays.asList(json.split("\n")).stream() Arrays.asList(json.split("\n")).stream()

View File

@ -51,21 +51,13 @@ public class SparkDedupTest implements Serializable {
public static void cleanUp() throws IOException, URISyntaxException { public static void cleanUp() throws IOException, URISyntaxException {
testGraphBasePath = testGraphBasePath =
Paths.get( Paths.get(SparkDedupTest.class.getResource("/eu/dnetlib/dhp/dedup/entities").toURI())
SparkDedupTest.class
.getResource("/eu/dnetlib/dhp/dedup/entities")
.toURI())
.toFile() .toFile()
.getAbsolutePath(); .getAbsolutePath();
testOutputBasePath = testOutputBasePath =
createTempDirectory(SparkDedupTest.class.getSimpleName() + "-") createTempDirectory(SparkDedupTest.class.getSimpleName() + "-").toAbsolutePath().toString();
.toAbsolutePath()
.toString();
testDedupGraphBasePath = testDedupGraphBasePath =
createTempDirectory(SparkDedupTest.class.getSimpleName() + "-") createTempDirectory(SparkDedupTest.class.getSimpleName() + "-").toAbsolutePath().toString();
.toAbsolutePath()
.toString();
FileUtils.deleteDirectory(new File(testOutputBasePath)); FileUtils.deleteDirectory(new File(testOutputBasePath));
FileUtils.deleteDirectory(new File(testDedupGraphBasePath)); FileUtils.deleteDirectory(new File(testDedupGraphBasePath));
@ -110,6 +102,20 @@ public class SparkDedupTest implements Serializable {
IOUtils.toString( IOUtils.toString(
SparkDedupTest.class.getResourceAsStream( SparkDedupTest.class.getResourceAsStream(
"/eu/dnetlib/dhp/dedup/conf/sw.curr.conf.json"))); "/eu/dnetlib/dhp/dedup/conf/sw.curr.conf.json")));
lenient()
.when(isLookUpService.getResourceProfileByQuery(Mockito.contains("dataset")))
.thenReturn(
IOUtils.toString(
SparkDedupTest.class.getResourceAsStream(
"/eu/dnetlib/dhp/dedup/conf/ds.curr.conf.json")));
lenient()
.when(isLookUpService.getResourceProfileByQuery(Mockito.contains("otherresearchproduct")))
.thenReturn(
IOUtils.toString(
SparkDedupTest.class.getResourceAsStream(
"/eu/dnetlib/dhp/dedup/conf/orp.curr.conf.json")));
} }
@Test @Test
@ -123,30 +129,45 @@ public class SparkDedupTest implements Serializable {
"/eu/dnetlib/dhp/oa/dedup/createSimRels_parameters.json"))); "/eu/dnetlib/dhp/oa/dedup/createSimRels_parameters.json")));
parser.parseArgument( parser.parseArgument(
new String[] { new String[] {
"-i", testGraphBasePath, "-i",
"-asi", testActionSetId, testGraphBasePath,
"-la", "lookupurl", "-asi",
"-w", testOutputBasePath testActionSetId,
"-la",
"lookupurl",
"-w",
testOutputBasePath
}); });
new SparkCreateSimRels(parser, spark).run(isLookUpService); new SparkCreateSimRels(parser, spark).run(isLookUpService);
long orgs_simrel = long orgs_simrel =
spark.read() spark
.read()
.load(testOutputBasePath + "/" + testActionSetId + "/organization_simrel") .load(testOutputBasePath + "/" + testActionSetId + "/organization_simrel")
.count(); .count();
long pubs_simrel = long pubs_simrel =
spark.read() spark
.read()
.load(testOutputBasePath + "/" + testActionSetId + "/publication_simrel") .load(testOutputBasePath + "/" + testActionSetId + "/publication_simrel")
.count(); .count();
long sw_simrel = long sw_simrel =
spark.read() spark.read().load(testOutputBasePath + "/" + testActionSetId + "/software_simrel").count();
.load(testOutputBasePath + "/" + testActionSetId + "/software_simrel")
long ds_simrel =
spark.read().load(testOutputBasePath + "/" + testActionSetId + "/dataset_simrel").count();
long orp_simrel =
spark
.read()
.load(testOutputBasePath + "/" + testActionSetId + "/otherresearchproduct_simrel")
.count(); .count();
assertEquals(3432, orgs_simrel); assertEquals(3432, orgs_simrel);
assertEquals(7260, pubs_simrel); assertEquals(7152, pubs_simrel);
assertEquals(344, sw_simrel); assertEquals(344, sw_simrel);
assertEquals(458, ds_simrel);
assertEquals(6750, orp_simrel);
} }
@Test @Test
@ -160,30 +181,48 @@ public class SparkDedupTest implements Serializable {
"/eu/dnetlib/dhp/oa/dedup/createCC_parameters.json"))); "/eu/dnetlib/dhp/oa/dedup/createCC_parameters.json")));
parser.parseArgument( parser.parseArgument(
new String[] { new String[] {
"-i", testGraphBasePath, "-i",
"-asi", testActionSetId, testGraphBasePath,
"-la", "lookupurl", "-asi",
"-w", testOutputBasePath testActionSetId,
"-la",
"lookupurl",
"-w",
testOutputBasePath
}); });
new SparkCreateMergeRels(parser, spark).run(isLookUpService); new SparkCreateMergeRels(parser, spark).run(isLookUpService);
long orgs_mergerel = long orgs_mergerel =
spark.read() spark
.read()
.load(testOutputBasePath + "/" + testActionSetId + "/organization_mergerel") .load(testOutputBasePath + "/" + testActionSetId + "/organization_mergerel")
.count(); .count();
long pubs_mergerel = long pubs_mergerel =
spark.read() spark
.read()
.load(testOutputBasePath + "/" + testActionSetId + "/publication_mergerel") .load(testOutputBasePath + "/" + testActionSetId + "/publication_mergerel")
.count(); .count();
long sw_mergerel = long sw_mergerel =
spark.read() spark
.read()
.load(testOutputBasePath + "/" + testActionSetId + "/software_mergerel") .load(testOutputBasePath + "/" + testActionSetId + "/software_mergerel")
.count(); .count();
long ds_mergerel =
spark.read().load(testOutputBasePath + "/" + testActionSetId + "/dataset_mergerel").count();
long orp_mergerel =
spark
.read()
.load(testOutputBasePath + "/" + testActionSetId + "/otherresearchproduct_mergerel")
.count();
assertEquals(1276, orgs_mergerel); assertEquals(1276, orgs_mergerel);
assertEquals(1460, pubs_mergerel); assertEquals(1442, pubs_mergerel);
assertEquals(288, sw_mergerel); assertEquals(288, sw_mergerel);
assertEquals(472, ds_mergerel);
assertEquals(718, orp_mergerel);
} }
@Test @Test
@ -197,35 +236,38 @@ public class SparkDedupTest implements Serializable {
"/eu/dnetlib/dhp/oa/dedup/createDedupRecord_parameters.json"))); "/eu/dnetlib/dhp/oa/dedup/createDedupRecord_parameters.json")));
parser.parseArgument( parser.parseArgument(
new String[] { new String[] {
"-i", testGraphBasePath, "-i",
"-asi", testActionSetId, testGraphBasePath,
"-la", "lookupurl", "-asi",
"-w", testOutputBasePath testActionSetId,
"-la",
"lookupurl",
"-w",
testOutputBasePath
}); });
new SparkCreateDedupRecord(parser, spark).run(isLookUpService); new SparkCreateDedupRecord(parser, spark).run(isLookUpService);
long orgs_deduprecord = long orgs_deduprecord =
jsc.textFile( jsc.textFile(testOutputBasePath + "/" + testActionSetId + "/organization_deduprecord")
testOutputBasePath
+ "/"
+ testActionSetId
+ "/organization_deduprecord")
.count(); .count();
long pubs_deduprecord = long pubs_deduprecord =
jsc.textFile( jsc.textFile(testOutputBasePath + "/" + testActionSetId + "/publication_deduprecord")
testOutputBasePath
+ "/"
+ testActionSetId
+ "/publication_deduprecord")
.count(); .count();
long sw_deduprecord = long sw_deduprecord =
jsc.textFile(testOutputBasePath + "/" + testActionSetId + "/software_deduprecord") jsc.textFile(testOutputBasePath + "/" + testActionSetId + "/software_deduprecord").count();
long ds_deduprecord =
jsc.textFile(testOutputBasePath + "/" + testActionSetId + "/dataset_deduprecord").count();
long orp_deduprecord =
jsc.textFile(
testOutputBasePath + "/" + testActionSetId + "/otherresearchproduct_deduprecord")
.count(); .count();
assertEquals(82, orgs_deduprecord); assertEquals(82, orgs_deduprecord);
assertEquals(66, pubs_deduprecord); assertEquals(66, pubs_deduprecord);
assertEquals(51, sw_deduprecord); assertEquals(51, sw_deduprecord);
assertEquals(96, ds_deduprecord);
assertEquals(89, orp_deduprecord);
} }
@Test @Test
@ -239,9 +281,7 @@ public class SparkDedupTest implements Serializable {
"/eu/dnetlib/dhp/oa/dedup/updateEntity_parameters.json"))); "/eu/dnetlib/dhp/oa/dedup/updateEntity_parameters.json")));
parser.parseArgument( parser.parseArgument(
new String[] { new String[] {
"-i", testGraphBasePath, "-i", testGraphBasePath, "-w", testOutputBasePath, "-o", testDedupGraphBasePath
"-w", testOutputBasePath,
"-o", testDedupGraphBasePath
}); });
new SparkUpdateEntity(parser, spark).run(isLookUpService); new SparkUpdateEntity(parser, spark).run(isLookUpService);
@ -251,9 +291,13 @@ public class SparkDedupTest implements Serializable {
long projects = jsc.textFile(testDedupGraphBasePath + "/project").count(); long projects = jsc.textFile(testDedupGraphBasePath + "/project").count();
long datasource = jsc.textFile(testDedupGraphBasePath + "/datasource").count(); long datasource = jsc.textFile(testDedupGraphBasePath + "/datasource").count();
long softwares = jsc.textFile(testDedupGraphBasePath + "/software").count(); long softwares = jsc.textFile(testDedupGraphBasePath + "/software").count();
long dataset = jsc.textFile(testDedupGraphBasePath + "/dataset").count();
long otherresearchproduct =
jsc.textFile(testDedupGraphBasePath + "/otherresearchproduct").count();
long mergedOrgs = long mergedOrgs =
spark.read() spark
.read()
.load(testOutputBasePath + "/" + testActionSetId + "/organization_mergerel") .load(testOutputBasePath + "/" + testActionSetId + "/organization_mergerel")
.as(Encoders.bean(Relation.class)) .as(Encoders.bean(Relation.class))
.where("relClass=='merges'") .where("relClass=='merges'")
@ -263,7 +307,8 @@ public class SparkDedupTest implements Serializable {
.count(); .count();
long mergedPubs = long mergedPubs =
spark.read() spark
.read()
.load(testOutputBasePath + "/" + testActionSetId + "/publication_mergerel") .load(testOutputBasePath + "/" + testActionSetId + "/publication_mergerel")
.as(Encoders.bean(Relation.class)) .as(Encoders.bean(Relation.class))
.where("relClass=='merges'") .where("relClass=='merges'")
@ -273,7 +318,8 @@ public class SparkDedupTest implements Serializable {
.count(); .count();
long mergedSw = long mergedSw =
spark.read() spark
.read()
.load(testOutputBasePath + "/" + testActionSetId + "/software_mergerel") .load(testOutputBasePath + "/" + testActionSetId + "/software_mergerel")
.as(Encoders.bean(Relation.class)) .as(Encoders.bean(Relation.class))
.where("relClass=='merges'") .where("relClass=='merges'")
@ -282,11 +328,35 @@ public class SparkDedupTest implements Serializable {
.distinct() .distinct()
.count(); .count();
long mergedDs =
spark
.read()
.load(testOutputBasePath + "/" + testActionSetId + "/dataset_mergerel")
.as(Encoders.bean(Relation.class))
.where("relClass=='merges'")
.javaRDD()
.map(Relation::getTarget)
.distinct()
.count();
long mergedOrp =
spark
.read()
.load(testOutputBasePath + "/" + testActionSetId + "/otherresearchproduct_mergerel")
.as(Encoders.bean(Relation.class))
.where("relClass=='merges'")
.javaRDD()
.map(Relation::getTarget)
.distinct()
.count();
assertEquals(897, publications); assertEquals(897, publications);
assertEquals(835, organizations); assertEquals(835, organizations);
assertEquals(100, projects); assertEquals(100, projects);
assertEquals(100, datasource); assertEquals(100, datasource);
assertEquals(200, softwares); assertEquals(200, softwares);
assertEquals(388, dataset);
assertEquals(517, otherresearchproduct);
long deletedOrgs = long deletedOrgs =
jsc.textFile(testDedupGraphBasePath + "/organization") jsc.textFile(testDedupGraphBasePath + "/organization")
@ -303,9 +373,21 @@ public class SparkDedupTest implements Serializable {
.filter(this::isDeletedByInference) .filter(this::isDeletedByInference)
.count(); .count();
long deletedDs =
jsc.textFile(testDedupGraphBasePath + "/dataset")
.filter(this::isDeletedByInference)
.count();
long deletedOrp =
jsc.textFile(testDedupGraphBasePath + "/otherresearchproduct")
.filter(this::isDeletedByInference)
.count();
assertEquals(mergedOrgs, deletedOrgs); assertEquals(mergedOrgs, deletedOrgs);
assertEquals(mergedPubs, deletedPubs); assertEquals(mergedPubs, deletedPubs);
assertEquals(mergedSw, deletedSw); assertEquals(mergedSw, deletedSw);
assertEquals(mergedDs, deletedDs);
assertEquals(mergedOrp, deletedOrp);
} }
@Test @Test
@ -319,9 +401,7 @@ public class SparkDedupTest implements Serializable {
"/eu/dnetlib/dhp/oa/dedup/propagateRelation_parameters.json"))); "/eu/dnetlib/dhp/oa/dedup/propagateRelation_parameters.json")));
parser.parseArgument( parser.parseArgument(
new String[] { new String[] {
"-i", testGraphBasePath, "-i", testGraphBasePath, "-w", testOutputBasePath, "-o", testDedupGraphBasePath
"-w", testOutputBasePath,
"-o", testDedupGraphBasePath
}); });
new SparkPropagateRelation(parser, spark).run(isLookUpService); new SparkPropagateRelation(parser, spark).run(isLookUpService);
@ -332,7 +412,8 @@ public class SparkDedupTest implements Serializable {
// check deletedbyinference // check deletedbyinference
final Dataset<Relation> mergeRels = final Dataset<Relation> mergeRels =
spark.read() spark
.read()
.load(DedupUtility.createMergeRelPath(testOutputBasePath, "*", "*")) .load(DedupUtility.createMergeRelPath(testOutputBasePath, "*", "*"))
.as(Encoders.bean(Relation.class)); .as(Encoders.bean(Relation.class));
final JavaPairRDD<String, String> mergedIds = final JavaPairRDD<String, String> mergedIds =
@ -347,18 +428,10 @@ public class SparkDedupTest implements Serializable {
JavaRDD<String> toCheck = JavaRDD<String> toCheck =
jsc.textFile(testDedupGraphBasePath + "/relation") jsc.textFile(testDedupGraphBasePath + "/relation")
.mapToPair( .mapToPair(json -> new Tuple2<>(MapDocumentUtil.getJPathString("$.source", json), json))
json ->
new Tuple2<>(
MapDocumentUtil.getJPathString("$.source", json),
json))
.join(mergedIds) .join(mergedIds)
.map(t -> t._2()._1()) .map(t -> t._2()._1())
.mapToPair( .mapToPair(json -> new Tuple2<>(MapDocumentUtil.getJPathString("$.target", json), json))
json ->
new Tuple2<>(
MapDocumentUtil.getJPathString("$.target", json),
json))
.join(mergedIds) .join(mergedIds)
.map(t -> t._2()._1()); .map(t -> t._2()._1());

View File

@ -11,7 +11,9 @@
"maxChildren" : "100", "maxChildren" : "100",
"slidingWindowSize" : "200", "slidingWindowSize" : "200",
"rootBuilder" : ["result", "resultProject_outcome_isProducedBy", "resultResult_publicationDataset_isRelatedTo", "resultResult_similarity_isAmongTopNSimilarDocuments", "resultResult_similarity_hasAmongTopNSimilarDocuments", "resultOrganization_affiliation_hasAuthorInstitution", "resultResult_part_hasPart", "resultResult_part_isPartOf", "resultResult_supplement_isSupplementTo", "resultResult_supplement_isSupplementedBy", "resultResult_version_isVersionOf" ], "rootBuilder" : ["result", "resultProject_outcome_isProducedBy", "resultResult_publicationDataset_isRelatedTo", "resultResult_similarity_isAmongTopNSimilarDocuments", "resultResult_similarity_hasAmongTopNSimilarDocuments", "resultOrganization_affiliation_hasAuthorInstitution", "resultResult_part_hasPart", "resultResult_part_isPartOf", "resultResult_supplement_isSupplementTo", "resultResult_supplement_isSupplementedBy", "resultResult_version_isVersionOf" ],
"includeChildren" : "true" "includeChildren" : "true",
"idPath" : "$.id",
"maxIterations" : 20
}, },
"pace" : { "pace" : {
"clustering" : [ "clustering" : [
@ -70,7 +72,8 @@
"field": "title", "field": "title",
"comparator": "levensteinTitle", "comparator": "levensteinTitle",
"weight": 1.0, "weight": 1.0,
"countIfUndefined": "true" "countIfUndefined": "true",
"params": {}
} }
], ],
"threshold": 0.99, "threshold": 0.99,
@ -85,7 +88,7 @@
{ {
"name" : "doi", "name" : "doi",
"type" : "String", "type" : "String",
"path" : "$.pid[@.qualifier.classid = 'doi'].value" "path" : "$.pid[?(@.qualifier.classid == 'doi')].value"
}, },
{ {
"name" : "pid", "name" : "pid",
@ -96,7 +99,7 @@
{ {
"name" : "title", "name" : "title",
"type" : "String", "type" : "String",
"path" : "$.title[@.qualifier.classid = 'main title'].value", "path" : "$.title[?(@.qualifier.classid == 'main title')].value",
"length" : 250, "length" : 250,
"size" : 5 "size" : 5
}, },

View File

@ -11,7 +11,9 @@
"maxChildren" : "100", "maxChildren" : "100",
"slidingWindowSize" : "200", "slidingWindowSize" : "200",
"rootBuilder" : [ "result", "resultProject_outcome_isProducedBy", "resultResult_publicationDataset_isRelatedTo", "resultResult_similarity_isAmongTopNSimilarDocuments", "resultResult_similarity_hasAmongTopNSimilarDocuments", "resultOrganization_affiliation_hasAuthorInstitution", "resultResult_part_hasPart", "resultResult_part_isPartOf", "resultResult_supplement_isSupplementTo", "resultResult_supplement_isSupplementedBy", "resultResult_version_isVersionOf" ], "rootBuilder" : [ "result", "resultProject_outcome_isProducedBy", "resultResult_publicationDataset_isRelatedTo", "resultResult_similarity_isAmongTopNSimilarDocuments", "resultResult_similarity_hasAmongTopNSimilarDocuments", "resultOrganization_affiliation_hasAuthorInstitution", "resultResult_part_hasPart", "resultResult_part_isPartOf", "resultResult_supplement_isSupplementTo", "resultResult_supplement_isSupplementedBy", "resultResult_version_isVersionOf" ],
"includeChildren" : "true" "includeChildren" : "true",
"idPath" : "$.id",
"maxIterations" : 20
}, },
"pace" : { "pace" : {
"clustering" : [ "clustering" : [
@ -70,7 +72,8 @@
"field": "title", "field": "title",
"comparator": "levensteinTitle", "comparator": "levensteinTitle",
"weight": 1.0, "weight": 1.0,
"countIfUndefined": "true" "countIfUndefined": "true",
"params": {}
} }
], ],
"threshold": 0.99, "threshold": 0.99,
@ -85,7 +88,7 @@
{ {
"name" : "doi", "name" : "doi",
"type" : "String", "type" : "String",
"path" : "$.pid[@.qualifier.classid = 'doi'}].value" "path" : "$.pid[?(@.qualifier.classid == 'doi')].value"
}, },
{ {
"name" : "pid", "name" : "pid",
@ -96,7 +99,7 @@
{ {
"name" : "title", "name" : "title",
"type" : "String", "type" : "String",
"path" : "$.title[@.qualifier.classid = 'main title'].value", "path" : "$.title[?(@.qualifier.classid == 'main title')].value",
"length" : 250, "length" : 250,
"size" : 5 "size" : 5
}, },

View File

@ -11,7 +11,9 @@
"maxChildren" : "100", "maxChildren" : "100",
"slidingWindowSize" : "200", "slidingWindowSize" : "200",
"rootBuilder" : [ "result", "resultProject_outcome_isProducedBy", "resultResult_publicationDataset_isRelatedTo", "resultResult_similarity_isAmongTopNSimilarDocuments", "resultResult_similarity_hasAmongTopNSimilarDocuments", "resultOrganization_affiliation_hasAuthorInstitution", "resultResult_part_hasPart", "resultResult_part_isPartOf", "resultResult_supplement_isSupplementTo", "resultResult_supplement_isSupplementedBy", "resultResult_version_isVersionOf" ], "rootBuilder" : [ "result", "resultProject_outcome_isProducedBy", "resultResult_publicationDataset_isRelatedTo", "resultResult_similarity_isAmongTopNSimilarDocuments", "resultResult_similarity_hasAmongTopNSimilarDocuments", "resultOrganization_affiliation_hasAuthorInstitution", "resultResult_part_hasPart", "resultResult_part_isPartOf", "resultResult_supplement_isSupplementTo", "resultResult_supplement_isSupplementedBy", "resultResult_version_isVersionOf" ],
"includeChildren" : "true" "includeChildren" : "true",
"idPath" : "$.id",
"maxIterations" : 20
}, },
"pace" : { "pace" : {
"clustering" : [ "clustering" : [

File diff suppressed because one or more lines are too long

View File

@ -1,500 +0,0 @@
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "UNKNOWN", "classname": "UNKNOWN", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|openaire____::007a4870b31056f89b768cf508e1538e", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|4ScienceCRIS::f66f1bd369679b5b077dcdf006089556"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "UNKNOWN", "classname": "UNKNOWN", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::9ea9c0996c87e1dc7fc69f94b5ed0010", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|CRIS_UNS____::f66f1bd369679b5b077dcdf006089556"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "UNKNOWN", "classname": "UNKNOWN", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|openaire____::d0bbea1f5bed5864d1904eb602e608a6", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|CRIS_UNS____::f66f1bd369679b5b077dcdf006089556"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "UNKNOWN", "classname": "UNKNOWN", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|openaire____::c24a458004a31f9687089ea3d249de51", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|CSC_________::a2b9ce8435390bcbfc05f3cae3948747"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "UNKNOWN", "classname": "UNKNOWN", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::8de0f5a712997aafe0d794a53e51b75a", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|MetisRadboud::f66f1bd369679b5b077dcdf006089556"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "UNKNOWN", "classname": "UNKNOWN", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|openaire____::b58bdbe8ae5acead04fc76777d2f8017", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|MetisRadboud::f66f1bd369679b5b077dcdf006089556"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "UNKNOWN", "classname": "UNKNOWN", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::7b0e908419508cafb77acfa8ace3af84", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|NARCIS__cris::f66f1bd369679b5b077dcdf006089556"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "UNKNOWN", "classname": "UNKNOWN", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|openaire____::c978e29d3b2ddf4f0c2b6e60d6613426", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|NARCIS__cris::f66f1bd369679b5b077dcdf006089556"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "UNKNOWN", "classname": "UNKNOWN", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::3306689f53b33bac1f1b23a58a0b621b", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|OpenstarTs__::f66f1bd369679b5b077dcdf006089556"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "UNKNOWN", "classname": "UNKNOWN", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|openaire____::fc7459b8fed8c0d47947fe04275251c0", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|OpenstarTs__::f66f1bd369679b5b077dcdf006089556"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "UNKNOWN", "classname": "UNKNOWN", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|openaire____::89bab7c5a227fc27b2b9cadf475a6b71", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|UnityFVG____::f66f1bd369679b5b077dcdf006089556"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "UNKNOWN", "classname": "UNKNOWN", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::47ad6f6b1a95349318679227b28f0c82", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|VTTRsInSsCrs::f66f1bd369679b5b077dcdf006089556"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "UNKNOWN", "classname": "UNKNOWN", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|openaire____::735915884eb439d42953372eaf934782", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|VTTRsInSsCrs::f66f1bd369679b5b077dcdf006089556"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "UNKNOWN", "classname": "UNKNOWN", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::33ec6128fcbe39e44e4cae712ae19e43", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|WarsawUniWUT::f66f1bd369679b5b077dcdf006089556"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "UNKNOWN", "classname": "UNKNOWN", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|openaire____::c004fe42ad769bb2afccc59ea8cd4f77", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|WarsawUniWUT::f66f1bd369679b5b077dcdf006089556"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "user:insert", "classname": "user:insert", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|openaire____::5b6b1502c8296b0c1af0e61d0d3ba915", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|crossref____::b72caa821c05e39fc6849f439171478d"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::34d4c900fb41dbf77b727356d4dda3d3", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00017183dc4c858fb77541985323a4ef"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::b29ae16abb2343c6ffc152666b24ea95", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::000372ccd6d25b515cb975adc84c26b8"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::621c930e0986a1ecd4d88eaa3532579e", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00041da13243fed6363ec8f6f4bbcb36"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::621c930e0986a1ecd4d88eaa3532579e", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::0009e71a03314001d4b77a9b175487ce"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::10b070ecab805043828d9143dd2b259d", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::000b1311090c90704ee1a28995bb82fa"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::c3dfb208a9484ded2baacf5229a7693e", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::000b1311090c90704ee1a28995bb82fa"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::bb8495f3a6e6b91382e05bb41e867574", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::000b4e6741f4d14514675ea70f527504"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::2f0da7a38c24be8b0c78a0147e582779", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::000b8a6d4849b3406539aa4ac6c88364"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::79de1cfaa7bf2b194d13d3d8fbe2b452", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::000b8a6d4849b3406539aa4ac6c88364"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::6b252dff7034bd7ecf3701cee65e82ff", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::000c0894153a10fb499922b64d2631f9"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::b9508aa100f6f516a6ac61ca4d6958a1", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::0012bc660870f38be1918b900a70e90e"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::05c768e457a1da1c5aceb5647aa4dcf9", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::001cfaf3e157c7a69d21354a219cd639"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::dae9280b08244875520ce34c49e96fd7", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::001cfaf3e157c7a69d21354a219cd639"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::680d309b8c09c2cd918dcbe459b97985", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::003429862a22aff4ed245cda9378319d"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::2991efbf464deba18c60e2ad90905319", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::003429862a22aff4ed245cda9378319d"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::5a899511f4c8229d549c2f49757a7bc8", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::0034f7a07fda4c4990f51d078fe0f962"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::9a4dacf17599882df9d5e99683289005", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::004b368d885ae451396b78223d8e5317"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::f029af46eb5feda9146bed64d0fd4f86", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00593904f1ec795c6ffd7942bd26aae5"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::7fa53c9a8546ad1aedaf4f6a8f57bfa4", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::0064c5276758a35d22f77dc3300277ab"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::ff57a48219776fd057fdabf2027a38f8", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::006a83bf8638831b30bf07740060dd0a"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::3e6df17b8e8d631bacf12ef28d7c4ddb", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::006a83bf8638831b30bf07740060dd0a"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::05c768e457a1da1c5aceb5647aa4dcf9", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::006c0bca04df3ca6c5c3ea58dbb3a51b"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::dae9280b08244875520ce34c49e96fd7", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::006c0bca04df3ca6c5c3ea58dbb3a51b"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::5797c898cf53622199bd45df9dcf2564", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::006cb051d0987068ee2b08390c943fb2"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::89b0fed0e46e2a72deba079414c4dadd", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::007220405c9aaf3a8e245523b7d6ec1c"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::0e35c643a0ca2205bab31d1f231b6ac9", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::007220405c9aaf3a8e245523b7d6ec1c"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::1b965e2c0c53e5526d269d63bcfa0ae6", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00760dc5459e30b7ff3aa830e7dae28a"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::1cfe6d8849281050c38460108f73be79", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00760dc5459e30b7ff3aa830e7dae28a"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::f3efc58b585c83519a9b6433d07758a5", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::0077259b02961550861f940e1eaa0ee1"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::f60ad7b6ff703e07444e783c61bc2df6", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::0077f203641ebf33eee9e92544d20c51"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::2211118adf702ff5b7080a86b998d5d4", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::0077f203641ebf33eee9e92544d20c51"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::26352bfa849acb1764a4936963ad98fa", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::0078c4f84cad2e9d1bdac7adb2554724"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::49c32518a501912ab2b73a216a0b337f", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::0078fe75684a208ecd7a7b8850f6931e"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::297d47eac742de8879adc3366ab23fa8", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::0078fe75684a208ecd7a7b8850f6931e"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::52c6de60de377f3edd477b41435631ef", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00811f8ce7ee63ba5060020f6f56f69d"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::083156918e5e712fcae766a360c1dcb8", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::0086c11b59a9c365480d9ec6a6bcaa0a"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::daec25411bc4866f9b31241a43599a66", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::008c6b34d61e821e3f57817e5a624af8"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::ca006a0c784355c122ce78a6e31c6390", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::008c6b34d61e821e3f57817e5a624af8"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::568abbe64aa42599817b16a5a979ba80", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::0091ba4ec9dd467bacfedfed1818be4b"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::ae919bb7b65c8b9d5401b282273a15a8", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::0091ba4ec9dd467bacfedfed1818be4b"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::5a7a17f9e8294d9874aa4986c3cfcddd", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::009720144819e8698f9a8da4125643d1"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::bc194cbfb3f35d0764843d0966c8753f", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00973d9f42d901657fa15c87f0a218e7"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::a4a42a62202485dfcf49173b0080e112", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::0099a521a45130624c3aa82452f5f7c4"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::46fd117f16fa14b2b6fba3e5a6c3fa51", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::0099a521a45130624c3aa82452f5f7c4"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::799c05401b21557a710fd685f659e853", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::009a4dc26a206e6fa2d4618f9cc55e6c"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::d7ba170afcf7c47b5848991a72c1dd8d", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::009a4dc26a206e6fa2d4618f9cc55e6c"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::e1bdeff13ce8a2f8b2dd7f8a5f3e7db8", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00a194540c45cc7671190622d92393c0"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::f2d0cb3d2d077f7384455c32790587ae", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00a194540c45cc7671190622d92393c0"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::13a8217fff78cbaee712e6b3e3da763c", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00a750d36936b5e73c56a88898fba19b"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::835e4e6f18443ab4c881451ca63fa6d2", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00a750d36936b5e73c56a88898fba19b"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::5a693c847be2bb04bea2df72dba2fac5", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00a91ecc9411397a11ef3b9c034664c9"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::2a4826e109dece13312f6c3def837f32", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00ab623533614b60f1de842978f2daf5"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::621c930e0986a1ecd4d88eaa3532579e", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00ac7d97a50faef0c7cabe81611d2096"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::03ceb27da73cbe03b87fd3802bbe4ce5", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00b14a708afbd9c48456a52ed0fc26b7"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::46a4942a4707e842611278cfa26789f9", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00b269a48b50c8e6fdd058cc6e0c419c"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::4104143817eaec67d3a5af0f3595c94e", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00b30c55c9ba5ce3ca16077396904863"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::b726d6b1edd6ec24f3091f9298c7c47b", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00b5f0a8265d36d405b60b55935b6d37"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::3bc101d462e967a2a16e4c99f9aadefc", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00b9e39aa791b59cafdd1827780c3230"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::63453d80fc898e977662a87a8a5b10bd", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00b9e39aa791b59cafdd1827780c3230"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::de7c46c96ffb19dc6ad927b5f0b94f35", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00b9e39aa791b59cafdd1827780c3230"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::95a12024aa306104ef6fa5cf477540b4", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00ba5145ec65ce502add3c0caffb5c0d"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::b72cc708bc4716940b3de256b6dac748", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00bef6da6ce8712f31f992ddb57b6300"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::621c930e0986a1ecd4d88eaa3532579e", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00c27992301b7ed909d57011d2a3b9da"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::621c930e0986a1ecd4d88eaa3532579e", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00c64547717db8e9576109df0987ad55"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::cd07e6c09886e59266fdbae32a9e319b", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00cfb0382d4b438ffc1f35af60cc44d9"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::56d3da3eb3e1f80de941f80500cca062", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00cfb0382d4b438ffc1f35af60cc44d9"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::a861fe3d4f669515c0e3321d79ebb6bb", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00d1c3fb86ce95b2293fe013b029eae7"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::b1201a67b8dec64174c6e0ee405a9671", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00d1c3fb86ce95b2293fe013b029eae7"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::45881a85bcb591251a1ccbfbca4f85f6", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00d55e44f36c9c5eb8bb5aa6de489bd6"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::aeeac603093f70ffd9bb5a5ace62d535", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00d8eb00e66a379c6bddb1f6966f7d8f"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::d21bc32c26c9ebdd4aafefb46f694c63", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00d8eb00e66a379c6bddb1f6966f7d8f"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::cd6f3318d403937e1c8a6b969277251e", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00dd4c67ad03e193c9604f569859b3e4"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::fa9bf29dbc6ea22c7b14aad5b69b634c", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00dd4c67ad03e193c9604f569859b3e4"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::5aa6201b003948544f55e8c085073fc3", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00dfb8436a44bd226f015402152144d6"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::4ec6ffed90e264448fcfb3105d85fdf3", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00dfb8436a44bd226f015402152144d6"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::7c7ab05f52fd2e775ae32365b2cc97ce", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00e131499088976ef6ffe74801dc9beb"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::1aa56184485d52d3f0041004cb05b0e6", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00e131499088976ef6ffe74801dc9beb"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::621c930e0986a1ecd4d88eaa3532579e", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00e133952264c4f25848514623bce561"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::62dc071ed3453356a2f77cfba1a46458", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00e2e1f3caa6b25224db47c94bb94b60"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::a80e053b2c64b0f1c7655fcc6e9229ca", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00e5c60ec2c4292fd3ddd31edde7cbd1"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::a39901360df33f2df1292aa76a5ad3d1", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00e9c954491527ae60142e83aed27750"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::21abe5a91c2949aba6ef77033a5f98f3", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00eac934a34bf16c5f0de8ce743bd0b4"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|dedup_wf_001::5614cb4fbc9f3be07aedd6d627470e58", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00eb4e57e351343377f693ee714500b4"}
{"subRelType": "provision", "relClass": "provides", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:entityregistry", "classname": "sysimport:crosswalk:entityregistry", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "20|doajarticles::c3534dbd02b4a4aa35f235671f7631aa", "lastupdatetimestamp": 0, "relType": "datasourceOrganization", "source": "10|doajarticles::00eb4e57e351343377f693ee714500b4"}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::032546390e513e50571bf2aae948548f", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::04516dab6afef5fc35f02066c192ac1c", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::51fa34d45c0025e25f996420d70de235", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::04516dab6afef5fc35f02066c192ac1c", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::0b2e661ec89ddc6cb9b30b28307ff6aa", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::05c768e457a1da1c5aceb5647aa4dcf9", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::05c768e457a1da1c5aceb5647aa4dcf9", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::e456762c75e0746535d29e41d82c939c", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::05c768e457a1da1c5aceb5647aa4dcf9", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::0983d69a6730dc41044fd0743b587ee3", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::05c7a904114ccfb1b97b1339b7835c8b", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::0720415ffbc99b3458b2f3840cc73b62", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::8e3c2b1d42d8b61ed72e48993cb1b4d3", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::07ee7d71edbf720f67faeedd40f65b03", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::08dc08745f94b4c8cc751a2a4f103c18", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::82c06770a667ab88e836d1bac7f3b568", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::0b56d3834f4c664ecbc01166ff46501e", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::f450c6d794e83ac07dd5c7db525866cc", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::0b56d3834f4c664ecbc01166ff46501e", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::0d97dee7c1545a893c30d0891698d5b3", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::82c85a2d212869bed91d323a0de1c2ae", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::11b3665916997290ff26513ab91be91d", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::1229dba61e41540814f56894d4307a34", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::1556435bcf0f75b3e4e6d684895857f5", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::1a77a3bba737f8b669dcf330ad3b37e2", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::19630716e115cf993d48e91089df2548", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::ceb0e80cefc02755597cfc1221fc5582", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::19e6775e976d8bc0fd7da04a044f8839", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::2ccb2a09ba46716bdb3443d014e9e370", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::1aea534336d3d6a4a52a4ad6d5eb12c6", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::1b286d4d5e72429514ceeca83a305022", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::1a77a3bba737f8b669dcf330ad3b37e2", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::1ca1e4b6a26b69a9edc0c7a4ffed9a34", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::51fa34d45c0025e25f996420d70de235", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::1ca1e4b6a26b69a9edc0c7a4ffed9a34", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::7aa6642a57ad159515c2a8dae4f60a29", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::1ca1e4b6a26b69a9edc0c7a4ffed9a34", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::97c2ec88f4aca7176ef1ac6c13f42cec", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::1ca1e4b6a26b69a9edc0c7a4ffed9a34", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::1da4740470bb3c88e22d6ed0da0f33f4", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::205a03c5d07aa4a185577cab3791d78f", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::20a54d11c9d8ae1d3cd2bf972316cbf9", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::ef6b8bb53959cb3c60a5676bc7b65813", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::20a54d11c9d8ae1d3cd2bf972316cbf9", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::97c2ec88f4aca7176ef1ac6c13f42cec", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::23ee0132243f46e55797fa503a46c687", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::26a0077a9d1801fe43299b67c4160b46", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::2745bbccc9cac33459893038bffe45d7", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::8e3c2b1d42d8b61ed72e48993cb1b4d3", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::2938b5750bfbdf5505826ac2019c54d5", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::2ab7c5432f0c6bccf07ad092285a85e4", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::a2245a07ab309fffb2b5ee4609786ae6", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::30f7dec727fbd2a220fa6b8e40d86591", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::0b2e661ec89ddc6cb9b30b28307ff6aa", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::3149a35e137096edddfa52287294de51", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::315c878f7be57ec038e471ab7e0dc8c9", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::3306689f53b33bac1f1b23a58a0b621b", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::7f62734c4f95afec372f5ba6207bba7e", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::36469c31f93a427b0904e5c51f47db46", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::1a77a3bba737f8b669dcf330ad3b37e2", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::3ad50a5a0fd25f2d9fb39a181a5134c2", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::3baa9f4534c01474ba40c7a139e44af7", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::390289878e0536bcacb22a9607379f0e", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::3bc101d462e967a2a16e4c99f9aadefc", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::5b691841dd672fe01255b56f5fa0e1e5", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::3c3cc8ce9dd28a7821013d5c2c291b1b", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::1f5a73f76864da547247aedd3e0380cb", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::3da0055e881c7b42617228df68d2c2f6", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::413c585a5543afd4bc89aac0a3ec3e79", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::4306efdbb48955ef71aa5c642364a404", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::447b468b81e1ce5384424bcb2846b654", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::45832644cc25d1a769ffb4252726c99a", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::45b3a9db733c17ad77c1a83a74de8310", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::4746df4ff8bbb7e991ad343ccff8bbc7", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::85186eb68076bfdfd2760b8e93d06b89", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::4746df4ff8bbb7e991ad343ccff8bbc7", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::8e3c2b1d42d8b61ed72e48993cb1b4d3", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::4746df4ff8bbb7e991ad343ccff8bbc7", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::49f934e9862b923ab963e678b84a7fd1", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::82c85a2d212869bed91d323a0de1c2ae", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::49f934e9862b923ab963e678b84a7fd1", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::4be369ddbf69616317f6938267c92308", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::1f5a73f76864da547247aedd3e0380cb", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::4c03ccb407378f03790e47e3961e4439", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::51ae5ab5e715ceababfad56c29f3a728", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::ccc242a838a8fcce53e891a1dd2f29f5", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::51ae5ab5e715ceababfad56c29f3a728", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::f450c6d794e83ac07dd5c7db525866cc", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::52bee1baba256cccbef9843ae15015d2", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::a2245a07ab309fffb2b5ee4609786ae6", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::52ffa32b040bae0423ab577ff43436a4", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::57a6b443b007549287fa792f6c51107c", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::5d27a041fd612f6872becec80bcb336f", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::5d8f1ef4692f7f841ce166f38e62eb97", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::8e3c2b1d42d8b61ed72e48993cb1b4d3", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::60329b6d374489d5adb71b2b5bc67362", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::1a77a3bba737f8b669dcf330ad3b37e2", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::614c344c30a370bf449d99487c4cd66f", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::627f5fdf7aa856a740e4351d917971c2", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::5ce86bba1ef322c0d3cd4931d3c82f79", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::646f14555ea42b260499239a7231b285", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::8e3c2b1d42d8b61ed72e48993cb1b4d3", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::65cb1cc0e91cf4360f4597f976961011", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::6677cac9bce38acbfc9654177edfa3ba", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::67f983a98e2c0cc0121e2db46d2bd00a", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::a97489ad5aca40d73b83fd47755043e7", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::68b0c9183b853eff41fd6209a3bc501c", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::8e3c2b1d42d8b61ed72e48993cb1b4d3", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::68ca097345ddb234ee9fafae61d5331f", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::6a6c5f4565d2f28240a11544fbc9213e", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::0b2e661ec89ddc6cb9b30b28307ff6aa", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::6b6504f49979de986a6d4b6acf23a196", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::b59ae6beb5966a3220f6fcbd4f28f0ed", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::6b6504f49979de986a6d4b6acf23a196", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::bd4c0311cb81aed4ecef41f519750f37", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::6b6504f49979de986a6d4b6acf23a196", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::6ccea2a64b7731068ef823bb42492b6a", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::8e3c2b1d42d8b61ed72e48993cb1b4d3", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::6e47870e1625c4e5d000200561761b5e", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::5ce86bba1ef322c0d3cd4931d3c82f79", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::6e79c6871e6ca4c1cd875a419708068c", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::0e8dffb39fcf0b168c35fab87c3af7b5", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::74dcf5270713bb2bb9d362ae577ff7b6", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::8cc1b79b3532ff7ddc50dd8b68dc88ed", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::74dcf5270713bb2bb9d362ae577ff7b6", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::bd4c0311cb81aed4ecef41f519750f37", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::74dcf5270713bb2bb9d362ae577ff7b6", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::ccc242a838a8fcce53e891a1dd2f29f5", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::74dcf5270713bb2bb9d362ae577ff7b6", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::75075452b4565376339908bcff5e5ffa", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::a97489ad5aca40d73b83fd47755043e7", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::77212d90497a44cf587636a105612728", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::fa3571e07f6d07c6368b17c78e449c1e", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::7ac05bb1cc16618bc40753bccd1883b7", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::7b118dab509f49b4fbd6dccfdbc479af", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::7e131ad38fd0af9ac2bf2c1adb07e15c", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::855720f4e86ee9d06438f13ce7f0f214", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::8c05abe4d8f889305207a845e9e31d9d", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::2ccb2a09ba46716bdb3443d014e9e370", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::8caadf221755dd3a90980324982ca106", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::e456762c75e0746535d29e41d82c939c", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::8caadf221755dd3a90980324982ca106", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::1a77a3bba737f8b669dcf330ad3b37e2", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::9070e37fc6f8330a0499d2c8b64894dd", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::1f5a73f76864da547247aedd3e0380cb", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::9070e37fc6f8330a0499d2c8b64894dd", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::94a9ba737b5932534de7a4b0311a80ae", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::5ce86bba1ef322c0d3cd4931d3c82f79", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::96ada508ea5d85a1e516bf9799413906", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::9817c18e1b4f533550f6bd56ac158d85", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::0e8dffb39fcf0b168c35fab87c3af7b5", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::98f324818b4ff9fbad09063a872b800c", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::992e8d520eb7c51142608e2124d083f3", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::4baa4bda6590d6ee24693df2714c5b60", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::9c2eaeb602a49a0cac406a211442b6f5", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::9e079eb20b42035f41ad56d346f976e4", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::eae56ad75d7025d69a3002748c7d7ad3", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::a042522573e8c668d9c578021d260438", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::a660de6608c4d0fa9abb016404a50f56", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::a7b8789bad55aca97bb1545368d7946a", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::a838328091dc2783511292b7a269a46d", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::ad897ce2218f20e03694737f37becba2", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::adce597e391c11282974b0046d77edc9", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::51fa34d45c0025e25f996420d70de235", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::aec4db95e6d3385b47a3133a230a1492", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::b77530265c14518e178db52f1d7e2e15", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::bbc84ec5bc805ed4a5a33fa5b2db270d", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::bd309d137c3a9ad8d481fe695b1ce470", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::0e8dffb39fcf0b168c35fab87c3af7b5", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::bedaac70b7a4acb23adb6c675380afce", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::bfdd0ee5f6100cdf682129c395b2e06b", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::c1b81dadf1e4cbf23a61833ff9ae8a31", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::0e8dffb39fcf0b168c35fab87c3af7b5", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::c772d1171af9168ceef7ddc1fba9c3a8", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::56d0716c831a0976ac9d5e30ea78fe45", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::c772d1171af9168ceef7ddc1fba9c3a8", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::c9d5a195ab6a61a65053cdb919996a7c", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::c772d1171af9168ceef7ddc1fba9c3a8", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::c7fcd2afb21f298fec88399e05b69646", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::cd401423c20c73a4156ce4e3692a53b4", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::cde44e033674e3238802d5dffe0048ef", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::4e10cbfa6e807147244b4385675c2b97", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::cde44e033674e3238802d5dffe0048ef", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::82c85a2d212869bed91d323a0de1c2ae", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::cde44e033674e3238802d5dffe0048ef", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::a416d9f43615710b671041ea7a498efb", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::cde44e033674e3238802d5dffe0048ef", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::ceee518eca7b7e1ef7f20c872b493c8f", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::8e3c2b1d42d8b61ed72e48993cb1b4d3", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::d03953ee3556851a284da16607b9551a", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::dc3a6f93b2cc529cd247a255b5127525", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::9026257ed41f04f79db83fefa71e2bee", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::ddc5aa3b4faa7f3115d5ca5a9c969210", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::0b2e661ec89ddc6cb9b30b28307ff6aa", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::dea64e77d4b5746cc7e042a87aaad5a1", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::dfbebe4db0f095721aed3641644251ec", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::dfc82485e83334c8775974a74d548d1d", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::e182518bb370e3fca13ded61494578e7", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::e18898dc2c41d54838b42a6aeb07e0dd", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::4604cfae1cf6ca6d319b395b061b8409", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::e18898dc2c41d54838b42a6aeb07e0dd", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::e2f68db0a65aa58f19e90087fba5ed98", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::e6051fcfa43a1943edbcced678428f55", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::e7d8a9c47d600ef750cf9ec8f1f91fad", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::e80c2c636e012af370ea7a91157a58b9", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::8cc1b79b3532ff7ddc50dd8b68dc88ed", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::ed04b26649eb60955374aebf5ec6c22c", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::ef8a0bcee460621f14be8da5416b3b30", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::8e3c2b1d42d8b61ed72e48993cb1b4d3", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::f9adf8c975701a29c345e2074bf12b37", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::fa15bc19364e4fcca90fd7a96e2152c7", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::ffe6cb3e565703fc22f5b722a7593ce6", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::7f62734c4f95afec372f5ba6207bba7e", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|dedup_wf_001::ffe6cb3e565703fc22f5b722a7593ce6", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::8e3c2b1d42d8b61ed72e48993cb1b4d3", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::0172a9065fd8f758ee910ed6d2b5c4a0", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::02e3aff4990fac67034e55372a153e46", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::03950920e33983ffad3c4310c6598aea", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::4baa4bda6590d6ee24693df2714c5b60", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::08887e31f319151e5556c5a07fe68309", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::0ab27eb1962e8b1e44391f7ed91a7583", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::0fd5213a2fb5abf9fcf43f331e75b853", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::ccc242a838a8fcce53e891a1dd2f29f5", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::0fd5213a2fb5abf9fcf43f331e75b853", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::142fe435a89b0922d3f76e0f5b97a392", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::1a0e7745d90106030fb1acf9499ceeee", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::51fa34d45c0025e25f996420d70de235", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::1a9a2f1907c01d8ad3bcd8c8b9576bde", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::5ce86bba1ef322c0d3cd4931d3c82f79", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::1c91c72cb30135396dc914bf1d5998a0", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::0b2e661ec89ddc6cb9b30b28307ff6aa", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::1f4f5d7b32b2e75e7d3bd66858c1a378", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::a97489ad5aca40d73b83fd47755043e7", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::1ff765efd8b80b8321d8a74f9f3bde8d", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::1f5a73f76864da547247aedd3e0380cb", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::2077071c60cda0984c949eaf70963291", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::22be11c58dec87f626d4bef49fce57f2", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::28e561a5a48afb0cb27a9feaaa0ffbd7", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::29b130382626bc90f5e0823af18dd527", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::2a6f7a10c3da83905b907db82280fa00", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::0983d69a6730dc41044fd0743b587ee3", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::2b22b7ee6ead868ae0783fc5ad47d6e1", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::2c30a6f774324bd7903dbaa715cfdf0d", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::3551c7088efde3f9fbf9bda3b331df36", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::fa3571e07f6d07c6368b17c78e449c1e", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::358b69a2804dece66f53178a60e2d51e", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::51fa34d45c0025e25f996420d70de235", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::384077000582936f92437c2dae583dd0", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::3851325093df947b200e0148463e3699", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::39a08ed1a1cc41707f45abfb47236f19", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::3acbafcc02df877b8853970c40f84200", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::3c2af15d04318d6da04e6fcaba22d3f1", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::eae56ad75d7025d69a3002748c7d7ad3", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::3cb620c2631e3edd65f6d4ec1437610f", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::3ccb37af131035553be5c987a34b05ab", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::8cc1b79b3532ff7ddc50dd8b68dc88ed", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::3d6606340395719c8c92ae24bbcfe71f", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::40ecf9fa35271092cf7ba7e6f7d0cdd2", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::4e10cbfa6e807147244b4385675c2b97", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::4235bd5ab9f41b77f28d8b4ff60206b0", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::a416d9f43615710b671041ea7a498efb", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::4235bd5ab9f41b77f28d8b4ff60206b0", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::4268ed291d47083c7c3fc68ef32a2470", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::8e3c2b1d42d8b61ed72e48993cb1b4d3", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::42d52df6625de37ba44f2a260dcf9907", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::9e5a3b82d43b525ad24003db7ff776b9", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::42f1d70e1520261e6516ba79d852dc9c", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::4776bfc4adba080ec179e82b2eda878f", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::82c85a2d212869bed91d323a0de1c2ae", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::4896db1dad61d487c347885b1cc4dabc", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::492c3e29b5e00a26942e0fdb0fc8a813", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::49a1732388c393a0b676c9b56f475954", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::5ce86bba1ef322c0d3cd4931d3c82f79", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::4c6a5a440a4bc2f0d64560b60dd53163", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::0e8dffb39fcf0b168c35fab87c3af7b5", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::4f2e61e85c8af14a1c51aa9d4b93fdb4", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::52947fedc6246f5e70ff95c352938871", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::ef6b8bb53959cb3c60a5676bc7b65813", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::52947fedc6246f5e70ff95c352938871", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::5875a62618896ee925f697450b4e7e3a", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::1a77a3bba737f8b669dcf330ad3b37e2", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::588fdd9286e827e8b47e05e4132f4323", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::5a37440ac5f16f52f3262c39f9114342", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::5ae708f5b24ea3576807f6dd0039c83a", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::5d78ae5f54c2a8656cfdc721626a63e5", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::a97489ad5aca40d73b83fd47755043e7", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::5dd5d451d57c16a15075c48aaca55f03", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::0b2e661ec89ddc6cb9b30b28307ff6aa", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::5f666d8c3d7f3cd660a177adccfb1722", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::5f666d8c3d7f3cd660a177adccfb1722", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::e456762c75e0746535d29e41d82c939c", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::5f666d8c3d7f3cd660a177adccfb1722", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::6106a0f4f97998bfccb4be30b81b5308", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::4604cfae1cf6ca6d319b395b061b8409", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::61e2413903832f519617768300fd5657", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::62498ce8534c6ac3d09575dd290fc378", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::51fa34d45c0025e25f996420d70de235", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::62498ce8534c6ac3d09575dd290fc378", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::64cc8caf5dd7b97932b18d843aa2bfd0", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::65517e8b4c4a08a77ce6e48361de3131", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::658a5cf8dd3624177c4a2b1dee4db050", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::660206e0ac0867d1e9c6d7f13b4acfb1", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::662198f21e90e8d03ec6f4c404b0a95a", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::1a77a3bba737f8b669dcf330ad3b37e2", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::68349c300697c6b5d455f3d0a05da314", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::1f5a73f76864da547247aedd3e0380cb", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::68349c300697c6b5d455f3d0a05da314", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::ceb0e80cefc02755597cfc1221fc5582", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::68e55fcf8b5a2b5604909093b3551bf6", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::6972116830d0b0c127847c08644786d9", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::0e8dffb39fcf0b168c35fab87c3af7b5", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::69df18e8a41e706eeba32abcb8683116", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::56d0716c831a0976ac9d5e30ea78fe45", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::69df18e8a41e706eeba32abcb8683116", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::c9d5a195ab6a61a65053cdb919996a7c", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::69df18e8a41e706eeba32abcb8683116", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::6a00006a9d00c03eb9a02ab8a174ec31", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::6cef8b61d8153438af60db7a7cde565b", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::72d0738610d0a7b0d4866b3c99fef007", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::ceb0e80cefc02755597cfc1221fc5582", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::72ec8639b5d97eec634ad1a31c66baa5", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::74d38884861299b3462c905fdcea92f8", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::9026257ed41f04f79db83fefa71e2bee", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::75ebb490fc370c9806e7a17549859196", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::7829338f375d52d881a24bd101ad08fc", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::7b9e2407bfd04a764019ba9662b3cc6a", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::97c2ec88f4aca7176ef1ac6c13f42cec", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::7fe2a67a3623455521bfb89c1448ce5f", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::80436a347f3b87e09d7eca8e5da0ab38", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::f450c6d794e83ac07dd5c7db525866cc", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::80e736e6092e41fc3419309f643c2371", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::82b61bce734268529ccdc41a3232ee63", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::831f7aaead9dead94d7855880359e4b7", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::1f5a73f76864da547247aedd3e0380cb", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::835c8bc2a12cc7c27e9991643c8c0f33", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::4604cfae1cf6ca6d319b395b061b8409", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::879d92254807353d570f6eeb5458d4c7", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::8a0b509afd6043fca77b940fe5aa316d", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::1f5a73f76864da547247aedd3e0380cb", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::8d3c6af84660bc23d9360b78219c24c6", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::8e0a39fff31df4669094be4c49544bc0", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::5b691841dd672fe01255b56f5fa0e1e5", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::8f0fc6873a4721928fbebd5a1d0bae85", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::8f460b0b3059c6af42fd0b5b159e8bd2", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::390289878e0536bcacb22a9607379f0e", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::8f4b41d5fc4880eb0810841936f196ed", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::954b92ea8fa9d30f7ae4cb5c04632f3b", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::9614f9df1af3f8c09f99882cb90b8021", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::9770c22773280027b5a93387bcd4ac25", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::82c85a2d212869bed91d323a0de1c2ae", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::9770c22773280027b5a93387bcd4ac25", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::a97489ad5aca40d73b83fd47755043e7", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::99b95e0a5ecb4b60f72ac0423f0ae448", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::8e3c2b1d42d8b61ed72e48993cb1b4d3", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::99e6b85bb3a1a46a530642d53991293f", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::9b9dc29e1d210f6f50270bff9318ef6f", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::8e3c2b1d42d8b61ed72e48993cb1b4d3", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::9bf80cdecc335e35b5b5953a6b7bbd24", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::2ccb2a09ba46716bdb3443d014e9e370", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::9cedb1960e3e79763e5598956d87f275", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::e456762c75e0746535d29e41d82c939c", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::9cedb1960e3e79763e5598956d87f275", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::9e9f03ea7658d80b40a542a6de026e44", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::82c06770a667ab88e836d1bac7f3b568", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::a3163a1736413dafdf6b65e87d274641", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::f450c6d794e83ac07dd5c7db525866cc", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::a3163a1736413dafdf6b65e87d274641", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::a348c355b334270b70ec9ab029e64222", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::7f62734c4f95afec372f5ba6207bba7e", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::a348c355b334270b70ec9ab029e64222", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::a5fafd4f3df5b5d9cd81b5f986e319ea", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::a2245a07ab309fffb2b5ee4609786ae6", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::a800168e7ed9faef76a01c01bcd1b1cc", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::ab0df45c26ad1c481d3e2e1ba61087c3", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::85186eb68076bfdfd2760b8e93d06b89", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::ab0df45c26ad1c481d3e2e1ba61087c3", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::8e3c2b1d42d8b61ed72e48993cb1b4d3", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::ab0df45c26ad1c481d3e2e1ba61087c3", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::af6d3767933a07c5652d235cb27d5aa1", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::1a77a3bba737f8b669dcf330ad3b37e2", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::af9269fa20bceb6f16a9189c2ecda864", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::8e3c2b1d42d8b61ed72e48993cb1b4d3", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::b3978f913bcb143bee10e7e16f67810f", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::b3c8895a7d4ce34e30c082ab35b7c627", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::1a77a3bba737f8b669dcf330ad3b37e2", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::b3d15f3e86e86452cff9ffa266a8d8af", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::b59dae251d08e2f54da10281bcc84cd2", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::8e3c2b1d42d8b61ed72e48993cb1b4d3", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::b9f0ff2d3a87414496f63653a7c4eed6", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::bb14a786401992ed8aef892b282c7214", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::8e3c2b1d42d8b61ed72e48993cb1b4d3", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::bc60bc781ab62a8ba77d1e5bd28a232e", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::5ce86bba1ef322c0d3cd4931d3c82f79", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::bcf04841a5581c5348429f131a90037e", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::2ccb2a09ba46716bdb3443d014e9e370", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::bd611c5e12bccb135d050569fab3b09d", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::0e8dffb39fcf0b168c35fab87c3af7b5", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::be836bcea27fe0cfd16b6593d1751356", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::bfff7c7b144c3f07a2acf2026f482117", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::0e8dffb39fcf0b168c35fab87c3af7b5", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::c16187ef70141293dbac0d8270c20db3", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::8cc1b79b3532ff7ddc50dd8b68dc88ed", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::c16187ef70141293dbac0d8270c20db3", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::bd4c0311cb81aed4ecef41f519750f37", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::c16187ef70141293dbac0d8270c20db3", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::ccc242a838a8fcce53e891a1dd2f29f5", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::c16187ef70141293dbac0d8270c20db3", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::7f62734c4f95afec372f5ba6207bba7e", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::c4ad249ed90e909bfbc92a1ce88bbd84", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::0b2e661ec89ddc6cb9b30b28307ff6aa", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::c97ba858e6fba1c9ec3330ca88bde221", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::0b2e661ec89ddc6cb9b30b28307ff6aa", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::c9c653e7eefea426f0da356022fc1d3e", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::b59ae6beb5966a3220f6fcbd4f28f0ed", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::c9c653e7eefea426f0da356022fc1d3e", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::bd4c0311cb81aed4ecef41f519750f37", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::c9c653e7eefea426f0da356022fc1d3e", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::82c85a2d212869bed91d323a0de1c2ae", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::ca6dbcc7191d86352e1362daef611033", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::cc522580d8c2a140595adb78cd3e2a52", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::cc87a6163a3dc970aff2ed2f4c6b538d", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::cd3d2c4b40b65a78f4ea966cd9de0c60", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::d32c007bc8a36aeb3cfcbe810946c66b", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::d3543d4258b3c74ccce4eabf62300a0f", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::8e3c2b1d42d8b61ed72e48993cb1b4d3", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::d6567a0aef0d0f3a705b649b5db51ec2", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::d6e58273d07db8ff0386fbf5203bc686", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::a2245a07ab309fffb2b5ee4609786ae6", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::d84f9bfbea8a43623859528ab1f92604", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::d89718c4399b9ab37edffd674d5cbbd2", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::d9d156ea9ce46be0b526b4b777e0072b", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::e3298f4a0e1d6e59e5276911878a9776", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::e5e595263d2b57f37db80e7769f5e303", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::e9ff625ff01c03f97c827f3856533bed", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::0b2e661ec89ddc6cb9b30b28307ff6aa", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::ea3b8ff16c4488ce5fd2cedd3e0bc4b0", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::eb4ce9235fb9d07cd7d007922e406752", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::ec90fbe5130ed8f0a732f870a494af05", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::1a77a3bba737f8b669dcf330ad3b37e2", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::edadb7a520726c01cf2b5c0daecac464", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::51fa34d45c0025e25f996420d70de235", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::edadb7a520726c01cf2b5c0daecac464", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::7aa6642a57ad159515c2a8dae4f60a29", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::edadb7a520726c01cf2b5c0daecac464", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::97c2ec88f4aca7176ef1ac6c13f42cec", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::edadb7a520726c01cf2b5c0daecac464", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::f42cac35d9e8dd17b1a175afa512c13a", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::f6cf64f0efe65afec422b282218514b5", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::f7f3b7f8caf2520e2fcaa7f3a704ec03", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "affiliation", "relClass": "isAuthorInstitutionOf", "dataInfo": {"provenanceaction": {"classid": "sysimport:actionset", "classname": "sysimport:actionset", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|doiboost____::29b88cdff7bd0a842b9c9f15f923bfc1", "lastupdatetimestamp": 0, "relType": "resultOrganization", "source": "20|microsoft___::fcc8d792603a72774ecbd9fe4504b3da", "collectedFrom": [{"dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "", "schemename": ""}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": ""}, "key": "10|openaire____::5f532a3fc4f1ea403f37070f59a7a53a", "value": "Microsoft Academic Graph"}]}
{"subRelType": "outcome", "relClass": "produces", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:repository", "classname": "sysimport:crosswalk:repository", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|erc_________::8511e17e153877fecd5a9a4ea8eb0969", "lastupdatetimestamp": 0, "relType": "resultProject", "source": "40|corda_______::07c370987d51b8273071fedf5931acf6"}
{"subRelType": "outcome", "relClass": "produces", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:repository", "classname": "sysimport:crosswalk:repository", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|erc_________::67b1c4d6876a12e265e965c1451a7f36", "lastupdatetimestamp": 0, "relType": "resultProject", "source": "40|corda_______::ae9a0c1b9384e04476ad3571d04be237"}
{"subRelType": "outcome", "relClass": "produces", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:repository", "classname": "sysimport:crosswalk:repository", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|od______1106::aabdb9c07beef7bdf7a93b6455f75e06", "lastupdatetimestamp": 0, "relType": "resultProject", "source": "40|corda_______::ae9a0c1b9384e04476ad3571d04be237"}
{"subRelType": "outcome", "relClass": "produces", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:repository", "classname": "sysimport:crosswalk:repository", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|od______2121::16e25c1a917f522dbef3c5f29dd3912e", "lastupdatetimestamp": 0, "relType": "resultProject", "source": "40|corda_______::ae9a0c1b9384e04476ad3571d04be237"}
{"subRelType": "outcome", "relClass": "produces", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "iis", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_referencedProjects", "invisible": false, "trust": "0.897"}, "target": "50|webcrawl____::cf59797173addc0a824f9bc231088b17", "lastupdatetimestamp": 1555635339633, "relType": "resultProject", "source": "40|corda_______::ae9a0c1b9384e04476ad3571d04be237"}
{"subRelType": "outcome", "relClass": "produces", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:repository", "classname": "sysimport:crosswalk:repository", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|od______1106::aabdb9c07beef7bdf7a93b6455f75e06", "lastupdatetimestamp": 0, "relType": "resultProject", "source": "40|corda_______::fc5d38af81916a0a25d0e7892ca1c5bf"}
{"subRelType": "outcome", "relClass": "produces", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "iis", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_referencedProjects", "invisible": false, "trust": "0.897"}, "target": "50|webcrawl____::cf59797173addc0a824f9bc231088b17", "lastupdatetimestamp": 1555635339633, "relType": "resultProject", "source": "40|corda_______::fc5d38af81916a0a25d0e7892ca1c5bf"}
{"subRelType": "outcome", "relClass": "produces", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:repository", "classname": "sysimport:crosswalk:repository", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|ec_fp7health::9e11ef5f5ceeb0b0038457f985c03699", "lastupdatetimestamp": 0, "relType": "resultProject", "source": "40|corda_______::ff7d864986ff49ea56c6c435e5015114"}
{"subRelType": "outcome", "relClass": "produces", "dataInfo": {"provenanceaction": {"classid": "iis", "classname": "iis", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "iis::document_referencedProjects", "invisible": false, "trust": "0.6573"}, "target": "50|webcrawl____::7ee1f1a85e5c2ed84ee0fb8dbfff0dc8", "lastupdatetimestamp": 1555635335122, "relType": "resultProject", "source": "40|corda_______::ff7d864986ff49ea56c6c435e5015114"}
{"subRelType": "outcome", "relClass": "produces", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:repository", "classname": "sysimport:crosswalk:repository", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|snsf_p3_pubs::b7a3ba972d69cf2ba5b95975540b6d5f", "lastupdatetimestamp": 0, "relType": "resultProject", "source": "40|snsf________::19b473ba95b7872de4969693606740a3"}
{"subRelType": "outcome", "relClass": "produces", "dataInfo": {"provenanceaction": {"classid": "sysimport:crosswalk:repository", "classname": "sysimport:crosswalk:repository", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": false, "inferenceprovenance": "", "invisible": false, "trust": "0.9"}, "target": "50|snsf_p3_pubs::e7a06367bfcb19b555a1918bbc736046", "lastupdatetimestamp": 0, "relType": "resultProject", "source": "40|snsf________::84768b7df5eed069b501356810cbdc3a"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::bbf2575c641798c36d7f2fc01d9ad6aa", "lastupdatetimestamp": 1585326814289, "relType": "resultResult", "source": "50|DansKnawCris::0829b5191605bdbea36d6502b8c1ce1f"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::f4c8cd0d94eb8f4bc5b2b47949c053a0", "lastupdatetimestamp": 1585326821912, "relType": "resultResult", "source": "50|DansKnawCris::192b72a54b46ddf5722689f6ff8032ca"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::d536ccbeb1bea04487d73ea4849cdb1b", "lastupdatetimestamp": 1585326823079, "relType": "resultResult", "source": "50|DansKnawCris::1fcf8f975dbb138d1cadb50c0e7c3302"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::602965c328d325e1c6776e3514d317c4", "lastupdatetimestamp": 1585326827908, "relType": "resultResult", "source": "50|DansKnawCris::20c335ead606be9d5bc6e30250254b42"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::57a08d33ef4a1c27a31f97faf7f6ab92", "lastupdatetimestamp": 1585326853761, "relType": "resultResult", "source": "50|DansKnawCris::3121b1a6ebf23d8f16d3ee69cf44dd04"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::89a9698617daf39a1336edb4d6160b74", "lastupdatetimestamp": 1585326835131, "relType": "resultResult", "source": "50|DansKnawCris::37a2024476b082840a0f8396b02a9ad6"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::a0e0c0c3f8f505c10a4ec5f040c9815f", "lastupdatetimestamp": 1585326846178, "relType": "resultResult", "source": "50|DansKnawCris::3fe07641051905ac77b97735dfcb4885"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::5b40c8c629b86bd9818268ad0e34c0f0", "lastupdatetimestamp": 1585326847271, "relType": "resultResult", "source": "50|DansKnawCris::49ec7b6d0f62b13741599be2bc8ebb67"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::f4c8cd0d94eb8f4bc5b2b47949c053a0", "lastupdatetimestamp": 1585326821912, "relType": "resultResult", "source": "50|DansKnawCris::4e0509529994310383b3e8bd9471ed81"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::5b40c8c629b86bd9818268ad0e34c0f0", "lastupdatetimestamp": 1585326847271, "relType": "resultResult", "source": "50|DansKnawCris::4fc47a04f2bbe8099df33d378ae35367"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::eac26fcf4147265741e4e2a082651a13", "lastupdatetimestamp": 1585326854646, "relType": "resultResult", "source": "50|DansKnawCris::53424acee9f508ccefa2f974eff1265e"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::a0e0c0c3f8f505c10a4ec5f040c9815f", "lastupdatetimestamp": 1585326846178, "relType": "resultResult", "source": "50|DansKnawCris::6eec7225f3b545e6441dd8b7f39d25d2"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::15aff3b2cedebfd5050482d73c3fd9d8", "lastupdatetimestamp": 1585326888484, "relType": "resultResult", "source": "50|DansKnawCris::7f71d889c13513f2ff0dcba313a25483"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::602965c328d325e1c6776e3514d317c4", "lastupdatetimestamp": 1585326827908, "relType": "resultResult", "source": "50|DansKnawCris::83b55558c80c06fc6c4bd1107c7fd3ca"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::602965c328d325e1c6776e3514d317c4", "lastupdatetimestamp": 1585326827908, "relType": "resultResult", "source": "50|DansKnawCris::869930e9d30e74f88c99851497fe8d55"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::15aff3b2cedebfd5050482d73c3fd9d8", "lastupdatetimestamp": 1585326888484, "relType": "resultResult", "source": "50|DansKnawCris::89605be6883cd4f24f131b980c80e6c0"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::b94af49d629c72fbb0d5316f13671010", "lastupdatetimestamp": 1585326901416, "relType": "resultResult", "source": "50|DansKnawCris::9937d0e026573bb2fad90797c870632c"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::803701ff0c3f6d1c6e3f64f871becd76", "lastupdatetimestamp": 1585326910507, "relType": "resultResult", "source": "50|DansKnawCris::ab7129a3997e4c3022ae6a9096d888dc"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::8ed7082c6c0a087e8a43e3a18e476dd0", "lastupdatetimestamp": 1585326916708, "relType": "resultResult", "source": "50|DansKnawCris::b31a33b01f1ca68b73124eb55118b725"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::031db54ed32b68dcddf0f90c79169aea", "lastupdatetimestamp": 1585326927056, "relType": "resultResult", "source": "50|DansKnawCris::b9d0d26b1405e6411d47b599052486ec"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::d536ccbeb1bea04487d73ea4849cdb1b", "lastupdatetimestamp": 1585326823079, "relType": "resultResult", "source": "50|DansKnawCris::c140c4a17b3f71550da741465b3facd6"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::803701ff0c3f6d1c6e3f64f871becd76", "lastupdatetimestamp": 1585326910507, "relType": "resultResult", "source": "50|DansKnawCris::c718a20968b2c05266ce2df5f43b0812"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::a0e0c0c3f8f505c10a4ec5f040c9815f", "lastupdatetimestamp": 1585326846178, "relType": "resultResult", "source": "50|DansKnawCris::db67447169c4868aa05c7d5e41182191"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::803701ff0c3f6d1c6e3f64f871becd76", "lastupdatetimestamp": 1585326910507, "relType": "resultResult", "source": "50|DansKnawCris::df08acc00bab3460c21b78362b0f7170"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::15aff3b2cedebfd5050482d73c3fd9d8", "lastupdatetimestamp": 1585326888484, "relType": "resultResult", "source": "50|DansKnawCris::e2c64334b18bbc5b2c2e215ebbe50e8a"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::15aff3b2cedebfd5050482d73c3fd9d8", "lastupdatetimestamp": 1585326888484, "relType": "resultResult", "source": "50|DansKnawCris::e560dfb58fc3444c86efc0a7eb09c6f6"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::a0e0c0c3f8f505c10a4ec5f040c9815f", "lastupdatetimestamp": 1585326846178, "relType": "resultResult", "source": "50|DansKnawCris::fbe47c815067a8e51ac0d9f2d37fb5ef"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::15aff3b2cedebfd5050482d73c3fd9d8", "lastupdatetimestamp": 1585326888484, "relType": "resultResult", "source": "50|MetisRadboud::205c2c0100a5798f7cdadf243b81a97d"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::602965c328d325e1c6776e3514d317c4", "lastupdatetimestamp": 1585326827908, "relType": "resultResult", "source": "50|MetisRadboud::325dbc82108c7abd408a0e3954eda125"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::15aff3b2cedebfd5050482d73c3fd9d8", "lastupdatetimestamp": 1585326888484, "relType": "resultResult", "source": "50|MetisRadboud::50b2628fe661fcfc91a62a806a8e1f1f"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::15aff3b2cedebfd5050482d73c3fd9d8", "lastupdatetimestamp": 1585326888484, "relType": "resultResult", "source": "50|MetisRadboud::8edf7608bebc6da3e793b10c50d71ac9"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::bbf2575c641798c36d7f2fc01d9ad6aa", "lastupdatetimestamp": 1585326814289, "relType": "resultResult", "source": "50|base_oa_____::1a77a3bba737f8b669dcf330ad3b37e2"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::1af31281caa8e5c5bba3c6ee6c033183", "lastupdatetimestamp": 1585327035443, "relType": "resultResult", "source": "50|base_oa_____::71644e7be8ccebc075581586fc0c73f3"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::8a557b71a4c123b67e43fe6c92a6b4b7", "lastupdatetimestamp": 1585327035089, "relType": "resultResult", "source": "50|base_oa_____::82c85a2d212869bed91d323a0de1c2ae"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::b94af49d629c72fbb0d5316f13671010", "lastupdatetimestamp": 1585326901416, "relType": "resultResult", "source": "50|base_oa_____::8e3c2b1d42d8b61ed72e48993cb1b4d3"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::a0e0c0c3f8f505c10a4ec5f040c9815f", "lastupdatetimestamp": 1585326846178, "relType": "resultResult", "source": "50|base_oa_____::9026257ed41f04f79db83fefa71e2bee"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::7f7126fc3821faf6903f6a815a0e83cb", "lastupdatetimestamp": 1585327093753, "relType": "resultResult", "source": "50|base_oa_____::f2b49234a3cd560205042d27937dbdc5"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::b94af49d629c72fbb0d5316f13671010", "lastupdatetimestamp": 1585326901416, "relType": "resultResult", "source": "50|base_oa_____::f754bbe347a105d60f14eabde2abc973"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::0f56b91b03510320705219da714b822b", "lastupdatetimestamp": 1585327112227, "relType": "resultResult", "source": "50|copernicus__::0315ab7f9780283e571e3e32a61ad260"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::031db54ed32b68dcddf0f90c79169aea", "lastupdatetimestamp": 1585326927056, "relType": "resultResult", "source": "50|copernicus__::aec8a572f5bd6435385b2650161af4ec"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::eac26fcf4147265741e4e2a082651a13", "lastupdatetimestamp": 1585326854646, "relType": "resultResult", "source": "50|core________::0c09ac4ba0b59b567524259850eb5156"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::fe9f38247fa4cba493665b92fb6caedc", "lastupdatetimestamp": 1585327145088, "relType": "resultResult", "source": "50|core________::1e56f465413fd6f87436676e7ab873d4"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::a0e0c0c3f8f505c10a4ec5f040c9815f", "lastupdatetimestamp": 1585326846178, "relType": "resultResult", "source": "50|core________::7ae208441046853abb1519d87c59c37d"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::f8b6dc842f28a83bbb82dbf8026bf056", "lastupdatetimestamp": 1585327231770, "relType": "resultResult", "source": "50|core________::7da0f1de0c362da605a6167ac2fb0653"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::bbf2575c641798c36d7f2fc01d9ad6aa", "lastupdatetimestamp": 1585326814289, "relType": "resultResult", "source": "50|core________::7f8e3a26b1bff47beb53d4d2a9263d23"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::fe9f38247fa4cba493665b92fb6caedc", "lastupdatetimestamp": 1585327145088, "relType": "resultResult", "source": "50|core________::8050ac2ee394abd1f0c2d9f2efb37a01"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::1591ecbdfad3d95795cac13e419245a2", "lastupdatetimestamp": 1585327203932, "relType": "resultResult", "source": "50|core________::8ab647fb8d9c5a8256f53d8565657a33"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::8a557b71a4c123b67e43fe6c92a6b4b7", "lastupdatetimestamp": 1585327035089, "relType": "resultResult", "source": "50|core________::8f554e86507bc57550e8ca01dd6c8990"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::b94af49d629c72fbb0d5316f13671010", "lastupdatetimestamp": 1585326901416, "relType": "resultResult", "source": "50|core________::9a5f806134b8c3a5e87b3386a45b05e3"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::b94af49d629c72fbb0d5316f13671010", "lastupdatetimestamp": 1585326901416, "relType": "resultResult", "source": "50|core________::c33167d995016364daf84253a89f93e0"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::89a9698617daf39a1336edb4d6160b74", "lastupdatetimestamp": 1585326835131, "relType": "resultResult", "source": "50|core________::c6e44978516a13706d885b485824ce99"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::1591ecbdfad3d95795cac13e419245a2", "lastupdatetimestamp": 1585327203932, "relType": "resultResult", "source": "50|core________::c83c2dc50ef5a58e104eb30011f44cb1"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::1af31281caa8e5c5bba3c6ee6c033183", "lastupdatetimestamp": 1585327035443, "relType": "resultResult", "source": "50|core________::cba9b51ad038fa1b4a209c451e154561"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::ea8c080364e3b0ef7833e42f5796b866", "lastupdatetimestamp": 1585327300230, "relType": "resultResult", "source": "50|core________::df100b66e29da20d70b92c0bdcc27c50"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::1591ecbdfad3d95795cac13e419245a2", "lastupdatetimestamp": 1585327203932, "relType": "resultResult", "source": "50|core________::f4b88519914430d8e140e709571bdf9c"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::fe9f38247fa4cba493665b92fb6caedc", "lastupdatetimestamp": 1585327145088, "relType": "resultResult", "source": "50|core________::fae1566be9a25ae5bf53865c72ba9d13"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::5798824867b4e0c2cc7b0d5a97b59e35", "lastupdatetimestamp": 1585327398531, "relType": "resultResult", "source": "50|datacite____::063f64a9cbbfe5d9600a3561942f0e38"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::69f62abd95e814c18c72a7d489ee0b18", "lastupdatetimestamp": 1585327407623, "relType": "resultResult", "source": "50|datacite____::066ed1cf07f9376c705c57ef5af6f23d"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::031db54ed32b68dcddf0f90c79169aea", "lastupdatetimestamp": 1585326927056, "relType": "resultResult", "source": "50|datacite____::0b2e661ec89ddc6cb9b30b28307ff6aa"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::5798824867b4e0c2cc7b0d5a97b59e35", "lastupdatetimestamp": 1585327398531, "relType": "resultResult", "source": "50|datacite____::112d7cfe0d375022cd47b73eae5218ad"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::b94af49d629c72fbb0d5316f13671010", "lastupdatetimestamp": 1585326901416, "relType": "resultResult", "source": "50|datacite____::137bafc445c16e5a89760064928e6cbc"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::e47e456ee10d9a59fa87f33ed97f2133", "lastupdatetimestamp": 1585327438714, "relType": "resultResult", "source": "50|datacite____::138635b74bf6fb44ce093c509489a31e"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::2e224140e25091c872bd2d97560d4cf0", "lastupdatetimestamp": 1585327517491, "relType": "resultResult", "source": "50|datacite____::14a45918139d4e93dfa09c6b126402e2"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::2e224140e25091c872bd2d97560d4cf0", "lastupdatetimestamp": 1585327517491, "relType": "resultResult", "source": "50|datacite____::16acf233b2e37b8789d80eddb1636f79"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::5798824867b4e0c2cc7b0d5a97b59e35", "lastupdatetimestamp": 1585327398531, "relType": "resultResult", "source": "50|datacite____::182e692c6fecb26bcc2d7f49ea44a790"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::c2a43ff4f0e151b26963a63105abac07", "lastupdatetimestamp": 1585327468772, "relType": "resultResult", "source": "50|datacite____::1a30a927f98c9f3557adbc8082523c02"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::246dc454e03e1a6c360417a68bdff5c6", "lastupdatetimestamp": 1585327552652, "relType": "resultResult", "source": "50|datacite____::1e04321d2205434550881657e309ab6b"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::a7c4fd5432b99b2ffd94a207ca561ba4", "lastupdatetimestamp": 1585327583605, "relType": "resultResult", "source": "50|datacite____::2075dbae07e9f94e111a36cb82d06639"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::69550235a4bd75fd24dc984b508e721c", "lastupdatetimestamp": 1585327611869, "relType": "resultResult", "source": "50|datacite____::207f947ada2638b121b16262f22e232d"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::5798824867b4e0c2cc7b0d5a97b59e35", "lastupdatetimestamp": 1585327398531, "relType": "resultResult", "source": "50|datacite____::217c9b193a18b4b860b594940ae621de"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::2e224140e25091c872bd2d97560d4cf0", "lastupdatetimestamp": 1585327520009, "relType": "resultResult", "source": "50|datacite____::24acdf36776da9c713d8a39a7c562a67"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::e47e456ee10d9a59fa87f33ed97f2133", "lastupdatetimestamp": 1585327438714, "relType": "resultResult", "source": "50|datacite____::25a5445770fb9468e48f2b1eb79e36b9"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::a7c4fd5432b99b2ffd94a207ca561ba4", "lastupdatetimestamp": 1585327583605, "relType": "resultResult", "source": "50|datacite____::28963c533de83095f934fcb7b01f1df0"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::e7d0a08572d01a2b08cf9cf9de82c7ab", "lastupdatetimestamp": 1585327668156, "relType": "resultResult", "source": "50|datacite____::29e0e9dbb0346ecad7b7e64bf3137f3e"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::5798824867b4e0c2cc7b0d5a97b59e35", "lastupdatetimestamp": 1585327398531, "relType": "resultResult", "source": "50|datacite____::2c4a2627917ac6608c6c7a4fd6590d72"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::69f62abd95e814c18c72a7d489ee0b18", "lastupdatetimestamp": 1585327407623, "relType": "resultResult", "source": "50|datacite____::2e6fb9c59e714022c5b6ecc4fbdc8dba"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::69f62abd95e814c18c72a7d489ee0b18", "lastupdatetimestamp": 1585327407623, "relType": "resultResult", "source": "50|datacite____::3238a57119b7067a7e8e46a843a73b83"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::e47e456ee10d9a59fa87f33ed97f2133", "lastupdatetimestamp": 1585327438714, "relType": "resultResult", "source": "50|datacite____::34c984b5fb1a5cc58174430639bd49f6"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::2e224140e25091c872bd2d97560d4cf0", "lastupdatetimestamp": 1585327520009, "relType": "resultResult", "source": "50|datacite____::39fbf030a4f005225a210545f774e477"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::8d63358475d2bbe4e383342365ca1e85", "lastupdatetimestamp": 1585327738494, "relType": "resultResult", "source": "50|datacite____::3b36fe25bcdea8fcd10dff7d7dabfe94"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::a7c4fd5432b99b2ffd94a207ca561ba4", "lastupdatetimestamp": 1585327583605, "relType": "resultResult", "source": "50|datacite____::3ca516bdad9689518144129cd328180a"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::e47e456ee10d9a59fa87f33ed97f2133", "lastupdatetimestamp": 1585327438714, "relType": "resultResult", "source": "50|datacite____::3d95c9f146fa59b1a30957911e693daf"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::e47e456ee10d9a59fa87f33ed97f2133", "lastupdatetimestamp": 1585327438714, "relType": "resultResult", "source": "50|datacite____::41772c0e984570d7161bd38520c8bef1"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::5798824867b4e0c2cc7b0d5a97b59e35", "lastupdatetimestamp": 1585327398531, "relType": "resultResult", "source": "50|datacite____::42b4c10e2853274e408ea86f5323f9de"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::368861c42ab213b40b38194466aeab67", "lastupdatetimestamp": 1585327635685, "relType": "resultResult", "source": "50|datacite____::44fed28071526c6b1e8945de798cf82a"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::a7c4fd5432b99b2ffd94a207ca561ba4", "lastupdatetimestamp": 1585327583605, "relType": "resultResult", "source": "50|datacite____::459e42c4b342bb6af6d9fefa907f4bfa"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::69f62abd95e814c18c72a7d489ee0b18", "lastupdatetimestamp": 1585327407623, "relType": "resultResult", "source": "50|datacite____::47b3145e0d7313e332d1a9444a111388"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::e7d0a08572d01a2b08cf9cf9de82c7ab", "lastupdatetimestamp": 1585327668157, "relType": "resultResult", "source": "50|datacite____::48de588803c2128892ce3912351be41c"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::69550235a4bd75fd24dc984b508e721c", "lastupdatetimestamp": 1585327611869, "relType": "resultResult", "source": "50|datacite____::4b128cfa6257d69fd4357501dd2009ff"}
{"subRelType": "dedup", "relClass": "isMergedIn", "dataInfo": {"provenanceaction": {"classid": "", "classname": "", "schemeid": "dnet:provenanceActions", "schemename": "dnet:provenanceActions"}, "deletedbyinference": false, "inferred": true, "inferenceprovenance": "dedup-similarity-result-levenstein", "invisible": false, "trust": "0.7200000000000001"}, "target": "50|test_pubs___::2e224140e25091c872bd2d97560d4cf0", "lastupdatetimestamp": 1585327520009, "relType": "resultResult", "source": "50|datacite____::4d444c00a5a83437106f588506c29871"}

File diff suppressed because one or more lines are too long

View File

@ -15,6 +15,8 @@
<SCAN id="organization"/> <SCAN id="organization"/>
<SCAN id="publication"/> <SCAN id="publication"/>
<SCAN id="software"/> <SCAN id="software"/>
<SCAN id="dataset"/>
<SCAN id="otherresearchproduct"/>
</SCAN_SEQUENCE> </SCAN_SEQUENCE>
</DEDUPLICATION> </DEDUPLICATION>
</CONFIGURATION> </CONFIGURATION>

View File

@ -42,11 +42,7 @@ public class DatePicker {
.filter(d -> inRange(d.getKey())) .filter(d -> inRange(d.getKey()))
.sorted(reverseOrder(comparingByValue())) .sorted(reverseOrder(comparingByValue()))
.collect( .collect(
toMap( toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e2, LinkedHashMap::new));
Map.Entry::getKey,
Map.Entry::getValue,
(e1, e2) -> e2,
LinkedHashMap::new));
// shortcut // shortcut
if (sorted.size() == 0) { if (sorted.size() == 0) {
@ -67,11 +63,7 @@ public class DatePicker {
final int max = sorted.values().iterator().next(); final int max = sorted.values().iterator().next();
Optional<String> first = Optional<String> first =
sorted.entrySet().stream() sorted.entrySet().stream()
.filter( .filter(e -> e.getValue() == max && !endsWith(e.getKey(), DATE_DEFAULT_SUFFIX))
e ->
e.getValue() == max
&& !endsWith(
e.getKey(), DATE_DEFAULT_SUFFIX))
.map(Map.Entry::getKey) .map(Map.Entry::getKey)
.findFirst(); .findFirst();
if (first.isPresent()) { if (first.isPresent()) {
@ -88,9 +80,7 @@ public class DatePicker {
return date; return date;
} else { } else {
final Optional<String> first = final Optional<String> first =
accepted.stream() accepted.stream().filter(d -> !endsWith(d, DATE_DEFAULT_SUFFIX)).findFirst();
.filter(d -> !endsWith(d, DATE_DEFAULT_SUFFIX))
.findFirst();
if (first.isPresent()) { if (first.isPresent()) {
date.setValue(first.get()); date.setValue(first.get());
return date; return date;

View File

@ -32,33 +32,26 @@ public class DedupRecordFactory {
(PairFunction<String, String, String>) (PairFunction<String, String, String>)
it -> it ->
new Tuple2<String, String>( new Tuple2<String, String>(
MapDocumentUtil.getJPathString( MapDocumentUtil.getJPathString(dedupConf.getWf().getIdPath(), it), it));
dedupConf.getWf().getIdPath(), it),
it));
// <source, target>: source is the dedup_id, target is the id of the mergedIn // <source, target>: source is the dedup_id, target is the id of the mergedIn
JavaPairRDD<String, String> mergeRels = JavaPairRDD<String, String> mergeRels =
spark.read() spark
.read()
.load(mergeRelsInputPath) .load(mergeRelsInputPath)
.as(Encoders.bean(Relation.class)) .as(Encoders.bean(Relation.class))
.where("relClass=='merges'") .where("relClass=='merges'")
.javaRDD() .javaRDD()
.mapToPair( .mapToPair(
(PairFunction<Relation, String, String>) (PairFunction<Relation, String, String>)
r -> r -> new Tuple2<String, String>(r.getTarget(), r.getSource()));
new Tuple2<String, String>(
r.getTarget(), r.getSource()));
// <dedup_id, json_entity_merged> // <dedup_id, json_entity_merged>
final JavaPairRDD<String, String> joinResult = final JavaPairRDD<String, String> joinResult =
mergeRels mergeRels
.join(inputJsonEntities) .join(inputJsonEntities)
.mapToPair( .mapToPair(
(PairFunction< (PairFunction<Tuple2<String, Tuple2<String, String>>, String, String>) Tuple2::_2);
Tuple2<String, Tuple2<String, String>>,
String,
String>)
Tuple2::_2);
JavaPairRDD<String, Iterable<String>> sortedJoinResult = joinResult.groupByKey(); JavaPairRDD<String, Iterable<String>> sortedJoinResult = joinResult.groupByKey();
@ -76,15 +69,13 @@ public class DedupRecordFactory {
case organization: case organization:
return sortedJoinResult.map(o -> DedupRecordFactory.organizationMerger(o, ts)); return sortedJoinResult.map(o -> DedupRecordFactory.organizationMerger(o, ts));
case otherresearchproduct: case otherresearchproduct:
return sortedJoinResult.map( return sortedJoinResult.map(o -> DedupRecordFactory.otherresearchproductMerger(o, ts));
o -> DedupRecordFactory.otherresearchproductMerger(o, ts));
default: default:
return null; return null;
} }
} }
private static Publication publicationMerger( private static Publication publicationMerger(Tuple2<String, Iterable<String>> e, final long ts) {
Tuple2<String, Iterable<String>> e, final long ts) {
Publication p = new Publication(); // the result of the merge, to be returned at the end Publication p = new Publication(); // the result of the merge, to be returned at the end
@ -96,20 +87,17 @@ public class DedupRecordFactory {
final Collection<String> dateofacceptance = Lists.newArrayList(); final Collection<String> dateofacceptance = Lists.newArrayList();
if (e._2() != null) if (e._2() != null)
e._2().forEach( e._2()
.forEach(
pub -> { pub -> {
try { try {
Publication publication = Publication publication = mapper.readValue(pub, Publication.class);
mapper.readValue(pub, Publication.class);
p.mergeFrom(publication); p.mergeFrom(publication);
p.setAuthor( p.setAuthor(DedupUtility.mergeAuthor(p.getAuthor(), publication.getAuthor()));
DedupUtility.mergeAuthor(
p.getAuthor(), publication.getAuthor()));
// add to the list if they are not null // add to the list if they are not null
if (publication.getDateofacceptance() != null) if (publication.getDateofacceptance() != null)
dateofacceptance.add( dateofacceptance.add(publication.getDateofacceptance().getValue());
publication.getDateofacceptance().getValue());
} catch (Exception exc) { } catch (Exception exc) {
throw new RuntimeException(exc); throw new RuntimeException(exc);
} }
@ -133,19 +121,17 @@ public class DedupRecordFactory {
final Collection<String> dateofacceptance = Lists.newArrayList(); final Collection<String> dateofacceptance = Lists.newArrayList();
if (e._2() != null) if (e._2() != null)
e._2().forEach( e._2()
.forEach(
dat -> { dat -> {
try { try {
Dataset dataset = mapper.readValue(dat, Dataset.class); Dataset dataset = mapper.readValue(dat, Dataset.class);
d.mergeFrom(dataset); d.mergeFrom(dataset);
d.setAuthor( d.setAuthor(DedupUtility.mergeAuthor(d.getAuthor(), dataset.getAuthor()));
DedupUtility.mergeAuthor(
d.getAuthor(), dataset.getAuthor()));
// add to the list if they are not null // add to the list if they are not null
if (dataset.getDateofacceptance() != null) if (dataset.getDateofacceptance() != null)
dateofacceptance.add( dateofacceptance.add(dataset.getDateofacceptance().getValue());
dataset.getDateofacceptance().getValue());
} catch (Exception exc) { } catch (Exception exc) {
throw new RuntimeException(exc); throw new RuntimeException(exc);
} }
@ -166,7 +152,8 @@ public class DedupRecordFactory {
final ObjectMapper mapper = new ObjectMapper(); final ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
if (e._2() != null) if (e._2() != null)
e._2().forEach( e._2()
.forEach(
proj -> { proj -> {
try { try {
Project project = mapper.readValue(proj, Project.class); Project project = mapper.readValue(proj, Project.class);
@ -191,19 +178,17 @@ public class DedupRecordFactory {
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
final Collection<String> dateofacceptance = Lists.newArrayList(); final Collection<String> dateofacceptance = Lists.newArrayList();
if (e._2() != null) if (e._2() != null)
e._2().forEach( e._2()
.forEach(
soft -> { soft -> {
try { try {
Software software = mapper.readValue(soft, Software.class); Software software = mapper.readValue(soft, Software.class);
s.mergeFrom(software); s.mergeFrom(software);
s.setAuthor( s.setAuthor(DedupUtility.mergeAuthor(s.getAuthor(), software.getAuthor()));
DedupUtility.mergeAuthor(
s.getAuthor(), software.getAuthor()));
// add to the list if they are not null // add to the list if they are not null
if (software.getDateofacceptance() != null) if (software.getDateofacceptance() != null)
dateofacceptance.add( dateofacceptance.add(software.getDateofacceptance().getValue());
software.getDateofacceptance().getValue());
} catch (Exception exc) { } catch (Exception exc) {
throw new RuntimeException(exc); throw new RuntimeException(exc);
} }
@ -221,7 +206,8 @@ public class DedupRecordFactory {
final ObjectMapper mapper = new ObjectMapper(); final ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
if (e._2() != null) if (e._2() != null)
e._2().forEach( e._2()
.forEach(
dat -> { dat -> {
try { try {
Datasource datasource = mapper.readValue(dat, Datasource.class); Datasource datasource = mapper.readValue(dat, Datasource.class);
@ -250,14 +236,13 @@ public class DedupRecordFactory {
StringBuilder trust = new StringBuilder("0.0"); StringBuilder trust = new StringBuilder("0.0");
if (e._2() != null) if (e._2() != null)
e._2().forEach( e._2()
.forEach(
pub -> { pub -> {
try { try {
Organization organization = Organization organization = mapper.readValue(pub, Organization.class);
mapper.readValue(pub, Organization.class);
final String currentTrust = final String currentTrust = organization.getDataInfo().getTrust();
organization.getDataInfo().getTrust();
if (!"1.0".equals(currentTrust)) { if (!"1.0".equals(currentTrust)) {
trust.setLength(0); trust.setLength(0);
trust.append(currentTrust); trust.append(currentTrust);
@ -282,8 +267,8 @@ public class DedupRecordFactory {
private static OtherResearchProduct otherresearchproductMerger( private static OtherResearchProduct otherresearchproductMerger(
Tuple2<String, Iterable<String>> e, final long ts) { Tuple2<String, Iterable<String>> e, final long ts) {
OtherResearchProduct o = OtherResearchProduct o = new OtherResearchProduct(); // the result of the merge, to be
new OtherResearchProduct(); // the result of the merge, to be returned at the end // returned at the end
o.setId(e._1()); o.setId(e._1());
@ -293,7 +278,8 @@ public class DedupRecordFactory {
final Collection<String> dateofacceptance = Lists.newArrayList(); final Collection<String> dateofacceptance = Lists.newArrayList();
if (e._2() != null) if (e._2() != null)
e._2().forEach( e._2()
.forEach(
orp -> { orp -> {
try { try {
OtherResearchProduct otherResearchProduct = OtherResearchProduct otherResearchProduct =
@ -301,15 +287,10 @@ public class DedupRecordFactory {
o.mergeFrom(otherResearchProduct); o.mergeFrom(otherResearchProduct);
o.setAuthor( o.setAuthor(
DedupUtility.mergeAuthor( DedupUtility.mergeAuthor(o.getAuthor(), otherResearchProduct.getAuthor()));
o.getAuthor(),
otherResearchProduct.getAuthor()));
// add to the list if they are not null // add to the list if they are not null
if (otherResearchProduct.getDateofacceptance() != null) if (otherResearchProduct.getDateofacceptance() != null)
dateofacceptance.add( dateofacceptance.add(otherResearchProduct.getDateofacceptance().getValue());
otherResearchProduct
.getDateofacceptance()
.getValue());
} catch (Exception exc) { } catch (Exception exc) {
throw new RuntimeException(exc); throw new RuntimeException(exc);
} }

View File

@ -37,14 +37,12 @@ public class DedupUtility {
Map<String, LongAccumulator> accumulators = new HashMap<>(); Map<String, LongAccumulator> accumulators = new HashMap<>();
String acc1 = String acc1 =
String.format( String.format("%s::%s", dedupConf.getWf().getEntityType(), "records per hash key = 1");
"%s::%s", dedupConf.getWf().getEntityType(), "records per hash key = 1");
accumulators.put(acc1, context.longAccumulator(acc1)); accumulators.put(acc1, context.longAccumulator(acc1));
String acc2 = String acc2 =
String.format( String.format(
"%s::%s", "%s::%s",
dedupConf.getWf().getEntityType(), dedupConf.getWf().getEntityType(), "missing " + dedupConf.getWf().getOrderField());
"missing " + dedupConf.getWf().getOrderField());
accumulators.put(acc2, context.longAccumulator(acc2)); accumulators.put(acc2, context.longAccumulator(acc2));
String acc3 = String acc3 =
String.format( String.format(
@ -52,8 +50,7 @@ public class DedupUtility {
dedupConf.getWf().getEntityType(), dedupConf.getWf().getEntityType(),
String.format( String.format(
"Skipped records for count(%s) >= %s", "Skipped records for count(%s) >= %s",
dedupConf.getWf().getOrderField(), dedupConf.getWf().getOrderField(), dedupConf.getWf().getGroupMaxSize()));
dedupConf.getWf().getGroupMaxSize()));
accumulators.put(acc3, context.longAccumulator(acc3)); accumulators.put(acc3, context.longAccumulator(acc3));
String acc4 = String.format("%s::%s", dedupConf.getWf().getEntityType(), "skip list"); String acc4 = String.format("%s::%s", dedupConf.getWf().getEntityType(), "skip list");
accumulators.put(acc4, context.longAccumulator(acc4)); accumulators.put(acc4, context.longAccumulator(acc4));
@ -62,9 +59,7 @@ public class DedupUtility {
accumulators.put(acc5, context.longAccumulator(acc5)); accumulators.put(acc5, context.longAccumulator(acc5));
String acc6 = String acc6 =
String.format( String.format(
"%s::%s", "%s::%s", dedupConf.getWf().getEntityType(), "d < " + dedupConf.getWf().getThreshold());
dedupConf.getWf().getEntityType(),
"d < " + dedupConf.getWf().getThreshold());
accumulators.put(acc6, context.longAccumulator(acc6)); accumulators.put(acc6, context.longAccumulator(acc6));
return accumulators; return accumulators;
@ -139,10 +134,7 @@ public class DedupUtility {
final Map<String, Author> basePidAuthorMap = final Map<String, Author> basePidAuthorMap =
base.stream() base.stream()
.filter(a -> a.getPid() != null && a.getPid().size() > 0) .filter(a -> a.getPid() != null && a.getPid().size() > 0)
.flatMap( .flatMap(a -> a.getPid().stream().map(p -> new Tuple2<>(p.toComparableString(), a)))
a ->
a.getPid().stream()
.map(p -> new Tuple2<>(p.toComparableString(), a)))
.collect(Collectors.toMap(Tuple2::_1, Tuple2::_2, (x1, x2) -> x1)); .collect(Collectors.toMap(Tuple2::_1, Tuple2::_2, (x1, x2) -> x1));
final List<Tuple2<StructuredProperty, Author>> pidToEnrich = final List<Tuple2<StructuredProperty, Author>> pidToEnrich =
@ -151,10 +143,7 @@ public class DedupUtility {
.flatMap( .flatMap(
a -> a ->
a.getPid().stream() a.getPid().stream()
.filter( .filter(p -> !basePidAuthorMap.containsKey(p.toComparableString()))
p ->
!basePidAuthorMap.containsKey(
p.toComparableString()))
.map(p -> new Tuple2<>(p, a))) .map(p -> new Tuple2<>(p, a)))
.collect(Collectors.toList()); .collect(Collectors.toList());
@ -193,14 +182,13 @@ public class DedupUtility {
.score(normalize(pa.getSurnameString()), normalize(pb.getSurnameString())); .score(normalize(pa.getSurnameString()), normalize(pb.getSurnameString()));
} else { } else {
return new JaroWinkler() return new JaroWinkler()
.score( .score(normalize(pa.getNormalisedFullname()), normalize(pb.getNormalisedFullname()));
normalize(pa.getNormalisedFullname()),
normalize(pb.getNormalisedFullname()));
} }
} }
private static String normalize(final String s) { private static String normalize(final String s) {
return nfd(s).toLowerCase() return nfd(s)
.toLowerCase()
// do not compact the regexes in a single expression, would cause StackOverflowError // do not compact the regexes in a single expression, would cause StackOverflowError
// in case // in case
// of large input strings // of large input strings

View File

@ -70,7 +70,8 @@ public class Deduper implements Serializable {
Map<String, LongAccumulator> accumulators = Map<String, LongAccumulator> accumulators =
DedupUtility.constructAccumulator(config, context.sc()); DedupUtility.constructAccumulator(config, context.sc());
return blocks.flatMapToPair( return blocks
.flatMapToPair(
(PairFlatMapFunction<Tuple2<String, Iterable<MapDocument>>, String, String>) (PairFlatMapFunction<Tuple2<String, Iterable<MapDocument>>, String, String>)
it -> { it -> {
final SparkReporter reporter = new SparkReporter(accumulators); final SparkReporter reporter = new SparkReporter(accumulators);
@ -79,13 +80,10 @@ public class Deduper implements Serializable {
}) })
.mapToPair( .mapToPair(
(PairFunction<Tuple2<String, String>, String, Tuple2<String, String>>) (PairFunction<Tuple2<String, String>, String, Tuple2<String, String>>)
item -> item -> new Tuple2<String, Tuple2<String, String>>(item._1() + item._2(), item))
new Tuple2<String, Tuple2<String, String>>(
item._1() + item._2(), item))
.reduceByKey((a, b) -> a) .reduceByKey((a, b) -> a)
.mapToPair( .mapToPair(
(PairFunction<Tuple2<String, Tuple2<String, String>>, String, String>) (PairFunction<Tuple2<String, Tuple2<String, String>>, String, String>) Tuple2::_2);
Tuple2::_2);
} }
/** /**
@ -95,9 +93,7 @@ public class Deduper implements Serializable {
* @param: the dedup configuration * @param: the dedup configuration
*/ */
public static JavaPairRDD<String, Iterable<MapDocument>> createBlocks( public static JavaPairRDD<String, Iterable<MapDocument>> createBlocks(
JavaSparkContext context, JavaSparkContext context, JavaPairRDD<String, MapDocument> mapDocs, DedupConfig config) {
JavaPairRDD<String, MapDocument> mapDocs,
DedupConfig config) {
return mapDocs return mapDocs
// the reduce is just to be sure that we haven't document with same id // the reduce is just to be sure that we haven't document with same id
.reduceByKey((a, b) -> a) .reduceByKey((a, b) -> a)
@ -114,9 +110,7 @@ public class Deduper implements Serializable {
} }
public static JavaPairRDD<String, List<MapDocument>> createsortedBlocks( public static JavaPairRDD<String, List<MapDocument>> createsortedBlocks(
JavaSparkContext context, JavaSparkContext context, JavaPairRDD<String, MapDocument> mapDocs, DedupConfig config) {
JavaPairRDD<String, MapDocument> mapDocs,
DedupConfig config) {
final String of = config.getWf().getOrderField(); final String of = config.getWf().getOrderField();
final int maxQueueSize = config.getWf().getGroupMaxSize(); final int maxQueueSize = config.getWf().getGroupMaxSize();
return mapDocs return mapDocs
@ -130,8 +124,7 @@ public class Deduper implements Serializable {
DedupUtility.getGroupingKeys(config, a).stream() DedupUtility.getGroupingKeys(config, a).stream()
.map( .map(
it -> { it -> {
List<MapDocument> tmp = List<MapDocument> tmp = new ArrayList<>();
new ArrayList<>();
tmp.add(a); tmp.add(a);
return new Tuple2<>(it, tmp); return new Tuple2<>(it, tmp);
}) })
@ -141,11 +134,8 @@ public class Deduper implements Serializable {
(Function2<List<MapDocument>, List<MapDocument>, List<MapDocument>>) (Function2<List<MapDocument>, List<MapDocument>, List<MapDocument>>)
(v1, v2) -> { (v1, v2) -> {
v1.addAll(v2); v1.addAll(v2);
v1.sort( v1.sort(Comparator.comparing(a -> a.getFieldMap().get(of).stringValue()));
Comparator.comparing( if (v1.size() > maxQueueSize) return new ArrayList<>(v1.subList(0, maxQueueSize));
a -> a.getFieldMap().get(of).stringValue()));
if (v1.size() > maxQueueSize)
return new ArrayList<>(v1.subList(0, maxQueueSize));
return v1; return v1;
}); });
} }
@ -162,42 +152,33 @@ public class Deduper implements Serializable {
return entities.mapToPair( return entities.mapToPair(
(PairFunction<String, String, MapDocument>) (PairFunction<String, String, MapDocument>)
s -> { s -> {
MapDocument mapDocument = MapDocument mapDocument = MapDocumentUtil.asMapDocumentWithJPath(config, s);
MapDocumentUtil.asMapDocumentWithJPath(config, s); return new Tuple2<String, MapDocument>(mapDocument.getIdentifier(), mapDocument);
return new Tuple2<String, MapDocument>(
mapDocument.getIdentifier(), mapDocument);
}); });
} }
public static JavaPairRDD<String, String> computeRelations2( public static JavaPairRDD<String, String> computeRelations2(
JavaSparkContext context, JavaSparkContext context, JavaPairRDD<String, List<MapDocument>> blocks, DedupConfig config) {
JavaPairRDD<String, List<MapDocument>> blocks,
DedupConfig config) {
Map<String, LongAccumulator> accumulators = Map<String, LongAccumulator> accumulators =
DedupUtility.constructAccumulator(config, context.sc()); DedupUtility.constructAccumulator(config, context.sc());
return blocks.flatMapToPair( return blocks
.flatMapToPair(
(PairFlatMapFunction<Tuple2<String, List<MapDocument>>, String, String>) (PairFlatMapFunction<Tuple2<String, List<MapDocument>>, String, String>)
it -> { it -> {
try { try {
final SparkReporter reporter = final SparkReporter reporter = new SparkReporter(accumulators);
new SparkReporter(accumulators); new BlockProcessor(config).processSortedBlock(it._1(), it._2(), reporter);
new BlockProcessor(config)
.processSortedBlock(it._1(), it._2(), reporter);
return reporter.getRelations().iterator(); return reporter.getRelations().iterator();
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException( throw new RuntimeException(it._2().get(0).getIdentifier(), e);
it._2().get(0).getIdentifier(), e);
} }
}) })
.mapToPair( .mapToPair(
(PairFunction<Tuple2<String, String>, String, Tuple2<String, String>>) (PairFunction<Tuple2<String, String>, String, Tuple2<String, String>>)
item -> item -> new Tuple2<String, Tuple2<String, String>>(item._1() + item._2(), item))
new Tuple2<String, Tuple2<String, String>>(
item._1() + item._2(), item))
.reduceByKey((a, b) -> a) .reduceByKey((a, b) -> a)
.mapToPair( .mapToPair(
(PairFunction<Tuple2<String, Tuple2<String, String>>, String, String>) (PairFunction<Tuple2<String, Tuple2<String, String>>, String, String>) Tuple2::_2);
Tuple2::_2);
} }
} }

View File

@ -53,7 +53,8 @@ public class SparkCreateConnectedComponent {
s -> new Tuple2<Object, String>(getHashcode(s), s)); s -> new Tuple2<Object, String>(getHashcode(s), s));
final Dataset<Relation> similarityRelations = final Dataset<Relation> similarityRelations =
spark.read() spark
.read()
.load(DedupUtility.createSimRelPath(targetPath, entity)) .load(DedupUtility.createSimRelPath(targetPath, entity))
.as(Encoders.bean(Relation.class)); .as(Encoders.bean(Relation.class));
final RDD<Edge<String>> edgeRdd = final RDD<Edge<String>> edgeRdd =
@ -62,13 +63,10 @@ public class SparkCreateConnectedComponent {
.map( .map(
it -> it ->
new Edge<>( new Edge<>(
getHashcode(it.getSource()), getHashcode(it.getSource()), getHashcode(it.getTarget()), it.getRelClass()))
getHashcode(it.getTarget()),
it.getRelClass()))
.rdd(); .rdd();
final JavaRDD<ConnectedComponent> cc = final JavaRDD<ConnectedComponent> cc =
GraphProcessor.findCCs( GraphProcessor.findCCs(vertexes.rdd(), edgeRdd, dedupConf.getWf().getMaxIterations())
vertexes.rdd(), edgeRdd, dedupConf.getWf().getMaxIterations())
.toJavaRDD(); .toJavaRDD();
final Dataset<Relation> mergeRelation = final Dataset<Relation> mergeRelation =
spark.createDataset( spark.createDataset(
@ -79,21 +77,16 @@ public class SparkCreateConnectedComponent {
c.getDocIds().stream() c.getDocIds().stream()
.flatMap( .flatMap(
id -> { id -> {
List<Relation> tmp = List<Relation> tmp = new ArrayList<>();
new ArrayList<>(); Relation r = new Relation();
Relation r = r.setSource(c.getCcId());
new Relation();
r.setSource(
c.getCcId());
r.setTarget(id); r.setTarget(id);
r.setRelClass("merges"); r.setRelClass("merges");
tmp.add(r); tmp.add(r);
r = new Relation(); r = new Relation();
r.setTarget( r.setTarget(c.getCcId());
c.getCcId());
r.setSource(id); r.setSource(id);
r.setRelClass( r.setRelClass("isMergedIn");
"isMergedIn");
tmp.add(r); tmp.add(r);
return tmp.stream(); return tmp.stream();
}) })

View File

@ -46,8 +46,7 @@ public class SparkCreateSimRels {
sc.textFile(inputPath + "/" + entity) sc.textFile(inputPath + "/" + entity)
.mapToPair( .mapToPair(
s -> { s -> {
MapDocument d = MapDocument d = MapDocumentUtil.asMapDocumentWithJPath(dedupConf, s);
MapDocumentUtil.asMapDocumentWithJPath(dedupConf, s);
return new Tuple2<>(d.getIdentifier(), d); return new Tuple2<>(d.getIdentifier(), d);
}); });
@ -58,8 +57,7 @@ public class SparkCreateSimRels {
// mapDocument, dedupConf); // mapDocument, dedupConf);
// create relations by comparing only elements in the same group // create relations by comparing only elements in the same group
final JavaPairRDD<String, String> dedupRels = final JavaPairRDD<String, String> dedupRels = Deduper.computeRelations2(sc, blocks, dedupConf);
Deduper.computeRelations2(sc, blocks, dedupConf);
// final JavaPairRDD<String,String> dedupRels = Deduper.computeRelations(sc, blocks, // final JavaPairRDD<String,String> dedupRels = Deduper.computeRelations(sc, blocks,
// dedupConf); // dedupConf);
@ -73,7 +71,8 @@ public class SparkCreateSimRels {
return r; return r;
}); });
spark.createDataset(isSimilarToRDD.rdd(), Encoders.bean(Relation.class)) spark
.createDataset(isSimilarToRDD.rdd(), Encoders.bean(Relation.class))
.write() .write()
.mode("overwrite") .mode("overwrite")
.save(DedupUtility.createSimRelPath(targetPath, entity)); .save(DedupUtility.createSimRelPath(targetPath, entity));

View File

@ -41,7 +41,8 @@ public class SparkPropagateRelationsJob {
final String targetRelPath = parser.get("targetRelPath"); final String targetRelPath = parser.get("targetRelPath");
final Dataset<Relation> merge = final Dataset<Relation> merge =
spark.read() spark
.read()
.load(mergeRelPath) .load(mergeRelPath)
.as(Encoders.bean(Relation.class)) .as(Encoders.bean(Relation.class))
.where("relClass == 'merges'"); .where("relClass == 'merges'");
@ -57,25 +58,20 @@ public class SparkPropagateRelationsJob {
final Relation mergeRelation = r._2(); final Relation mergeRelation = r._2();
final Relation relation = r._1(); final Relation relation = r._1();
if (mergeRelation != null) if (mergeRelation != null) relation.setSource(mergeRelation.getSource());
relation.setSource(mergeRelation.getSource());
return relation; return relation;
}, },
Encoders.bean(Relation.class)); Encoders.bean(Relation.class));
final Dataset<Relation> secondJoin = final Dataset<Relation> secondJoin =
firstJoin firstJoin
.joinWith( .joinWith(merge, merge.col("target").equalTo(firstJoin.col("target")), "left_outer")
merge,
merge.col("target").equalTo(firstJoin.col("target")),
"left_outer")
.map( .map(
(MapFunction<Tuple2<Relation, Relation>, Relation>) (MapFunction<Tuple2<Relation, Relation>, Relation>)
r -> { r -> {
final Relation mergeRelation = r._2(); final Relation mergeRelation = r._2();
final Relation relation = r._1(); final Relation relation = r._1();
if (mergeRelation != null) if (mergeRelation != null) relation.setTarget(mergeRelation.getSource());
relation.setTarget(mergeRelation.getSource());
return relation; return relation;
}, },
Encoders.bean(Relation.class)); Encoders.bean(Relation.class));

View File

@ -44,16 +44,13 @@ public class SparkUpdateEntityJob {
final String entity = parser.get("entity"); final String entity = parser.get("entity");
final String destination = parser.get("targetPath"); final String destination = parser.get("targetPath");
final Dataset<Relation> df = final Dataset<Relation> df = spark.read().load(mergeRelPath).as(Encoders.bean(Relation.class));
spark.read().load(mergeRelPath).as(Encoders.bean(Relation.class));
final JavaPairRDD<String, String> mergedIds = final JavaPairRDD<String, String> mergedIds =
df.where("relClass == 'merges'") df.where("relClass == 'merges'")
.select(df.col("target")) .select(df.col("target"))
.distinct() .distinct()
.toJavaRDD() .toJavaRDD()
.mapToPair( .mapToPair((PairFunction<Row, String, String>) r -> new Tuple2<>(r.getString(0), "d"));
(PairFunction<Row, String, String>)
r -> new Tuple2<>(r.getString(0), "d"));
final JavaRDD<String> sourceEntity = sc.textFile(entityPath); final JavaRDD<String> sourceEntity = sc.textFile(entityPath);
final JavaRDD<String> dedupEntity = sc.textFile(dedupRecordPath); final JavaRDD<String> dedupEntity = sc.textFile(dedupRecordPath);

View File

@ -48,8 +48,7 @@ public class CrossrefImporter {
ESClient client = ESClient client =
timestamp > 0 timestamp > 0
? new ESClient( ? new ESClient("ip-90-147-167-25.ct1.garrservices.it", "crossref", timestamp)
"ip-90-147-167-25.ct1.garrservices.it", "crossref", timestamp)
: new ESClient("ip-90-147-167-25.ct1.garrservices.it", "crossref"); : new ESClient("ip-90-147-167-25.ct1.garrservices.it", "crossref");
try (SequenceFile.Writer writer = try (SequenceFile.Writer writer =
@ -72,9 +71,7 @@ public class CrossrefImporter {
end = System.currentTimeMillis(); end = System.currentTimeMillis();
final float time = (end - start) / 1000.0F; final float time = (end - start) / 1000.0F;
logger.info( logger.info(
String.format( String.format("Imported %d records last 100000 imported in %f seconds", i, time));
"Imported %d records last 100000 imported in %f seconds",
i, time));
start = System.currentTimeMillis(); start = System.currentTimeMillis();
} }
} }

Some files were not shown because too many files have changed in this diff Show More