{
    "id": "FM_kwic",
    "name": "FM_kwic",
    "features": {
        "adt": {
            "name": "adt",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "all_lines": {
            "name": "all_lines",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "alpha_sort": {
            "name": "alpha_sort",
            "optional": false,
            "type": "FEATURE",
            "note": ""
        },
        "arch_style": {
            "name": "arch_style",
            "optional": false,
            "type": "XOR",
            "note": ""
        },
        "ascendant": {
            "name": "ascendant",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "case_sensitivity": {
            "name": "case_sensitivity",
            "optional": false,
            "type": "XOR",
            "note": ""
        },
        "circular_shift": {
            "name": "circular_shift",
            "optional": false,
            "type": "FEATURE",
            "note": ""
        },
        "compression": {
            "name": "compression",
            "optional": true,
            "type": "XOR",
            "note": ""
        },
        "console": {
            "name": "console",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "descendant": {
            "name": "descendant",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "each_line": {
            "name": "each_line",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "explicit": {
            "name": "explicit",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "file": {
            "name": "file",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "implicit": {
            "name": "implicit",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "implicit_invocation": {
            "name": "implicit_invocation",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "input_output": {
            "name": "input_output",
            "optional": false,
            "type": "OR",
            "note": ""
        },
        "insensitive": {
            "name": "insensitive",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "kwic": {
            "name": "kwic",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "noise_words": {
            "name": "noise_words",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "order": {
            "name": "order",
            "optional": false,
            "type": "XOR",
            "note": ""
        },
        "pipe_and_filter": {
            "name": "pipe_and_filter",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "sensitive": {
            "name": "sensitive",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "shared_data": {
            "name": "shared_data",
            "optional": true,
            "type": "FEATURE",
            "note": ""
        },
        "shift_data": {
            "name": "shift_data",
            "optional": false,
            "type": "XOR",
            "note": ""
        },
        "shift_processing": {
            "name": "shift_processing",
            "optional": false,
            "type": "FEATURE",
            "note": ""
        }
    },
    "tree": {
        "id": "kwic",
        "children": [
            {
                "id": "alpha_sort",
                "children": [
                    {
                        "id": "case_sensitivity",
                        "children": [
                            {
                                "id": "insensitive"
                            },
                            {
                                "id": "sensitive"
                            }
                        ]
                    },
                    {
                        "id": "order",
                        "children": [
                            {
                                "id": "ascendant"
                            },
                            {
                                "id": "descendant"
                            }
                        ]
                    }
                ]
            },
            {
                "id": "arch_style",
                "children": [
                    {
                        "id": "adt"
                    },
                    {
                        "id": "implicit_invocation"
                    },
                    {
                        "id": "pipe_and_filter"
                    },
                    {
                        "id": "shared_data"
                    }
                ]
            },
            {
                "id": "circular_shift",
                "children": [
                    {
                        "id": "compression",
                        "children": [
                            {
                                "id": "all_lines"
                            },
                            {
                                "id": "each_line"
                            },
                            {
                                "id": "noise_words"
                            },
                            {
                                "id": "shift_processing"
                            }
                        ]
                    },
                    {
                        "id": "shift_data",
                        "children": [
                            {
                                "id": "explicit"
                            },
                            {
                                "id": "implicit"
                            }
                        ]
                    }
                ]
            },
            {
                "id": "input_output",
                "children": [
                    {
                        "id": "console"
                    },
                    {
                        "id": "file"
                    }
                ]
            }
        ]
    },
    "constraints": {
        "Constraint 0": {
            "type": "ImpliesTerm",
            "operands": [
                {
                    "type": "FeatureTerm",
                    "operands": [
                        "compression"
                    ]
                },
                {
                    "type": "FeatureTerm",
                    "operands": [
                        "explicit"
                    ]
                }
            ]
        },
        "Constraint 1": {
            "type": "ImpliesTerm",
            "operands": [
                {
                    "type": "FeatureTerm",
                    "operands": [
                        "pipe_and_filter"
                    ]
                },
                {
                    "type": "FeatureTerm",
                    "operands": [
                        "all_lines"
                    ]
                }
            ]
        },
        "Constraint 2": {
            "type": "ImpliesTerm",
            "operands": [
                {
                    "type": "FeatureTerm",
                    "operands": [
                        "pipe_and_filter"
                    ]
                },
                {
                    "type": "FeatureTerm",
                    "operands": [
                        "explicit"
                    ]
                }
            ]
        }
    }
}