Domain transformation languages
First Claim
Patent Images
1. A computer-readable hardware device containing instructions that, when executed by a computer system, cause the computer system to perform operations comprising:
- mapping a domain-specific document to an abstract language representation of the document;
receiving at least two notational choices, the receiving comprising;
receiving a first notational choice, the first notational choice specifying how a first type of items are to be formatted when displayed, andreceiving a second notational choice different from the first notational choice, the second notational choice specifying how a second type of items are to be formatted when displayed,wherein the document includes at least one item of the first type of items and at least one item of the second type of items;
mapping the abstract language representation to a concrete language representation of the document based on the received at least two notational choices;
determining a layout of the concrete language representation;
for each of a plurality of elements of the concrete language representation of the document, mapping the element of the concrete language representation to an element of a graphical language representation of the document based on the determined layout; and
displaying the document based on the graphical language representationwherein the first type of items are trees so that the first notational choice specifies how trees are to be formatted when displayed, andwherein the second type of items are programming blocks so that the second notational choice specifies how programming blocks are to be formatted when displayed.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system for transforming documents from different domains into a common representation for viewing and editing is provided. The system prepares the domain-specific document for visual representation by performing a series of transformations in a pipeline that convert the document from its domain-specific input state to a series of intermediate languages. The intermediate languages share the same syntax regardless of the domain of the document being transformed.
-
Citations
32 Claims
-
1. A computer-readable hardware device containing instructions that, when executed by a computer system, cause the computer system to perform operations comprising:
-
mapping a domain-specific document to an abstract language representation of the document; receiving at least two notational choices, the receiving comprising; receiving a first notational choice, the first notational choice specifying how a first type of items are to be formatted when displayed, and receiving a second notational choice different from the first notational choice, the second notational choice specifying how a second type of items are to be formatted when displayed, wherein the document includes at least one item of the first type of items and at least one item of the second type of items; mapping the abstract language representation to a concrete language representation of the document based on the received at least two notational choices; determining a layout of the concrete language representation; for each of a plurality of elements of the concrete language representation of the document, mapping the element of the concrete language representation to an element of a graphical language representation of the document based on the determined layout; and displaying the document based on the graphical language representation wherein the first type of items are trees so that the first notational choice specifies how trees are to be formatted when displayed, and wherein the second type of items are programming blocks so that the second notational choice specifies how programming blocks are to be formatted when displayed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system having a memory and a processor for representing a document specific to a domain for interaction with a user, comprising:
-
a domain-to-abstract language component configured to transform a domain language document in a domain language to an abstract language document in an abstract language at least in part by mapping elements of the domain language document to abstract language elements of the abstract language, wherein the domain-to-abstract language component is specific to the domain of the domain language document and wherein the abstract language represents the abstract language document in a set of domain-independent terms; an abstract-to-concrete language component configured to transform the abstract language document in the abstract language to a concrete language document in a concrete language at least in part by mapping elements of the abstract language document to concrete language elements of the concrete language based on two or more notational choices received from the user, wherein the abstract-to-concrete language component is independent of the domain of the domain language document and wherein the concrete language represents the concrete language document after a specific set of marks has been chosen, and wherein the concrete language document is based on each of the two or more notational choices received from the user; and a concrete-to-graphical language component configured to transform the concrete language document in the concrete language to a graphical language document in a graphical language at least in part by mapping elements of the concrete language document to graphical language elements of the graphical language based on dimensions of a display area, wherein the concrete-to-graphical language component is independent of the domain of the domain language document, wherein each notational choice specifies how at least one type of item in the graphical language document is to be formatted when displayed, wherein a first type of items are programming blocks so that a first notational choice specifies how programming blocks are to be formatted when displayed, wherein the document includes at least one programming block, and wherein each of the components comprises computer-executable instructions stored in the memory for execution by the system. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A computer-readable hardware device containing instructions that, when executed by a computer system, cause the computer system to perform operations for preparing a document, the operations comprising:
-
mapping the document to an abstract language representation of the document; receiving a first notational choice, the first notational choice specifying how a first type of items are to be formatted when displayed; receiving a second notational choice different from the first notational choice, the second notational choice specifying how a second type of items are to be formatted when displayed; receiving a third notational choice different from the first notational choice and different from the second notational choice, the third notational choice specifying how a third type of items are to be formatted when displayed; mapping the abstract language representation of the document to a concrete language representation of the document based on the received notational choices, wherein the mapping comprises, for a first item of the first type of the abstract language representation of the document, using the first notational choice to map the first item of the abstract language representation of the document to a first concrete language element, for a second item of the second type of the abstract language representation of the document, using the second notational choice to map the second item of the abstract language representation of the document to a second concrete language element, and for a third item of the third type of the abstract language representation of the document, using the third notational choice to map the third item of the abstract language representation of the document to a third concrete language element; determining a layout of the concrete language representation; and for each of a plurality of elements of the concrete language representation of the document, mapping the element of the concrete language representation to an element of a graphical language representation of the document based on the determined layout, wherein the first type of items are fractions so that the first notational choice specifies how fractions are to be formatted when displayed, wherein the second type of items are trees so that the second notational choice specifies how trees are to be formatted when displayed, wherein the third type of items are programming blocks so that the third notational choice specifies how programming blocks are to be formatted when displayed, and wherein the document includes at least one item of the first type of items, at least one item of the second type of items, and at least one item of the third type of items.
-
-
23. A method, comprising:
-
mapping a document in a first domain to an abstract language representation of the document; receiving at least two notational choices, each notational choice specifying how at least one type of item in the document is to be formatted when displayed; mapping the abstract language representation to a concrete language representation of the document based on the received at least two notational choices; determining a layout of the concrete language representation; and for each of a plurality of elements of the concrete language representation of the document, mapping the element of the concrete language representation to an element of a graphical language representation of the document based on the determined layout, wherein the receiving at least two notational choices, each notational choice specifying how at least one type of item is to be formatted when displayed, comprises receiving a first notational choice, the first notational choice specifying how a first type of items are to be formatted when displayed, wherein the first type of items are trees so that the first notational choice specifies how trees are to be formatted when displayed, wherein the document includes at least one tree. - View Dependent Claims (24, 25, 26, 27)
-
-
28. A system, having a memory and a processor, comprising:
-
a component configured to receive notational choices related to an abstract language representation of a document, each notational choice specifying how at least one type of item in the document is to be formatted when displayed; a component configured to map an abstract language representation of the document to a concrete language representation of the document based on two or more received notational choices related to an abstract language representation of the document; a component configured to, for each of a plurality of elements of the concrete language representation of the document, map the element of the concrete language representation to an element of a graphical language representation of the document that does not contain source code based on a determined layout; a component configured to incorporate detected changes to the document into the graphical language representation of the document, wherein a first detected change is invalid for the document; a component configured to represent the first detected change using a pending language representation; a component configured to reverse-map the incorporated changes from the graphical language representation to the document; and a component configured to detect graphical language elements selected by a user based on a displayed representation of the document, wherein the component configured to receive notational choices related to an abstract language representation of the document, each notational choice specifying how at least one type of item in the document is to be formatted when displayed, is configured to receive a first notational choice specifying how a first type of items are to be formatted when displayed, wherein the first type of items are programming blocks so that the first notational choice specifies how programming blocks are to be formatted when displayed, and wherein the document includes at least one programming block, and wherein each of the components comprises computer-executable instructions stored in the memory for execution by the system. - View Dependent Claims (29)
-
-
30. A system, having a memory and a processor, comprising:
-
a component configured to receive notational choices related to an abstract language representation of a document, each notational choice specifying how at least one type of item in the document is to be formatted when displayed; a component configured to map an abstract language representation of the document to a concrete language representation of the document based on two or more received notational choices related to an abstract language representation of the document; a component configured to, for each of a plurality of elements of the concrete language representation of the document, map the element of the concrete language representation to an element of a graphical language representation of the document that does not contain source code based on a determined layout; a component configured to incorporate detected changes to the document into the graphical language representation of the document, wherein a first detected change is invalid for the document; a component configured to represent the first detected change using a pending language representation; a component configured to reverse-map the incorporated changes from the graphical language representation to the document; and a component configured to detect graphical language elements selected by a user based on a displayed representation of the document, wherein the component configured to receive notational choices related to an abstract language representation of the document, each notational choice specifying how at least one type of item in the document is to be formatted when displayed, is configured to receive a first notational choice, the first notational choice specifying how a first type of items are to be formatted when displayed, wherein the first type of items are trees so that the first notational choice specifies how trees are to be formatted when displayed, and wherein the document includes at least one tree.
-
-
31. A method, comprising:
-
mapping a document in a first domain to an abstract language representation of the document; receiving at least two notational choices, each notational choice specifying how at least one type of item in the document is to be formatted when displayed; mapping the abstract language representation to a concrete language representation of the document based on the received at least two notational choices; determining a layout of the concrete language representation; and for each of a plurality of elements of the concrete language representation of the document, mapping the element of the concrete language representation to an element of a graphical language representation of the document based on the determined layout, wherein receiving at least two notational choices, each notational choice specifying how at least one type of item in the document is to be formatted when displayed comprises receiving a first notational choice specifying how a first type of items are to be formatted when displayed, wherein the first type of items are programming blocks so that the first notational choice specifies how programming blocks are to be formatted when displayed, and wherein the document includes at least one programming block.
-
-
32. A computer-readable hardware device containing instructions that, when executed by a computer system, cause the computer system to perform operations for preparing a document, the operations comprising:
-
mapping the document to an abstract language representation of the document; receiving a first notational choice, the first notational choice specifying how a first type of items in the document are to be formatted when displayed, wherein the first type of items are programming blocks so that the first notational choice specifies how programming blocks are to be formatted when displayed, and wherein the document includes at least one programming block; receiving a second notational choice different from the first notational choice, the second notational choice specifying how a second type of items in the document are to be formatted when displayed; receiving a third notational choice different from the first notational choice and different from the second notational choice, the third notational choice specifying how a third type of items in the document are to be formatted when displayed; mapping the abstract language representation of the document to a concrete language representation of the document based on the received notational choices, wherein the mapping comprises, for a first item of the first type of the abstract language representation of the document, using the first notational choice to map the first item of the abstract language representation of the document to a first concrete language element, for a second item of the second type of the abstract language representation of the document, using the second notational choice to map the second item of the abstract language representation of the document to a second concrete language element, and for a third item of the third type of the abstract language representation of the document, using the third notational choice to map the third item of the abstract language representation of the document to a third concrete language element; determining a layout of the concrete language representation; and for each of a plurality of elements of the concrete language representation of the document, mapping the element of the concrete language representation to an element of a graphical language representation of the document based on the determined layout.
-
Specification