Jupiter Notebook intended to quicly compare the content and structure of two versions of the input XML files.
# Following variables should contain the relative path and name of the two files to compare
book="26-jude.xml"
version1="20230123"
version2="20230628"
file1_path = "xml/"+version1+"/"+book
file2_path = "xml/"+version2+"/"+book
# Set to True if detailed reporting is required
details = True
import xml.etree.ElementTree as ET
def normalize_text(text):
return ' '.join(text.strip().split())
def compare_xml_files(file1, file2, details):
# Parse the XML files
tree1 = ET.parse(file1)
tree2 = ET.parse(file2)
# Get the root elements of both trees
root1 = tree1.getroot()
root2 = tree2.getroot()
# Compare the two root elements and their descendants recursively
differences=compare_elements(root1, root2, details)
if not differences:
print("The XML files are identical.")
else:
print("The XML files are different.")
if details:
print("\nDetails:")
for diff in differences:
print(diff)
def compare_elements(elem1, elem2, details):
differences = []
ReportTag=ReportElement=ReportChildren=ReportChildDiff=True
# Compare element tags and attributes
if elem1.tag != elem2.tag or elem1.attrib != elem2.attrib:
if details:
differences.append(f"\n")
for attr in elem1.attrib:
if attr not in elem2.attrib:
differences.append(f"Attribute: {attr} is present in the first file but not in the second file")
for attr in elem2.attrib:
if attr not in elem1.attrib:
differences.append(f"Attribute: {attr} is present in the second file but not in the first file")
for attr in elem1.attrib:
if attr in elem2.attrib and elem1.attrib[attr] != elem2.attrib[attr]:
differences.append(f"Attribute: {attr} - Value in first file: {elem1.attrib[attr]}, Value in second file: {elem2.attrib[attr]}")
differences.append(f"Details on Tag/Attributes: {elem1.tag} != {elem2.tag} or {elem1.attrib} != {elem2.attrib}")
else:
if ReportTag==True:
differences.append("Differences in Tag/Attributes found")
ReportTag=False
# Normalize and compare element text
text1 = normalize_text(elem1.text)
text2 = normalize_text(elem2.text)
if text1 != text2:
if details:
differences.append(f"Text: {elem1.text} != {elem2.text}\n")
else:
if ReportElement==True:
differences.append("Differences in element Text found")
ReportElement=False
# Compare element children recursively
children1 = list(elem1)
children2 = list(elem2)
if len(children1) != len(children2):
if details:
differences.append(f"Number of Children: {len(children1)} != {len(children2)}\n")
else:
if ReportChildren==True:
differences.append("Differences in number of children")
ReportChildren=False
else:
for child1, child2 in zip(children1, children2):
child_diff = compare_elements(child1, child2, details)
differences.extend(child_diff)
return differences
# this is the main part
print ("Comparing file ",file1_path," with ",file2_path,"\n\nResult:",end="")
compare_xml_files(file1_path, file2_path, details)
Comparing file xml/20230123/26-jude.xml with xml/20230628/26-jude.xml Result:The XML files are different. Details: Attribute: appositioncontainer is present in the first file but not in the second file Attribute: class is present in the second file but not in the first file Attribute: type - Value in first file: group, Value in second file: apposition Details on Tag/Attributes: wg != wg or {'type': 'group', 'appositioncontainer': 'true', 'rule': 'Np-Appos', 'role': 's'} != {'type': 'apposition', 'class': 'np', 'rule': 'Np-Appos', 'role': 's'} Attribute: role is present in the first file but not in the second file Attribute: junction is present in the second file but not in the first file Details on Tag/Attributes: wg != wg or {'role': 'apposition', 'rule': 'NpaNp'} != {'junction': 'apposition', 'rule': 'NpaNp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'ofNPNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'ofNPNP'} Attribute: appositioncontainer is present in the first file but not in the second file Attribute: class is present in the second file but not in the first file Attribute: type - Value in first file: group, Value in second file: apposition Details on Tag/Attributes: wg != wg or {'type': 'group', 'appositioncontainer': 'true', 'rule': 'Np-Appos'} != {'type': 'apposition', 'class': 'np', 'rule': 'Np-Appos'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NPofNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NPofNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 'io', 'type': 'modifier-clause-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 'io'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'AdjpNp', 'type': 'modifier-clause-scope'} != {'class': 'np', 'rule': 'AdjpNp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} Attribute: appositioncontainer is present in the first file but not in the second file Attribute: class is present in the second file but not in the first file Attribute: type - Value in first file: group, Value in second file: apposition Details on Tag/Attributes: wg != wg or {'type': 'group', 'appositioncontainer': 'true', 'rule': 'Np-Appos'} != {'type': 'apposition', 'class': 'np', 'rule': 'Np-Appos'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: appositioncontainer is present in the first file but not in the second file Attribute: class is present in the second file but not in the first file Attribute: type - Value in first file: group, Value in second file: apposition Details on Tag/Attributes: wg != wg or {'type': 'group', 'appositioncontainer': 'true', 'rule': 'Np-Appos', 'role': 'adv'} != {'type': 'apposition', 'class': 'np', 'rule': 'Np-Appos', 'role': 'adv'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'All-NP', 'role': 'o', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'All-NP', 'role': 'o'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'articular': 'true', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'articular': 'true', 'rule': 'PrepNp', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'AdjpNp', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'AdjpNp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'ofNPNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'ofNPNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 'adv', 'type': 'modifier-clause-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'AdjpNp', 'type': 'modifier-clause-scope'} != {'class': 'np', 'rule': 'AdjpNp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetAdj', 'role': 'io', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetAdj', 'role': 'io'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-clause-scope', 'rule': 'Conj-CL'} != {'rule': 'Conj-CL'} Attribute: appositioncontainer is present in the first file but not in the second file Attribute: class is present in the second file but not in the first file Attribute: type - Value in first file: group, Value in second file: apposition Details on Tag/Attributes: wg != wg or {'type': 'group', 'appositioncontainer': 'true', 'rule': 'Np-Appos', 'role': 's'} != {'type': 'apposition', 'class': 'np', 'rule': 'Np-Appos', 'role': 's'} Attribute: appositioncontainer is present in the first file but not in the second file Attribute: class is present in the second file but not in the first file Attribute: type - Value in first file: group, Value in second file: apposition Details on Tag/Attributes: wg != wg or {'type': 'group', 'appositioncontainer': 'true', 'rule': 'Np-Appos'} != {'type': 'apposition', 'class': 'np', 'rule': 'Np-Appos'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'AdjpNp', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'AdjpNp'} Attribute: type is present in the first file but not in the second file Attribute: role is present in the first file but not in the second file Attribute: junction is present in the second file but not in the first file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-clause-scope', 'role': 'apposition', 'articular': 'true', 'rule': 'DetCL'} != {'junction': 'apposition', 'articular': 'true', 'rule': 'DetCL'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'articular': 'true', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'articular': 'true', 'rule': 'PrepNp', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'Demo-NP', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'Demo-NP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 'o', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 'o'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'ofNPNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'ofNPNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NPofNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NPofNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 'o', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 'o'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'AdjpNp', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'AdjpNp'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: appositioncontainer is present in the first file but not in the second file Attribute: class is present in the second file but not in the first file Attribute: type - Value in first file: group, Value in second file: apposition Details on Tag/Attributes: wg != wg or {'type': 'group', 'appositioncontainer': 'true', 'rule': 'Np-Appos'} != {'type': 'apposition', 'class': 'np', 'rule': 'Np-Appos'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NPofNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NPofNP'} Attribute: role is present in the first file but not in the second file Attribute: appositioncontainer is present in the first file but not in the second file Attribute: class is present in the second file but not in the first file Attribute: junction is present in the second file but not in the first file Attribute: type - Value in first file: group, Value in second file: apposition Details on Tag/Attributes: wg != wg or {'type': 'group', 'role': 'apposition', 'appositioncontainer': 'true', 'rule': 'Np-Appos'} != {'type': 'apposition', 'class': 'np', 'junction': 'apposition', 'rule': 'Np-Appos'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-clause-scope', 'rule': 'Conj-CL'} != {'rule': 'Conj-CL'} Attribute: class is present in the second file but not in the first file Details on Tag/Attributes: wg != wg or {'Rule': 'ClCl', 'nodeId': '650010050080600'} != {'Rule': 'ClCl', 'class': 'cl', 'nodeId': '650010050080600'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NPofNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NPofNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetAdj', 'role': 'adv', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetAdj', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-clause-scope', 'articular': 'true', 'rule': 'DetCL', 'role': 'o'} != {'articular': 'true', 'rule': 'DetCL', 'role': 'o'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: appositioncontainer is present in the first file but not in the second file Attribute: class is present in the second file but not in the first file Attribute: type - Value in first file: group, Value in second file: apposition Details on Tag/Attributes: wg != wg or {'type': 'group', 'appositioncontainer': 'true', 'rule': 'Np-Appos', 'role': 'o'} != {'type': 'apposition', 'class': 'np', 'rule': 'Np-Appos', 'role': 'o'} Attribute: type is present in the first file but not in the second file Attribute: role is present in the first file but not in the second file Attribute: junction is present in the second file but not in the first file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-clause-scope', 'role': 'apposition', 'articular': 'true', 'rule': 'DetCL'} != {'junction': 'apposition', 'articular': 'true', 'rule': 'DetCL'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 'o', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 'o'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'ofNPNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'ofNPNP'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 'o', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 'o'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'AdjpNp', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'AdjpNp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NPofNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NPofNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'AdjpNp', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'AdjpNp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NpAdjp', 'role': 'adv', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NpAdjp', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Attribute: role - Value in first file: adv, Value in second file: o Details on Tag/Attributes: wg != wg or {'type': 'wrapper-clause-scope', 'rule': 'sub-CL', 'role': 'adv'} != {'rule': 'sub-CL', 'role': 'o'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'PpNp2Np', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'PpNp2Np'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'rule': 'PrepNp'} != {'class': 'pp', 'rule': 'PrepNp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 'o', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 'o'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'AdjpNp', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'AdjpNp'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NpAdjp', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NpAdjp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'ofNPNP', 'role': 'o', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'ofNPNP', 'role': 'o'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NpAdjp', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NpAdjp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-clause-scope', 'rule': 'Conj-CL'} != {'rule': 'Conj-CL'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'AdvpNp', 'role': 's', 'type': 'modifier-clause-scope'} != {'class': 'np', 'rule': 'AdvpNp', 'role': 's'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'Demo-NP', 'type': 'modifier-clause-scope'} != {'class': 'np', 'rule': 'Demo-NP'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-clause-scope', 'rule': 'Conj-CL'} != {'rule': 'Conj-CL'} Attribute: type is present in the first file but not in the second file Attribute: rule is present in the first file but not in the second file Attribute: Rule is present in the second file but not in the first file Attribute: class is present in the second file but not in the first file Attribute: nodeId is present in the second file but not in the first file Details on Tag/Attributes: wg != wg or {'type': 'group', 'rule': 'ClCl2'} != {'Rule': 'ClCl2', 'class': 'cl', 'nodeId': '650010090060230'} Number of Children: 2 != 5 Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-clause-scope', 'rule': 'Conj-CL'} != {'rule': 'Conj-CL'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-clause-scope', 'articular': 'true', 'rule': 'sub-CL', 'junction': 'subordinate', 'role': 'adv'} != {'articular': 'true', 'rule': 'sub-CL', 'junction': 'subordinate', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 's', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 's'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'AdjpNp', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'AdjpNp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Attribute: rule is present in the first file but not in the second file Attribute: Rule is present in the second file but not in the first file Attribute: class is present in the second file but not in the first file Attribute: nodeId is present in the second file but not in the first file Details on Tag/Attributes: wg != wg or {'type': 'group', 'rule': 'ClCl'} != {'Rule': 'ClCl', 'class': 'cl', 'nodeId': '650010110010210'} Number of Children: 2 != 3 Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 'p', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 'p'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'PpNp2Np', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'PpNp2Np'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'articular': 'true', 'rule': 'PrepNp'} != {'class': 'pp', 'articular': 'true', 'rule': 'PrepNp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NPofNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NPofNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NpAdjp', 'type': 'modifier-clause-scope'} != {'class': 'np', 'rule': 'NpAdjp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NpAdjp', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NpAdjp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NpAdjp', 'type': 'modifier-clause-scope'} != {'class': 'np', 'rule': 'NpAdjp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NpAdjp', 'type': 'modifier-clause-scope'} != {'class': 'np', 'rule': 'NpAdjp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NpAdjp', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NpAdjp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NpAdjp', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NpAdjp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NpAdjp', 'type': 'modifier-clause-scope'} != {'class': 'np', 'rule': 'NpAdjp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NPofNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NPofNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NpAdjp', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NpAdjp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 'o', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 'o'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'ofNPNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'ofNPNP'} Attribute: class is present in the second file but not in the first file Attribute: type - Value in first file: apposition-group, Value in second file: apposition Details on Tag/Attributes: wg != wg or {'type': 'apposition-group', 'rule': 'NP-CL'} != {'class': 'np', 'type': 'apposition', 'rule': 'NP-CL'} Attribute: appositioncontainer is present in the first file but not in the second file Attribute: class is present in the second file but not in the first file Attribute: type - Value in first file: group, Value in second file: apposition Details on Tag/Attributes: wg != wg or {'type': 'group', 'appositioncontainer': 'true', 'rule': 'Np-Appos'} != {'type': 'apposition', 'class': 'np', 'rule': 'Np-Appos'} Attribute: role is present in the first file but not in the second file Attribute: junction is present in the second file but not in the first file Details on Tag/Attributes: wg != wg or {'class': 'cl', 'clauseType': 'nominalized', 'rule': 'IO-S-ADV-V', 'role': 'apposition'} != {'class': 'cl', 'clauseType': 'nominalized', 'rule': 'IO-S-ADV-V', 'junction': 'apposition'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 's', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 's'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NPofNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NPofNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-clause-scope', 'rule': 'Conj-CL'} != {'rule': 'Conj-CL'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'AdvpNp', 'role': 'io', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'AdvpNp', 'role': 'io'} Attribute: appositioncontainer is present in the first file but not in the second file Attribute: class is present in the second file but not in the first file Attribute: type - Value in first file: group, Value in second file: apposition Details on Tag/Attributes: wg != wg or {'type': 'group', 'appositioncontainer': 'true', 'rule': 'Np-Appos', 'role': 's'} != {'type': 'apposition', 'class': 'np', 'rule': 'Np-Appos', 'role': 's'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NpPp', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NpPp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'rule': 'PrepNp'} != {'class': 'pp', 'rule': 'PrepNp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'AdjpNp', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'AdjpNp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NPofNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NPofNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'All-NP', 'role': 'o', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'All-NP', 'role': 'o'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetAdj', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetAdj'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'articular': 'true', 'rule': 'PrepNp'} != {'class': 'pp', 'articular': 'true', 'rule': 'PrepNp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'All-NP', 'type': 'modifier-clause-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'All-NP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'type': 'modifier-clause-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP'} Attribute: class is present in the second file but not in the first file Attribute: type - Value in first file: apposition-group, Value in second file: apposition Details on Tag/Attributes: wg != wg or {'type': 'apposition-group', 'rule': 'NP-CL'} != {'class': 'np', 'type': 'apposition', 'rule': 'NP-CL'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NPofNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NPofNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NPofNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NPofNP'} Attribute: role is present in the first file but not in the second file Attribute: junction is present in the second file but not in the first file Details on Tag/Attributes: wg != wg or {'class': 'cl', 'clauseType': 'nominalized', 'rule': 'ADV-V', 'role': 'apposition'} != {'class': 'cl', 'clauseType': 'nominalized', 'rule': 'ADV-V', 'junction': 'apposition'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'articular': 'true', 'rule': 'PrepNp'} != {'class': 'pp', 'articular': 'true', 'rule': 'PrepNp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'All-NP', 'type': 'modifier-clause-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'All-NP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'type': 'modifier-clause-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP'} Attribute: class is present in the second file but not in the first file Attribute: type - Value in first file: apposition-group, Value in second file: apposition Details on Tag/Attributes: wg != wg or {'type': 'apposition-group', 'rule': 'NP-CL'} != {'class': 'np', 'type': 'apposition', 'rule': 'NP-CL'} Attribute: role is present in the first file but not in the second file Attribute: junction is present in the second file but not in the first file Details on Tag/Attributes: wg != wg or {'class': 'cl', 'clauseType': 'nominalized', 'rule': 'O-V-ADV-S', 'role': 'apposition'} != {'class': 'cl', 'clauseType': 'nominalized', 'rule': 'O-V-ADV-S', 'junction': 'apposition'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NpAdjp', 'role': 's', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NpAdjp', 'role': 's'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NpAdjp', 'role': 'p', 'type': 'modifier-clause-scope'} != {'class': 'np', 'rule': 'NpAdjp', 'role': 'p'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NpAdjp', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NpAdjp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'articular': 'true', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'articular': 'true', 'rule': 'PrepNp', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NPofNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NPofNP'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 's', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 's'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NPofNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NPofNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'rule': 'NP-Prep', 'role': 'adv'} != {'class': 'pp', 'rule': 'NP-Prep', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-clause-scope', 'rule': 'Conj-CL'} != {'rule': 'Conj-CL'} Attribute: appositioncontainer is present in the first file but not in the second file Attribute: class is present in the second file but not in the first file Attribute: type - Value in first file: group, Value in second file: apposition Details on Tag/Attributes: wg != wg or {'type': 'group', 'appositioncontainer': 'true', 'articular': 'true', 'rule': 'Np-Appos', 'role': 'o'} != {'type': 'apposition', 'class': 'np', 'articular': 'true', 'rule': 'Np-Appos', 'role': 'o'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP'} Attribute: type is present in the first file but not in the second file Attribute: role is present in the first file but not in the second file Attribute: junction is present in the second file but not in the first file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-clause-scope', 'role': 'apposition', 'articular': 'true', 'rule': 'DetCL'} != {'junction': 'apposition', 'articular': 'true', 'rule': 'DetCL'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'articular': 'true', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'articular': 'true', 'rule': 'PrepNp', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NPofNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NPofNP'} Attribute: appositioncontainer is present in the first file but not in the second file Attribute: class is present in the second file but not in the first file Attribute: type - Value in first file: group, Value in second file: apposition Details on Tag/Attributes: wg != wg or {'type': 'group', 'appositioncontainer': 'true', 'articular': 'true', 'rule': 'Np-Appos'} != {'type': 'apposition', 'class': 'np', 'articular': 'true', 'rule': 'Np-Appos'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NPofNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NPofNP'} Attribute: role is present in the first file but not in the second file Attribute: appositioncontainer is present in the first file but not in the second file Attribute: class is present in the second file but not in the first file Attribute: junction is present in the second file but not in the first file Attribute: type - Value in first file: group, Value in second file: apposition Details on Tag/Attributes: wg != wg or {'type': 'group', 'role': 'apposition', 'appositioncontainer': 'true', 'rule': 'Np-Appos'} != {'type': 'apposition', 'class': 'np', 'junction': 'apposition', 'rule': 'Np-Appos'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-clause-scope', 'rule': 'that-VP'} != {'rule': 'that-VP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'articular': 'true', 'rule': 'PrepNp', 'role': 'p'} != {'class': 'pp', 'articular': 'true', 'rule': 'PrepNp', 'role': 'p'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'AdjpNp', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'AdjpNp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NpAdjp', 'role': 's', 'type': 'modifier-clause-scope'} != {'class': 'np', 'rule': 'NpAdjp', 'role': 's'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'articular': 'true', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'articular': 'true', 'rule': 'PrepNp', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'ofNPNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'ofNPNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NPofNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NPofNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-clause-scope', 'articular': 'true', 'rule': 'DetCL'} != {'articular': 'true', 'rule': 'DetCL'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-clause-scope', 'rule': 'Conj-CL'} != {'rule': 'Conj-CL'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 'adv', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'AdjpNp', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'AdjpNp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'ofNPNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'ofNPNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NpAdjp', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NpAdjp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NPofNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NPofNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 'o', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'role': 'o'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NPofNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NPofNP'} Attribute: appositioncontainer is present in the first file but not in the second file Attribute: class is present in the second file but not in the first file Attribute: type - Value in first file: group, Value in second file: apposition Details on Tag/Attributes: wg != wg or {'type': 'group', 'appositioncontainer': 'true', 'articular': 'true', 'rule': 'Np-Appos'} != {'type': 'apposition', 'class': 'np', 'articular': 'true', 'rule': 'Np-Appos'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NPofNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NPofNP'} Attribute: role is present in the first file but not in the second file Attribute: appositioncontainer is present in the first file but not in the second file Attribute: class is present in the second file but not in the first file Attribute: junction is present in the second file but not in the first file Attribute: type - Value in first file: group, Value in second file: apposition Details on Tag/Attributes: wg != wg or {'type': 'group', 'role': 'apposition', 'appositioncontainer': 'true', 'rule': 'Np-Appos'} != {'type': 'apposition', 'class': 'np', 'junction': 'apposition', 'rule': 'Np-Appos'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NpAdjp', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NpAdjp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-clause-scope', 'rule': 'Conj-CL'} != {'rule': 'Conj-CL'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NpAdjp', 'role': 'o', 'type': 'modifier-clause-scope'} != {'class': 'np', 'rule': 'NpAdjp', 'role': 'o'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'AdvpNp', 'role': 'o', 'type': 'modifier-clause-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'AdvpNp', 'role': 'o'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'type': 'modifier-clause-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'AdjpNp', 'type': 'modifier-clause-scope'} != {'class': 'np', 'rule': 'AdjpNp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'articular': 'true', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'articular': 'true', 'rule': 'PrepNp', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-clause-scope', 'rule': 'Conj-CL'} != {'rule': 'Conj-CL'} Attribute: appositioncontainer is present in the first file but not in the second file Attribute: class is present in the second file but not in the first file Attribute: type - Value in first file: group, Value in second file: apposition Details on Tag/Attributes: wg != wg or {'type': 'group', 'appositioncontainer': 'true', 'articular': 'true', 'rule': 'Np-Appos', 'role': 'io'} != {'type': 'apposition', 'class': 'np', 'articular': 'true', 'rule': 'Np-Appos', 'role': 'io'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'type': 'modifier-clause-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'articular': 'true', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'articular': 'true', 'rule': 'PrepNp', 'role': 'adv'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NPofNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NPofNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} Attribute: role is present in the first file but not in the second file Attribute: appositioncontainer is present in the first file but not in the second file Attribute: class is present in the second file but not in the first file Attribute: junction is present in the second file but not in the first file Attribute: type - Value in first file: group, Value in second file: apposition Details on Tag/Attributes: wg != wg or {'type': 'group', 'role': 'apposition', 'appositioncontainer': 'true', 'rule': 'Np-Appos'} != {'type': 'apposition', 'class': 'np', 'junction': 'apposition', 'rule': 'Np-Appos'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'AdjpNp', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'AdjpNp'} Attribute: role is present in the first file but not in the second file Attribute: type is present in the first file but not in the second file Attribute: junction is present in the second file but not in the first file Details on Tag/Attributes: wg != wg or {'class': 'np', 'role': 'apposition', 'rule': 'NPofNP', 'type': 'modifier-scope'} != {'class': 'np', 'junction': 'apposition', 'rule': 'NPofNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} != {'class': 'pp', 'rule': 'PrepNp', 'role': 'adv'} Attribute: appositioncontainer is present in the first file but not in the second file Attribute: class is present in the second file but not in the first file Attribute: type - Value in first file: group, Value in second file: apposition Details on Tag/Attributes: wg != wg or {'type': 'group', 'appositioncontainer': 'true', 'rule': 'Np-Appos'} != {'type': 'apposition', 'class': 'np', 'rule': 'Np-Appos'} Attribute: appositioncontainer is present in the first file but not in the second file Attribute: class is present in the second file but not in the first file Attribute: type - Value in first file: group, Value in second file: apposition Details on Tag/Attributes: wg != wg or {'type': 'group', 'appositioncontainer': 'true', 'rule': 'Np-Appos'} != {'type': 'apposition', 'class': 'np', 'rule': 'Np-Appos'} Attribute: role is present in the first file but not in the second file Attribute: type is present in the first file but not in the second file Attribute: junction is present in the second file but not in the first file Details on Tag/Attributes: wg != wg or {'class': 'np', 'role': 'apposition', 'articular': 'true', 'rule': 'DetNP', 'type': 'modifier-scope'} != {'class': 'np', 'junction': 'apposition', 'articular': 'true', 'rule': 'DetNP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'rule': 'NPofNP', 'type': 'modifier-scope'} != {'class': 'np', 'rule': 'NPofNP'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'articular': 'true', 'rule': 'PrepNp'} != {'class': 'pp', 'articular': 'true', 'rule': 'PrepNp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'All-NP', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'All-NP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: type - Value in first file: conjuncted-wg, Value in second file: group Details on Tag/Attributes: wg != wg or {'type': 'conjuncted-wg'} != {'type': 'group'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'type': 'wrapper-scope', 'class': 'pp', 'articular': 'true', 'rule': 'PrepNp'} != {'class': 'pp', 'articular': 'true', 'rule': 'PrepNp'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'All-NP', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'All-NP'} Attribute: type is present in the first file but not in the second file Details on Tag/Attributes: wg != wg or {'class': 'np', 'articular': 'true', 'rule': 'DetNP', 'type': 'modifier-scope'} != {'class': 'np', 'articular': 'true', 'rule': 'DetNP'}