Claims
- 1. A method for sharing source code over a network, comprising:
analyzing source code generated on a sharing node in the network to identify a set of code patterns, and assigning at least one predetermined category to the source code based on the identified set of code patterns; storing code pattern information that is based on the analysis and assignment in a directory; and selectively indexing the source code.
- 2. The method of claim 1, further comprising notifying a set of other nodes in the network of the availability of the source code.
- 3. The method of claim 1, wherein the code pattern information comprises the set of code patterns, the at least one category and an identity of the sharing node.
- 4. The method of claim 1, wherein the selectively indexing step comprises indexing relevant portions of the analyzed source code.
- 5. The method of claim 4, wherein the selectively indexing step comprises:
recognizing at least one programming language of the source code; indexing relevant portions of the source code based on the at least one programming language; recognizing and indexing a graph of source code dependencies corresponding to the source code; and recognizing and indexing a set of code types in a hierarchy associated with the source code.
- 6. The method of claim 5, wherein the step of recognizing and indexing a set of code types in a hierarchy associated with the source code, comprises:
recognizing a code type hierarchy associated with the source code; and indexing the set of code types identified in the code type hierarchy.
- 7. The method of claim 1, further comprising accessing the source code from a receiving node in the network.
- 8. The method of claim 7, wherein the accessing step comprises:
analyzing working code on the receiving node to identify a context of the working code, and assigning at least one predetermined category to the working code based on the identified context; querying the directory to determine a location of the source code; and retrieving the source code from the sharing node using the determined location.
- 9. The method of claim 1, wherein the network is a peer-to-peer network.
- 10. A system for sharing source code over a network, comprising:
a code pattern classifier for analyzing source code generated on a sharing node in the network to identify a set of code patterns, and for assigning at least one predetermined category to the source code based on the identified set of code patterns, wherein code pattern information that is based on the analysis and assignment is stored in a directory; and a source code indexer for selectively indexing the source code.
- 11. The system of claim 10, further comprising a code sharing notifier for notifying a set of other nodes in the network of the availability of the source code.
- 12. The system of claim 10, wherein the code pattern information comprises the set of code patterns, the at least one predetermined category, and an identity of the sharing node.
- 13. The system of claim 10, wherein the source code indexer comprises:
a programming language recognizer for recognizing at least one programming language of the source code; a selective code content indexer for indexing relevant portions of the source code based on the at least one programming language; a dependency graph indexer for recognizing and indexing a graph of source code dependencies corresponding to the source code; a code type hierarchy recognizer for recognizing a code type hierarchy associated with the source code; and an associated code type indexer for indexing a set of code types from the code type hierarchy that is associated with the source code.
- 14. The system of claim 10, further comprising a system for accessing the source code on a receiving node in the network comprising:
a context classifier for analyzing working code on the receiving node to identify a context of the working code, and for assigning at least one predetermined category to the working code based on the identified context; a query generator for querying the directory using the at least one predetermined category assigned to the working code; a category selector for receiving a response to the query from the directory, wherein the response includes the at least one predetermined category assigned to the source code; and a code pattern requestor for retrieving the source code from the sharing node to the receiving node upon selection of the at least one predetermined category assigned to the source code.
- 15. A program product stored on a recordable medium for sharing source code over a network, which when executed, comprises:
program code for analyzing source code generated on a sharing node in the network to identify a set of code patterns, and for assigning at least one predetermined category to the source code that is based on the identified set of code patterns, wherein code pattern information based on the analysis and assignment is stored in a directory; and program code for selectively indexing the source code.
- 16. The program product of claim 15, further comprising program code for notifying a set of other nodes in the network of the availability of the source code.
- 17. The program product of claim 15, wherein the code pattern information comprises the set of code patterns, the at least one predetermined category, and an identity of the sharing node.
- 18. The program product of claim 15, wherein the program code for selectively indexing the source code comprises:
program code for recognizing at least one programming language of the source code; program code for indexing relevant portions of the source code based on the at least one programming language; program code for recognizing and indexing a graph of source code dependencies corresponding to the source code; program code for recognizing a code type hierarchy associated with the source code; and program code for indexing a set of code types from the code type hierarchy that is associated with the source code.
- 19. The program product of claim 15, further comprising program code for accessing the source code on a receiving node in the network comprising:
program code for analyzing working code on the receiving node to identify a context of the working code, and for assigning at least one predetermined category to the working code based on the identified context; program code for querying the directory using the at least one predetermined category assigned to the working code; program code for receiving a response to the query from the directory, wherein the response includes the at least one predetermined category assigned to the source code; and program code for retrieving the source code from the sharing node to the receiving node upon selection of the at least one predetermined category assigned to the source code.
- 20. A method for selectively indexing source code for sharing over a network, comprising:
recognizing at least one programming language of the source code; indexing relevant portions of the source code based on the at least one programming language; recognizing and indexing a graph of source code dependencies corresponding to the source code; and recognizing and indexing a set of code types in a hierarchy associated with the source code.
- 21. The method of claim 20, wherein the step of recognizing and indexing a set of code types in a hierarchy associated with the source code, comprises:
recognizing a code type hierarchy associated with the source code; and indexing the set of code types identified in the code type hierarchy.
- 22. The method of claim 20, wherein the network is a peer-to-peer network.
- 23. A system for selectively indexing source code for sharing over a network, comprising:
a programming language recognizer for recognizing at least one programming language of the source code; a selective code content indexer for indexing relevant portions of the source code based on the at least one programming language; a dependency graph indexer for recognizing and indexing a graph of source code dependencies corresponding to the source code; a code type hierarchy recognizer for recognizing a code type hierarchy associated with the source code; and an associated code type indexer for indexing a set of code types from the code type hierarchy that is associated with the source code.
- 24. A program product stored on a recordable medium for selectively indexing source code for sharing over a network, which when executed, comprises:
program code for recognizing at least one programming language of the source code; program code for indexing relevant portions of the source code based on the at least one programming language; program code for recognizing and indexing a graph of source code dependencies corresponding to the source code; program code for recognizing a code type hierarchy associated with the source code; and program code for indexing a set of code types from the code type hierarchy that is associated with the source code.
- 25. A method for accessing source code shared over a network, comprising:
analyzing working code on a receiving node in the network to identify a context of the working code, and assigning at least one predetermined category to the working code based on the identified context; querying a directory using the at least one predetermined category assigned to the working code to identify at least one predetermined category assigned to source code that is relevant to the working code; and retrieving the source code from a sharing node in the network to the retrieving node based on the at least one category assigned to the source code.
- 26. The method of claim 25, wherein the retrieving step comprises retrieving the source code from the sharing node to the retrieving node upon selection of the at least one category assigned to the source code.
- 27. The method of claim 25, wherein the retrieving step comprises querying a search engine corresponding to the sharing node to retrieve the source code.
- 28. The method of claim 25, further comprising:
analyzing the source code on the sharing node to identify a set of code patterns, and assigning the at least one predetermined category to the source code based on the identified set of code patterns; storing code pattern information that is based on the analysis and assignment in a directory; and selectively indexing the source code, prior to analyzing the working code.
- 29. The method of claim 28, further comprising notifying a set of other nodes in the network of the availability of the source code.
- 30. The method of claim 28, wherein the selectively indexing step comprises:
recognizing at least one programming language of the source code; indexing relevant portions of the source code based on the at least one programming language; recognizing and indexing a graph of source code dependencies corresponding to the source code; and recognizing and indexing a set of code types in a hierarchy associated with the source code.
- 31. The method of claim 25, wherein the network is a peer-to-peer network.
- 32. A system for accessing source code shared over a network, comprising:
a context classifier for analyzing working code on the receiving node to identify a context of the working code, and for assigning at least one predetermined category to the working code based on the identified context; a query generator for querying a directory using the at least one predetermined category assigned to the working code to identify at least one predetermined category assigned to source code that is relevant to the working code; and a code pattern requestor for retrieving the source code from a sharing node in the network to the receiving node based on the at least one predetermined category assigned to the source code.
- 33. The system of claim 32 further comprising a category selector for receiving a response to the query from the directory, wherein the response includes the at least one predetermined category assigned to the source code, and for selecting the at least one predetermined category assigned to the source code.
- 34. The system of claim 32, further comprising:
a code pattern classifier for analyzing the source code on the sharing node to identify a set of code patterns, and for assigning the at least one predetermined category to the source code based on the identified set of code patterns, wherein code pattern information that is based on the analysis and assignment is stored in the directory; a source code indexer for selectively indexing the source code; and a code sharing notifier for notifying a set of other nodes in the network of the availability of the source code.
- 35. The system of claim 34, wherein the source code indexer comprises:
a programming language recognizer for recognizing at least one programming language of the source code; a selective code content indexer for indexing relevant portions of the source code based on the at least one programming language; a dependency graph indexer for recognizing and indexing a graph of source code dependencies corresponding to the source code; a code type hierarchy recognizer for recognizing a code type hierarchy associated with the source code; and an associated code type indexer for indexing a set of code types from the code type hierarchy that is associated with the source code.
- 36. A program product stored on a recordable medium for accessing source code shared over a network, which when executed comprising:
program code for analyzing working code on the receiving node to identify a context of the working code, and for assigning at least one predetermined category to the working code based on the identified context; program code for querying a directory using the at least one predetermined category assigned to the working code to identify at least one predetermined category assigned to source code that is relevant to the working code; and program code for retrieving the source code from a sharing node in the network to the receiving node based on the at least one predetermined category assigned to the source code.
- 37. The program product of claim 36, further comprising program code for receiving a response to the query from the directory, wherein the response includes the at least one predetermined category assigned to the source code, and for selecting the at least one predetermined category assigned to the source code.
- 38. The program product of claim 36, further comprising:
program code for analyzing the source code on the sharing node to identify a set of code patterns, and for assigning the at least one predetermined category to the source code based on the identified set of code patterns, wherein code pattern information that is based on the analysis and assignment is stored in the directory; program code for selectively indexing the source code; and program code for notifying a set of other nodes in the network of the availability of the source code.
- 39. The program product of claim 38, wherein the program code for selectively indexing comprises:
program code for recognizing at least one programming language of the source code; program code for indexing relevant portions of the source code based on the at least one programming language; program code for recognizing and indexing a graph of source code dependencies corresponding to the source code; program code for recognizing a code type hierarchy associated with the source code; and program code for indexing a set of code types from the code type hierarchy that is associated with the source code.
CROSS-REFERENCE TO CO-PENDING APPLICATIONS
[0001] This application is related in some aspects to commonly owned U.S. patent application Ser. No. 10/295,717, filed Nov. 15, 2002, entitled “Method for Directly Providing Content and Services Via a Computer Network,” and to commonly owned U.S. provisional patent application Ser. No. 60/332,651, filed Nov. 16, 2001, entitled “Method for Directly Providing Content and Services Via a Computer Network,” both of which are hereby incorporated by reference.