U.S. patent application number 16/833374 was filed with the patent office on 2022-03-10 for bidding on a post in a social media platform.
The applicant listed for this patent is block.one. Invention is credited to Daniel J. Larimer, Leonardo Lima Ribeiro, Richard B. Whitner.
Application Number | 20220076354 16/833374 |
Document ID | / |
Family ID | 70332357 |
Filed Date | 2022-03-10 |
United States Patent
Application |
20220076354 |
Kind Code |
A1 |
Larimer; Daniel J. ; et
al. |
March 10, 2022 |
BIDDING ON A POST IN A SOCIAL MEDIA PLATFORM
Abstract
Systems and methods for displaying a post in a social media
platform are provided. The method includes storing a first hash
value of original content on a blockchain, the original content
stored on a server and associated with an author. The method also
includes authenticating the post for authenticity using the
blockchain, wherein the authenticating comprises determining
whether the first hash value matches the second value. The method
also includes causing the post to be displayed through the social
media platform.
Inventors: |
Larimer; Daniel J.;
(Christianburg, VA) ; Whitner; Richard B.;
(Blacksburg, VA) ; Ribeiro; Leonardo Lima;
(Blacksburg, VA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
block.one |
Grand Cayman |
|
KY |
|
|
Family ID: |
70332357 |
Appl. No.: |
16/833374 |
Filed: |
March 27, 2020 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
16428574 |
May 31, 2019 |
10636102 |
|
|
16833374 |
|
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G06Q 20/123 20130101;
G06Q 50/01 20130101; H04L 2209/56 20130101; G06Q 30/0613 20130101;
G06Q 20/384 20200501; H04L 2209/38 20130101; G06Q 2220/00 20130101;
G06Q 30/08 20130101; G06Q 20/0655 20130101; H04L 2209/466 20130101;
G06Q 20/065 20130101; H04L 9/3239 20130101 |
International
Class: |
G06Q 50/00 20060101
G06Q050/00; G06Q 30/08 20060101 G06Q030/08; G06Q 20/06 20060101
G06Q020/06; G06Q 30/06 20060101 G06Q030/06 |
Claims
1. A computer-implemented method for displaying a post in a social
media platform, comprising: storing a first hash value of original
content on a blockchain, the original content stored on a server
and associated with an author; storing a second hash value
associated with the original content on the server; authenticating
the post for authenticity using the blockchain, wherein the
authenticating comprises determining whether the first hash value
matches the second value; causing the post to be displayed through
the social media platform; and receiving bids from users on the
post, wherein the bids are fixed or adjustable.
2. The computer-implemented method of claim 1, further comprising:
in response to determining that the first hash value and the second
hash value match, displaying the post in a public forum of the
social media platform, the post comprising the original content;
determining a highest bid that is received from a highest bidder of
the users; distributing the credits that were bid to users who were
outbid and to the author; and displaying the highest bidder in a
top spot in relation to the post, the top spot displaying a profile
associated with the highest bidder, the profile comprising a link
to content of the highest bidder.
3. The computer-implemented method of claim 2, wherein receiving
bids further comprises: receiving a first bid on the post from a
first bidder, the first bid comprising a predetermined initial bid
amount of credits; and receiving a second bid on the post from a
second bidder, the second bid comprising a predetermined increment
amount.
4. The computer-implemented method of claim 3, wherein the
predetermined increment amount is determined by an
administrator.
5. The computer-implemented method of claim 2, further comprising
distributing the credits to the users as digital tokens.
6. The computer-implemented method of claim 5, further comprising
allotting a predetermined amount of digital tokens to each user
upon joining the social media platform.
7. The computer-implemented method of claim 5, further comprising
distributing a predetermined amount of digital tokens to each user
per day.
8. A system for displaying a post in a social media platform,
comprising: a memory storing sequences of instructions; and a
processor configured to execute the sequences of instructions
which, when executed, causes the processor to perform: storing a
first hash value of original content on a blockchain, the original
content stored on a server and associated with an author; storing a
second hash value associated with the original content on the
server; authenticating the post for authenticity using the
blockchain, wherein the authenticating comprises determining
whether the first hash value matches the second value; causing the
post to be displayed through the social media platform; and
receiving bids from users on the post, wherein the bids are fixed
or adjustable.
9. The system of claim 8, further comprising stored sequences of
instructions, which when executed by the processor, cause the
processor to perform: in response to determining that the first
hash value and the second hash value match, displaying the post in
a public forum of the social media platform, the post comprising
the original content; determining a highest bid that is received
from a highest bidder of the users; distributing the credits that
were bid to users who were outbid and to the author; and displaying
the highest bidder in a top spot in relation to the post, the top
spot displaying a profile associated with the highest bidder, the
profile comprising a link to content of the highest bidder.
10. The system of claim 9, further comprising stored sequences of
instructions, which when executed by the processor, cause the
processor to perform: receiving a first bid on the post from a
first bidder, the first bid comprising a predetermined initial bid
amount of credits; and receiving a second bid on the post from a
second bidder, the second bid comprising a predetermined increment
amount.
11. The system of claim 10, wherein the predetermined increment
amount is determined by an administrator.
12. The system of claim 9, further comprising stored sequences of
instructions, which when executed by the processor, cause the
processor to perform: distributing the credits to the users as
digital tokens.
13. The system of claim 12, further comprising stored sequences of
instructions, which when executed by the processor, cause the
processor to perform: allotting a predetermined amount of digital
tokens to each user upon joining the social media platform.
14. The system of claim 12, further comprising stored sequences of
instructions, which when executed by the processor, cause the
processor to perform: distributing a predetermined amount of
digital tokens to each user per day.
15. A non-transitory computer-readable storage medium is provided
including instructions that, when executed by a processor, cause
the processor to perform a method for displaying a post in a social
media platform, the method comprising: storing a first hash value
of original content on a blockchain, the original content stored on
a server and associated with an author; storing a second hash value
associated with the original content on the server; authenticating
the post for authenticity using the blockchain, wherein the
authenticating comprises determining whether the first hash value
matches the second value; causing the post to be displayed through
the social media platform; and receiving bids from users on the
post, wherein the bids are fixed or adjustable.
16. The non-transitory computer-readable storage medium of claim
15, wherein the method further comprises: in response to
determining that the first hash value and the second hash value
match, displaying the post in a public forum of the social media
platform, the post comprising the original content; determining a
highest bid that is received from a highest bidder of the users;
distributing the credits that were bid to users who were outbid and
to the author; and displaying the highest bidder in a top spot in
relation to the post, the top spot displaying a profile associated
with the highest bidder, the profile comprising a link to content
of the highest bidder.
17. The non-transitory computer-readable storage medium of claim
16, wherein the method further comprises: receiving a first bid on
the post from a first bidder, the first bid comprising a
predetermined initial bid amount of credits; and receiving a second
bid on the post from a second bidder, the second bid comprising a
predetermined increment amount.
18. The non-transitory computer-readable storage medium of claim
17, wherein the method further comprises: incrementing the
predetermined increment amount by an amount determined by an
administrator.
19. The non-transitory computer-readable storage medium of claim
16, wherein the method further comprises: distributing the credits
to the users as digital tokens.
20. The non-transitory computer-readable storage medium of claim
19, wherein the method further comprises: allotting a predetermined
amount of digital tokens to each user upon joining the social media
platform.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This present application claims the benefit of priority
under 35 U.S.C. .sctn. 120 as a continuation of U.S. patent
application Ser. No. 16/428,574, filed May 31, 2019, now allowed,
the disclosure of which is hereby incorporated by reference in its
entirety for all purposes.
TECHNICAL FIELD
[0002] The present disclosure generally relates to social media,
and more specifically relates to displaying posts in a social media
platform.
BACKGROUND
[0003] Social media platforms provide the ability to interact with
a wide variety of users online. Users may create and reply to posts
in an open forum and receive feedback, such as in the form of
upvotes, comments, likes, etc. Conventionally, receiving positive
feedback results in an improved status of the user and more
prominence to the user's profile. Similarly, a user that gives
feedback to other users receives some exposure with each given
feedback.
SUMMARY
[0004] The present disclosure provides for systems and methods for
displaying a post in a social media platform. According to one
embodiment of the present disclosure, a computer-implemented method
for displaying a post in a social media platform is provided. The
method includes storing a first hash value of original content on a
blockchain, the original content stored on a server and associated
with an author. The method also includes authenticating the post
for authenticity using the blockchain, wherein the authenticating
comprises determining whether the first hash value matches the
second value. The method also includes causing the post to be
displayed through the social media platform.
[0005] According to one embodiment of the present disclosure, a
system is provided including a processor and a memory comprising
instructions stored thereon, which when executed by the processor,
causes the processor to perform a method for displaying a post in a
social media platform. The method includes storing a first hash
value of original content on a blockchain, the original content
stored on a server and associated with an author. The method also
includes authenticating the post for authenticity using the
blockchain, wherein the authenticating comprises determining
whether the first hash value matches the second value. The method
also includes causing the post to be displayed through the social
media platform.
[0006] According to one embodiment of the present disclosure, a
non-transitory computer-readable storage medium is provided
including instructions (e.g., stored sequences of instructions)
that, when executed by a processor, cause the processor to perform
a method for displaying a post in a social media platform. The
method includes storing a first hash value of original content on a
blockchain, the original content stored on a server and associated
with an author. The method also includes authenticating the post
for authenticity using the blockchain, wherein the authenticating
comprises determining whether the first hash value matches the
second value. The method also includes causing the post to be
displayed through the social media platform.
[0007] According to one embodiment of the present disclosure, a
system is provided that includes means for storing instructions,
and means for executing the stored instructions that, when executed
by the means, cause the means to perform a method for displaying a
post in a social media platform. The method includes storing a
first hash value of original content on a blockchain, the original
content stored on a server and associated with an author. The
method also includes authenticating the post for authenticity using
the blockchain, wherein the authenticating comprises determining
whether the first hash value matches the second value. The method
also includes causing the post to be displayed through the social
media platform.
[0008] It is understood that other configurations of the subject
technology will become readily apparent to those skilled in the art
from the following detailed description, wherein various
configurations of the subject technology are shown and described by
way of illustration. As will be realized, the subject technology is
capable of other and different configurations and its several
details are capable of modification in various other respects, all
without departing from the scope of the subject technology.
Accordingly, the drawings and detailed description are to be
regarded as illustrative in nature and not as restrictive.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The accompanying drawings, which are included to provide
further understanding and are incorporated in and constitute a part
of this specification, illustrate aspects of the subject
technology, and together with the description serve to explain the
principles of the subject technology. In the drawings:
[0010] FIG. 1 illustrates an example blockchain system for
practicing some implementations of the disclosure.
[0011] FIG. 2 illustrates an example system for displaying and
bidding on a post, according to certain aspects of the
disclosure.
[0012] FIG. 3 illustrates an example screen capture of a post and
bids on the post, according to certain aspects of the
disclosure.
[0013] FIG. 4 illustrates an example flow diagram for bidding on a
post, according to certain aspects of the disclosure.
[0014] FIG. 5 is a block diagram illustrating an example computer
system with which aspects of the subject technology can be
implemented.
[0015] In one or more implementations, not all of the depicted
components in each figure may be required, and one or more
implementations may include additional components not shown in a
figure. Variations in the arrangement and type of the components
may be made without departing from the scope of the subject
disclosure. Additional components, different components, or fewer
components may be utilized within the scope of the subject
disclosure.
DETAILED DESCRIPTION
[0016] The detailed description set forth below is intended as a
description of various implementations and is not intended to
represent the only implementations in which the subject technology
may be practiced. As those skilled in the art would realize, the
described implementations may be modified in various different
ways, all without departing from the scope of the present
disclosure. Accordingly, the drawings and description are to be
regarded as illustrative in nature and not restrictive.
[0017] General Overview
[0018] Social media platforms are useful for connecting people
together and distributing information. By leveraging connections
between people, posts may be seen by a wide range of individuals
throughout the world. One way that posts achieve influence is
through positive community feedback, such as through upvotes,
comments, likes, etc. Although a user who creates content may
receive personal acclaim and recognition through receiving positive
feedback, those users who provide the positive feedback oftentimes
receive only limited exposure. Therefore, there is a need to
incentivize providing positive feedback in social media
platforms.
[0019] According to an aspect of the present disclosure, users may
bid on posts created by authors on a social media platform. The
posts may be original works by the author, and may include
information in the form of text, photos, videos, links, and other
rich content. The posts may be verified for authenticity through a
blockchain to ensure the content is indeed the work of the author.
Users may bid on the posts with tokens distributed through the
social media platform. The highest bidder may have their profiles
displayed in a prominent position in relation to the post. By being
displayed in the prominent position, the highest bidder may be able
to advertise their own interests, in addition to showing
appreciation and placing value on the author's post. The author, a
previous highest bidder, and an administrator may share in the
tokens that were utilized for bidding. The tokens may also be
utilized for other features through the social media platform.
[0020] The disclosed system addresses a problem in traditional
social media systems, namely the technical problem of incentivizing
feedback on posts. As described above, conventional social media
feedback techniques do not provide incentives for feedback from
users. The disclosed system solves this technical problem by
providing a solution also rooted in computer technology, namely, by
providing for bidding on social media posts.
[0021] The disclosed subject technology further provides
improvements to the functioning of the computer itself because it
improves verification of posts by storing posts on a blockchain.
Specifically, posts are authenticated as original works and may be
bid on by other users to upvote the post. This overcomes
shortcomings associated with current solutions, which do not
provide bidding incentives and do not validate authenticity of
posts.
[0022] As used herein, the term "blockchain" refers generally to an
open and distributed public ledger comprising a growing list of
records, which are linked using cryptography. By design, the
blockchain is resistant to modification of the data. The blockchain
can include an auditable database that provides a distributed,
replicated ledger of cryptographically certified artifacts whose
contents are extremely difficult to tamper with without detection,
and therefore, are with very high probability, true copies of the
intended content, and whose content are open for inspection via a
suitable query interface.
[0023] As used herein, the term "block" generally refers to a
record that is kept in a blockchain. For example, each block
contains a cryptographic hash of the previous block, a timestamp,
and transaction data, which can generally be represented as a
merkle tree root hash.
[0024] As used herein, the term "token" generally refers to virtual
currency tokens that may reside on their own blockchains and may
represent an asset or utility. For example, a token may represent
customer loyalty points on a blockchain that is used to manage
details for a retailer. Another token may allow a holder to view 10
hours of streaming content on a video-sharing blockchain. Another
token may represent a cryptocurrency, such as Bitcoin. Tokens may
be tradable and transferrable among the various participants of the
blockchain. Tokens may also serve as transaction units on
blockchains that are created using standard templates, like that of
the Ethereum network, which allows a user to create his/her own
tokens. Such blockchains work on the concept of smart contracts or
decentralized applications, where programmable, self-executing code
is used to process and manage the various transactions occurring on
the blockchain. Tokens may be exchanged for other tokens and/or
liquid currencies (e.g., US dollars) through currency
exchanges.
Example System Architecture
[0025] FIG. 1 illustrates a blockchain system 100 that can be
utilized for creating and verifying a digital identity. As shown,
the blockchain system 100 includes several blocks 110. For
simplicity, three blocks 110 are shown. Each block 110 includes a
previous hash 102, a transaction root 104, a timestamp 106, and a
nonce 108.
[0026] The previous hash 102 is the value obtained by hashing a
previous block 110 in the blockchain system 100. For example, if
block 110b is the Nth block in the blockchain system 100, then the
previous hash 102b is the value of the hash of block N-1, which in
this case would be block 110a. Similarly, the previous hash 102c is
the value of the hash of block 110b.
[0027] The transaction root 104 is the root hash value of a hash
tree 120 (e.g., a merkle tree) over all transactions to be added to
the block 110. For example, transactions 112a, 112b, 112c, and 112d
are to be added to block 110b. According to an aspect of the
present disclosure, transactions 112a-112d may be any type of
transaction, and may include any type of data of any length such as
photographs, videos, sound recordings, etc. In order to add
transactions 112a-112d to the blockchain system 100, each
transaction 112a-112d is hashed to obtain hashed transactions 114a,
114b, 114c, and 114d. For example, hashing transaction 112a yields
hashed transaction 114a, hashing transaction 112b yields hashed
transaction 114b, and so on.
[0028] The hashed transactions 114a-114d are then hashed with each
other to obtain hashes 116a and 116b. For example, hashed
transaction 114a is hashed with hashed transaction 114b to obtain
hash 116a, and hashed transaction 114c is hashed with hashed
transaction 114d to obtain hash 116b. Finally, hash 116a is hashed
with hash 116b to obtain the transaction root 104b. It will be
appreciated that although the hash tree 120 for block 110b is
shown, it is understood that all transaction roots 104 of all
blocks 110 in the blockchain system 100 include a corresponding
hash tree 120. As a result, each block 110 added to the blockchain
system 100 is a confirmation of all the transactions that occurred
before, making the blockchain system 100 effectively permanent and
immutable. This is because it would be computationally
impractical/impossible to modify the blocks 110 of the blockchain
system 100 by any bad actors.
[0029] According to an aspect of the present disclosure, hashing
can be accomplished using cryptographic hash functions such as,
including, but not limited to, Secure Hash Algorithm (SHA) 0,
SHA-1, SHA-2, SHA-3, . . . , SHA-256, etc., or Digital Signature
Hash Algorithm (DSA).
[0030] In operation, rewards may be issued to users who add blocks
110 to the blockchain system 100. The rewards may include monetary
fees or other incentives that may be spent either within or outside
of the blockchain system 100. In order to maintain fairness of
reward distribution and to ensure the integrity of the blockchain
system 100, users must compete with each other to add each block
110. For example, users competing to add block 110b to the
blockchain system 100 must include a proof-of-work to be considered
valid. This proof-of-work is tied to the nonce 108 and is verified
by other users (e.g., nodes) each time a block 110 is added.
According to an aspect of the present disclosure, the nonce 108 is
a 32-bit field whose value may be adjusted to either speed up or
slow down the addition of new blocks 110. Although a proof-of-work
system has been described, it is understood that the
implementations also apply to other types of systems regardless of
distributed consensus protocol, including but not limited to,
distributed proof-of-stake.
[0031] According to an aspect of the present disclosure, the
blockchain system 100 can include publicly distributed block
headers, which is a technology known to meet the requirements of
storing replicated artifacts in publicly available distributed
storage facilities that cannot be tampered with, and that are
readily available for inspection. According to an aspect, the
blockchain system 100 is a public blockchain.
[0032] Example System for Bidding on Posts
[0033] FIG. 2 illustrates an example system 200 for displaying and
bidding on a post 220 on a social media platform, according to
certain aspects of the disclosure. The system 200 may include a web
application 210 where a user 202 (e.g., a bidder) may bid on a post
220 that was created by an author 204. For example, the user 202
may bid on the post 220 with credits 230 issued through a social
media platform. The credits 230 may be tokens.
[0034] According to an aspect, the user 202 may bid on the post 220
by issuing a transaction request 212 through the web application
210. The credits 230 utilized for bidding may be distributed to the
author 204, a previous bidder 206, and an administrator 208. It is
understood that any user may be considered an author, so long as
they create and post content.
[0035] In an implementation, once users register to become members
of the social media platform, they start gaining an income. The
income may include daily credits 230 issued as tokens, such as
digital tokens, digital assets, or blockchain tokens. For example,
each user may receive a lifetime bond of credits 230 allocated to
them, which the users can draw from on a daily basis. As described
above, the credits 230 may be utilized to bid on (e.g., upvote) a
post 220. The credits 230 may be accumulated for other useful
purposes on the social media platform, and thus provide incentive
for users to be involved in the bidding process.
[0036] According to aspects, each user is able to have their own
profiles, where they can provide a link to content that they would
want to be included when they make their bids. For example, when
the user 202 bids on the post 220, the user 202 may associate
content with the bid. The content may include a link to an
advertising page that advertises something about the user 202. As
the user's bid escalates up to the top of a list of comments that
are made on the post 220, so does the content of the user 202.
[0037] According to an aspect, a bidding process may include a
first bid by a first bidder (e.g., user 206). The first bidder may
bid an initial bid amount (e.g., one credit or one token). A second
bidder (e.g., user 202) may outbid the first bidder by bidding an
increment amount over the initial bid amount. For example, the
increment amount may be 20% of the initial bid amount. If the
initial bid was 1 credit, then the second bid will be 1.2 credits.
Once the first bidder has been outbid by the second bidder, then
the first bidder will be refunded their 1 credit, and the
additional 0.2 credits will be divided between the first bidder,
the author 204, and the administrator 208. It is understood that
the increment amount of 20% is exemplary only, and other increment
amounts are permitted. The increment amount may be determined by
the administrator 208. It is further understood that bids may be
fixed or adjustable, such that users may either determine their own
bid amounts, or the bids may be predetermined by the administrator
208.
[0038] As bids go higher, more profits may be realized by the
author 204, the bidders who get outbid, and the administrator 208.
It is understood that the credits distributed may be weighted to be
in favor of the author 204 and then the previous high bidder, with
the administrator 208 taking only a modest commission. In this way,
bidding on posts is encouraged and is also fun. Users are also
incentivized to bid enough to take over a top position so that
their content may be viewable. For example, the author 204 may be a
renowned automobile critic, and creates the post 220 about a car
review. The user 202 may be someone who works at, or has interest
in, an automobile manufacturing company. By bidding to take over
the top spot, the user 202 may link advertising content to the
automobile manufacturing company, which will be visible to anyone
who sees the author's post 220.
[0039] In an implementation, each user may be given a lifetime bond
of 100,000 tokens (e.g., digital tokens), with 10 tokens issued per
day. This would come out to about 27 years' worth of daily tokens.
It is understood that the lifetime bond amount may be increased
after 27 years have passed, or for other reasons, as necessary to
keep giving tokens to the user. It is further understood that the
lifetime bond of tokens is exemplary only, and other amounts are
possible. In an aspect, if the user fails to claim the daily tokens
in a timely manner, then those tokens may be forfeited. In an
aspect, each user may be issued a bonus amount of tokens (e.g., 500
digital tokens) for signing up for the social media platform. It is
understood that various allocation methods in addition to those
described herein can be utilized to issue tokens to users.
[0040] According to aspects, the user-created content (e.g., post
220) may be registered through a blockchain in order to certify
that what gets posted is in fact what the user created. In this
way, the social medial platform may guarantee that the content
rendered is actually created by the user and not a forged or
otherwise hijacked copy of someone else's work. For example, when
the author 204 creates the post 220, the content of the post (e.g.,
text, pictures, media, links, etc.) is utilized to generate a hash
value. The hash value, along with account information of the author
204 (e.g., account name, post number, etc.) is stored on the
blockchain. The content of the post 220 may be stored on a separate
server. In an implementation, in order for the content to be
rendered as the post 220, a hash value of the content stored on the
separate server must match the hash value of the content stored on
the blockchain. If the hash values do not match, then that means
there is evidence of tampering, and the content is not posted. Of
course, this does not prevent authors from making updates,
revisions, or otherwise change their content.
[0041] Accounting logic, token issuance, token transfers, and token
management may all be stored on the blockchain, and may be managed
through smart contracts on the blockchain. For example, when the
user 202 bids on the content (e.g., post 220), an action is issued
to the blockchain to perform a bid, and the smart contract on the
blockchain will certify the user 202 and the bid, or any other
action that may be taken through a Ricardian contract. The
blockchain may also manage the math associated with distributing
the tokens, validate that account balances have sufficient funds
for bidding, etc. These may all be recorded on the blockchain
independent of any other institution having to be involved. Because
the blockchain is decentralized and public, anyone may view and
audit the log entries.
[0042] The smart contracts may be programs that are run on a
virtual machine in a virtual environment that is constructed by the
blockchain. For example, the smart contracts may be written as
programs that are loaded onto the blockchain. As people make action
requests against the smart contracts, the smart contracts get
executed and complete the requested actions, so long as predefined
conditions are met.
[0043] According to an aspect, account creation may be completed
through a smart contract by running an open account action against
the blockchain. For example, a message for opening an account may
be sent to an API endpoint on the blockchain. The message may
include a name of a user, the user's authorization, etc. The smart
contract may then issue a request for a certain amount of tokens to
be issued for the lifetime bond of that user and create an entry in
its database or in its table for that user. The smart contract may
also note that the user has X amount of tokens in the lifetime
bond, and make an initial issuance or initial transfer of tokens
from that lifetime bond to the user's token account so that the
user can immediately start spending it. Everything then gets saved,
the open account action is finished, and a transaction entry is
stored in the history of the blockchain, which may then be utilized
to build further blocks in the blockchain.
[0044] When a user (e.g., author 204) desires to post content, the
user may utilize an external web application (e.g., web application
210) to create their post. When the user submits the post, the web
application may formulate a signed request by the user and send the
signed request to the blockchain. For example, the request may
contain a hash of the text, along with a few other entries, which
toggles a post action on the smart contract. The post action may
include validation of the user (e.g., the user does not have any
penalties or restrictions against them at this moment) before
posting the content. After the content is posted, the smart
contract logs the fact that the user created a post and the
blockchain moves on to the action.
[0045] When a user (e.g., user 202) desires to bid on a post
through the web application, the user may formulate all the
parameters they need to bid, such as a bid amount, for submission
as a bid. The user may then approve a Ricardian contract that
confirms the user wishes to submit the bid, and the smart contract
may then formulate a signed request to send to the blockchain,
which indicates that user Y wants to bid X amount on author's post
number Z, and few other parameters, and sends that request to the
end point on the blockchain. The blockchain executes that command
by accessing tables about that user to get information from their
account to make sure that the user has enough information or enough
resources to do the bidding, allocates the funds, and distributes
those to the other participant. A ledger entry is then created that
goes into the blockchain history, and a few of the tables are
updated accordingly with new values.
[0046] According to additional aspects, users may self-police the
content of posts. For example, if a user posts inflammatory and/or
illegal material, other users may report that user. Once flagged,
it may be determined that a penalty should be leveraged against the
offending user. For example, the penalty may be a fine in a certain
amount of tokens, a time-out period prohibiting posts, etc. In an
implementation, a moderator (e.g., the administrator 208) may
review the offending content to affirm whether it is in bad taste,
how offensive it is, and assign a penalty in line with the offense.
Depending on the degree of offense, a fine for a certain amount may
be levied against the offending user, which may be paid directly or
garnished over a period of time until the fine is paid. The
offending user may also be put in a time-out, which effectively
restricts their ability to post or bid until the sentence is
completed.
[0047] FIG. 3 illustrates an example screen capture 300 of a post
302 and bids on the post 302, according to certain aspects of the
disclosure. The post 302 may include content 304 created by an
author. A first bid 310 (e.g., a highest bidder) may occupy a top
position 330 that is immediately below the post 302. For example,
the first bid 310 may include promotional content 312. The
promotional content 312 may only be displayed when the first bid
310 is in the top position 330. The promotional content 312 may
include links, advertisements, etc.
[0048] A second bid 320 may occupy a position below the first bid
310. As shown, the second bid 320 currently does not display any
promotional content, even though the second bid 320 may include
promotional content. If the second bid 320 out bids the first bid
310, then the second bid 320 may occupy the top position 330 to
display the promotional content. The previous top bidder then would
occupy a position below the top position 330. It is possible that
the previous top bidder falls farther below the top position to a
third place or lower position 340 based on bids from other users
outbidding the previous top bidder.
[0049] According to an aspect, only bids in the top position are
displayed. For example, the second bid 320 is shown in dotted lines
to indicate that it is optional whether to display the second bid
320.
[0050] It is understood that although two bids are shown,
additional bids may be shown below the second bid 320. According to
aspects, a predetermined number of bids may be displayed below the
post 302, with only the bid in the top position 330 displaying
promotional content.
[0051] The techniques described herein may be implemented as
method(s) that are performed by physical computing device(s), as
one or more non-transitory computer-readable storage media storing
instructions (e.g., stored sequences of instructions) which, when
executed by computing device(s), cause performance of the
method(s), or, as physical computing device(s) that are specially
configured with a combination of hardware and software that causes
performance of the method(s).
[0052] FIG. 4 illustrates an example process flow diagram 400 for a
computer-implemented method for bidding on a post, according to
certain aspects of the disclosure. For explanatory purposes, the
example process 400 is described herein with reference to the
blockchain system 100 of FIG. 1, the bidding system 200 of FIG. 2,
and the screen capture 300 of FIG. 3. Further for explanatory
purposes, the blocks of the example process 400 are described
herein as occurring in serial, or linearly. However, multiple
blocks of the example process 400 may occur in parallel. In
addition, the blocks of the example process 400 need not be
performed in the order shown and/or one or more of the blocks of
the example process 400 need not be performed. For purposes of
explanation of the subject technology, the process 400 will be
discussed in reference to FIGS. 1-3.
[0053] At block 402, post is displayed in a public forum of a
social media platform. The post may include original content
created by an author. The post may be authenticated for
authenticity through a blockchain. For example, as shown in FIG. 2,
an author 204 may submit a post 220 through the social media
platform. The post 220 may be validated for authenticity through
the blockchain.
[0054] At block 404, bids are received from users on the post. For
example, as shown in FIG. 2, a user 202 may bid on the post 220.
The bids may include credits 230 of the users. At block 406, a
highest bid is determined from a highest bidder of the users. For
example, the user 202 may outbid a previous user 206, as shown in
FIG. 2. At block 408, the credits that were bid are distributed to
the users who were outbid and to the author. For example, as
described above in relation to FIG. 2, the credit 230 may be
distributed to the previous bidder 206, the author 204, and an
administrator 208. The credit 230 may also be distributed to other
possible recipients. For example, the number and type of recipients
can be varied without changing the essence of the described process
400.
[0055] At block 410, the highest bidder is displayed in a top spot
in relation to the post. The top spot may prevalently display a
profile associated with the highest bidder. The profile may include
a link to content of the highest bidder. For example, as shown in
FIG. 3, the top spot 330 may be directly below the post 302. The
highest bidder (e.g., first bid 310) may include promotional
content 312, such as a user profile, a link, advertisements,
etc.
[0056] According to an aspect of the present disclosure, the
process 400 includes generating a first hash value associated with
an original work of the author, the first hash value based on
content of the original work. The process 400 further includes
storing the first hash value on the blockchain. The process 400
further includes storing the original work on a server. The process
400 further includes generating a second hash value for the
original work stored on the server. The process 400 further
includes authenticating the original work to be displayed as the
post when the first hash value matches the second hash value.
[0057] According to an aspect of the present disclosure, the
process 400 includes receiving a first bid on the post from a first
bidder, the first bid comprising a predetermined initial bid amount
of credits. The process 400 further includes receiving a second bid
on the post from a second bidder, the second bid comprising a
predetermined increment amount. In an implementation, the
predetermined increment amount is determined by an administrator.
For example, the predetermined increment amount may be 10% of each
preceding bid. In an aspect, a user may specify an amount greater
than a minimum predetermined increment.
[0058] According to an aspect of the present disclosure, the
process 400 includes distributing the credits to the users as
tokens. The process 400 further includes allotting a predetermined
amount of tokens to each user (e.g., as a bond) upon joining the
social media platform. The process 400 further includes
distributing a predetermined amount of tokens to each user per
day.
[0059] In an implementation, an author (e.g., author 204) creates
and publishes a post (e.g., post 302) on a social media platform.
For example, at step 402, the post is displayed in a public forum
of a social media platform. The post may be about any subject
(e.g., content 304) that the author has an interest in publishing,
such as a hobby, an opinion, a technical matter, etc. The post may
be verified through a blockchain prior to being published.
[0060] A first bidder (e.g., user 206) may bid on the post. For
example, at step 404, bids are received from users on the post. The
first bidder may post a first bid amount (e.g., bid 310), which may
be predetermined by an administrator (e.g., administrator 208). The
first bidder may initially occupy a top position (e.g., top
position 330) directly below the post of the author. Because the
first bidder is in the top position, the first bidder may have
promotional content displayed (e.g., promotional content 312). For
example, the promotional content may relate to the content of the
post and/or any promotional material that the first bidder desires
to promote (e.g., user profile, a link, advertisements, etc.).
[0061] A second bidder (e.g., user 202) may outbid the first
bidder. The second bidder may bid a predetermined increment amount
above the first bid. For example, the bid increment may be
determined by the administrator (e.g., at 10%, 20%, etc.). The bid
increment may also be customizable by the users. For example, a
user may specify an amount greater than a minimum predetermined
increment. At step 406, a highest bid is determined from a highest
bidder of the users. The bids may include credits (e.g., credits
230) of the users. At step 408, the credits that were bid are
distributed to the users who were outbid and to the author. For
example, credits may be distributed to the first bidder, the
author, and the administrator (e.g., as a commission). The
commission distributed to the administrator may be a predetermined
percentage of the bid amount. The credits may also be distributed
to other recipients in addition to, and/or in lieu of, the users
who were outbid and the author. For example, the number and type of
recipients can be varied without changing the essence of the
described process.
[0062] Because the second bidder has outbid the first bidder, the
second bidder now occupies the top position. For example, at step
410, the highest bidder is displayed in a top spot in relation to
the post. The top spot may now prevalently display a profile
associated with the second bidder (e.g., the highest bidder). The
process of bidding may continue until users stop bidding, at which
time a final highest bidder will occupy the top position with a
final highest bid amount.
[0063] According to aspects, the above-described bidding process
may take place on a continuous basis with new high bidders being
established regularly, with each successively having the top
display spot in relation to the post. As a result, subsequent
auctions would occur to replace the current high bidder. According
to aspects, the current highest bidder may display a comment as
part of winning the top display spot. In an implementation, the
current highest bidder's comment is recorded on the blockchain and
associated with the original post.
[0064] According to aspects, the initial bid price and subsequent
bid increments may be set by the bidders. According to further
aspects, the initial bid price and subsequent bid increments may be
administratively set (e.g., by an administrator). According to
aspects, the initial bid price and subsequent bid increments may be
set by an administrator. According to further aspects, the initial
bid price and subsequent bid increments may be set by the bidders.
It is understood that these are exemplary only, and the bid
increments may be set in other ways as well.
Hardware Overview
[0065] FIG. 5 is a block diagram illustrating an example computer
system 500 with which the blockchain system 100 of FIG. 1, the
bidding system 200 of FIG. 2, and the screen capture 300 of FIG. 3
may be implemented. In certain aspects, the computer system 500 may
be implemented using hardware or a combination of software and
hardware, either in a dedicated server, or integrated into another
entity, or distributed across multiple entities.
[0066] Computer system 500 (e.g., blockchain system 100, bidding
system 200, and screen capture 300) includes a bus 508 or other
communication mechanism for communicating information, and a
processor 502 coupled with bus 508 for processing information.
According to one aspect, the computer system 500 can be a
cloud-computing server of an IaaS that is able to support PaaS and
SaaS services. According to one aspect, the computer system 500 is
implemented as one or more special-purpose computing devices. The
special-purpose computing device may be hard-wired to perform the
disclosed techniques, or may include digital electronic devices
such as one or more application-specific integrated circuits
(ASICs) or field programmable gate arrays (FPGAs) that are
persistently programmed to perform the techniques, or may include
one or more general purpose hardware processors programmed to
perform the techniques pursuant to program instructions in
firmware, memory, other storage, or a combination. Such
special-purpose computing devices may also combine custom
hard-wired logic, ASICs, or FPGAs with custom programming to
accomplish the techniques. The special-purpose computing devices
may be desktop computer systems, portable computer systems,
handheld devices, networking devices, or any other device that
incorporates hard-wired and/or program logic to implement the
techniques. By way of example, the computer system 500 may be
implemented with one or more processors 502. Processor 502 may be a
general-purpose microprocessor, a microcontroller, a Digital Signal
Processor (DSP), an ASIC, an FPGA, a Programmable Logic Device
(PLD), a controller, a state machine, gated logic, discrete
hardware components, or any other suitable entity that can perform
calculations or other manipulations of information.
[0067] Computer system 500 can include, in addition to hardware,
code that creates an execution environment for the computer program
in question, e.g., code that constitutes processor firmware, a
protocol stack, a database management system, an operating system,
or a combination of one or more of them stored in an included
memory 504, such as a Random Access Memory (RAM), a flash memory, a
Read-Only Memory (ROM), a Programmable Read-Only Memory (PROM), an
Erasable PROM (EPROM), registers, a hard disk, a removable disk, a
CD-ROM, a DVD, or any other suitable storage device, coupled to bus
508 for storing information and instructions to be executed by
processor 502. The processor 502 and the memory 504 can be
supplemented by, or incorporated in, special purpose logic
circuitry. Expansion memory may also be provided and connected to
computer system 500 through input/output module 510, which may
include, for example, a SIMM (Single In Line Memory Module) card
interface. Such expansion memory may provide extra storage space
for computer system 500, or may also store applications or other
information for computer system 500. Specifically, expansion memory
may include instructions to carry out or supplement the processes
described above, and may include secure information also. Thus, for
example, expansion memory may be provided as a security module for
computer system 500, and may be programmed with instructions that
permit secure use of computer system 500. In addition, secure
applications may be provided via the SIMM cards, along with
additional information, such as placing identifying information on
the SIMM card in a non-hackable manner.
[0068] The instructions may be stored in the memory 504 and
implemented in one or more computer program products, e.g., one or
more modules of computer program instructions, encoded on a
computer-readable medium for execution by, or to control the
operation of, the computer system 500, and according to any method
well known to those of skill in the art, including, but not limited
to, computer languages such as data-oriented languages (e.g., SQL,
dBase), system languages (e.g., C, Objective-C, C++, Assembly),
architectural languages (e.g., Java, .NET), and application
languages (e.g., PHP, Ruby, Perl, Python). Instructions may also be
implemented in computer languages such as array languages,
aspect-oriented languages, assembly languages, authoring languages,
command line interface languages, compiled languages, concurrent
languages, curly-bracket languages, dataflow languages,
data-structured languages, declarative languages, esoteric
languages, extension languages, fourth-generation languages,
functional languages, interactive mode languages, interpreted
languages, iterative languages, list-based languages, little
languages, logic-based languages, machine languages, macro
languages, metaprogramming languages, multiparadigm languages,
numerical analysis, non-English-based languages, object-oriented
class-based languages, object-oriented prototype-based languages,
off-side rule languages, procedural languages, reflective
languages, rule-based languages, scripting languages, stack-based
languages, synchronous languages, syntax handling languages, visual
languages, wirth languages, embeddable languages, and xml-based
languages. Memory 504 may also be used for storing temporary
variable or other intermediate information during execution of
instructions to be executed by processor 502.
[0069] A computer program as discussed herein does not necessarily
correspond to a file in a file system. A program can be stored in a
portion of a file that holds other programs or data (e.g., one or
more scripts stored in a markup language document), in a single
file dedicated to the program in question, or in multiple
coordinated files (e.g., files that store one or more modules,
subprograms, or portions of code). A computer program can be
deployed to be executed on one computer or on multiple computers
that are located at one site or distributed across multiple sites
and interconnected by a communication network, such as in a
cloud-computing environment. The processes and logic flows
described in this specification can be performed by one or more
programmable processors executing one or more computer programs to
perform functions by operating on input data and generating
output.
[0070] Computer system 500 further includes a data storage device
506 such as a magnetic disk or optical disk, coupled to bus 508 for
storing information and instructions. Computer system 500 may be
coupled via input/output module 510 to various devices. The
input/output module 510 can be any input/output module. Example
input/output modules 510 include data ports such as USB ports. In
addition, input/output module 510 may be provided in communication
with processor 502, so as to enable near area communication of
computer system 500 with other devices. The input/output module 510
may provide, for example, wired communication in some
implementations, or wireless communication in other
implementations, and multiple interfaces may also be used. The
input/output module 510 is configured to connect to a
communications module 512. Example communications modules 512
include networking interface cards, such as Ethernet cards and
modems.
[0071] The components of the system can be interconnected by any
form or medium of digital data communication (e.g., a communication
network). The communication network can include, for example, any
one or more of a personal area network (PAN), a local area network
(LAN), a campus area network (CAN), a metropolitan area network
(MAN), a wide area network (WAN), a broadband network (BBN), the
Internet, and the like. Further, the communication network can
include, but is not limited to, for example, any one or more of the
following network topologies, including a bus network, a star
network, a ring network, a mesh network, a star-bus network, tree
or hierarchical network, or the like. The communications modules
can be, for example, modems or Ethernet cards.
[0072] For example, in certain aspects, communications module 512
can provide a two-way data communication coupling to a network link
that is connected to a local network. Wireless links and wireless
communication may also be implemented. Wireless communication may
be provided under various modes or protocols, such as GSM (Global
System for Mobile Communications), Short Message Service (SMS),
Enhanced Messaging Service (EMS), or Multimedia Messaging Service
(MMS) messaging, CDMA (Code Division Multiple Access), Time
Division Multiple Access (TDMA), Personal Digital Cellular (PDC),
Wideband CDMA, General Packet Radio Service (GPRS), or LTE
(Long-Term Evolution), among others. Such communication may occur,
for example, through a radio-frequency transceiver. In addition,
short-range communication may occur, such as using a BLUETOOTH,
WI-FI, or other such transceiver.
[0073] In any such implementation, communications module 512 sends
and receives electrical, electromagnetic, or optical signals that
carry digital data streams representing various types of
information. The network link typically provides data communication
through one or more networks to other data devices. For example,
the network link of the communications module 512 may provide a
connection through local network to a host computer or to data
equipment operated by an Internet Service Provider (ISP). The ISP
in turn provides data communication services through the world wide
packet data communication network now commonly referred to as the
"Internet." The local network and Internet both use electrical,
electromagnetic, or optical signals that carry digital data
streams. The signals through the various networks and the signals
on the network link and through communications module 512, which
carry the digital data to and from computer system 500, are example
forms of transmission media.
[0074] Computer system 500 can send messages and receive data,
including program code, through the network(s), the network link,
and communications module 512. In the Internet example, a server
might transmit a requested code for an application program through
the Internet, the ISP, the local network, and communications module
512. The received code may be executed by processor 502 as it is
received, and/or stored in data storage 506 for later
execution.
[0075] In certain aspects, the input/output module 510 is
configured to connect to a plurality of devices, such as an input
device 514 and/or an output device 516. Example input devices 514
include a keyboard and a pointing device, e.g., a mouse or a
trackball, by which a user can provide input to the computer system
500. Other kinds of input devices 514 can be used to provide for
interaction with a user as well, such as a tactile input device,
visual input device, audio input device, or brain-computer
interface device. For example, feedback provided to the user can be
any form of sensory feedback, e.g., visual feedback, auditory
feedback, or tactile feedback, and input from the user can be
received in any form, including acoustic, speech, tactile, or brain
wave input. Example output devices 516 include display devices,
such as an LED (light emitting diode), CRT (cathode ray tube), LCD
(liquid crystal display) screen, a TFT LCD (Thin-Film-Transistor
Liquid Crystal Display), or an OLED (Organic Light Emitting Diode)
display, for displaying information to the user. The output device
516 may comprise appropriate circuitry for driving the output
device 516 to present graphical and other information to a
user.
[0076] According to one aspect of the present disclosure, the
blockchain system 100, the bidding system 200, and screen capture
300 can be implemented using a computer system 500 in response to
processor 502 executing one or more sequences of one or more
instructions contained in memory 504. Such instructions may be read
into memory 504 from another machine-readable medium, such as data
storage device 506. Execution of the sequences of instructions
contained in main memory 504 causes processor 502 to perform the
process steps described herein. One or more processors in a
multi-processing arrangement may also be employed to execute the
sequences of instructions contained in memory 504. Processor 502
may process the executable instructions and/or data structures by
remotely accessing the computer program product, for example by
downloading the executable instructions and/or data structures from
a remote server through communications module 512 (e.g., as in a
cloud-computing environment). In alternative aspects, hard-wired
circuitry may be used in place of or in combination with software
instructions to implement various aspects of the present
disclosure. Thus, aspects of the present disclosure are not limited
to any specific combination of hardware circuitry and software.
[0077] Various aspects of the subject matter described in this
specification can be implemented in a computing system that
includes a back end component, e.g., a data server, or that
includes a middleware component, e.g., an application server, or
that includes a front end component, e.g., a client computer having
a graphical user interface or a Web browser through which a user
can interact with an implementation of the subject matter described
in this specification, or any combination of one or more such back
end, middleware, or front end components. For example, some aspects
of the subject matter described in this specification may be
performed on a cloud-computing environment. Accordingly, in certain
aspects, a user of systems and methods as disclosed herein may
perform at least some of the steps by accessing a cloud server
through a network connection. Further, data files, circuit
diagrams, performance specifications, and the like resulting from
the disclosure may be stored in a database server in the
cloud-computing environment, or may be downloaded to a private
storage device from the cloud-computing environment.
[0078] Computing system 500 can include clients and servers. A
client and server are generally remote from each other and
typically interact through a communication network. The
relationship of client and server arises by virtue of computer
programs running on the respective computers and having a
client-server relationship to each other. Computer system 500 can
be, for example, and without limitation, a desktop computer, laptop
computer, or tablet computer. Computer system 500 can also be
embedded in another device, for example, and without limitation, a
mobile telephone, a personal digital assistant (PDA), a mobile
audio player, a Global Positioning System (GPS) receiver, and/or a
television set top box.
[0079] The term "machine-readable storage medium" or
"computer-readable medium" as used herein refers to any medium or
media that is provided including instructions or data to processor
502 for execution. The term "storage medium" as used herein refers
to any non-transitory computer-readable storage medium that stores
data and/or instructions that cause a machine to operate in a
specific fashion. Such a medium may take many forms, including, but
not limited to, non-volatile media, volatile media, and
transmission media. Non-volatile media include, for example,
optical disks, magnetic disks, or flash memory, such as data
storage device 506. Volatile media include dynamic memory, such as
memory 504. Transmission media include coaxial cables, copper wire,
and fiber optics, including the wires that comprise bus 508. Common
forms of machine-readable media include, for example, a floppy
disk, a flexible disk, a hard disk, magnetic tape, any other
magnetic medium, a CD-ROM, a DVD, any other optical medium, punch
cards, paper tape, any other physical medium with patterns of
holes, a RAM, a PROM, an EPROM, a FLASH EPROM, any other memory
chip or cartridge, or any other medium from which a computer can
read. The machine-readable storage medium can be a machine-readable
storage device, a machine-readable storage substrate, a memory
device, a composition of matter effecting a machine-readable
propagated signal, or a combination of one or more of them.
[0080] As used in this specification of this application, the terms
"computer-readable storage medium" and "computer-readable media"
are entirely restricted to tangible, physical objects that store
information in a form that is readable by a computer. These terms
exclude any wireless signals, wired download signals, and any other
ephemeral signals. Storage media is distinct from but may be used
in conjunction with transmission media. Transmission media
participates in transferring information between storage media. For
example, transmission media includes coaxial cables, copper wire,
and fiber optics, including the wires that comprise bus 508.
Transmission media can also take the form of acoustic or light
waves, such as those generated during radio-wave and infra-red data
communications. Furthermore, as used in this specification of this
application, the terms "computer," "server," "processor," and
"memory" all refer to electronic or other technological devices.
These terms exclude people or groups of people. For the purposes of
the specification, the terms display or displaying means displaying
on an electronic device.
[0081] In one aspect, a method may be an operation, an instruction,
or a function and vice versa. In one aspect, a clause or a claim
may be amended to include some or all of the words (e.g.,
instructions, operations, functions, or components) recited in
other one or more clauses, one or more words, one or more
sentences, one or more phrases, one or more paragraphs, and/or one
or more claims.
[0082] To illustrate the interchangeability of hardware and
software, items such as the various illustrative blocks, modules,
components, methods, operations, instructions, and algorithms have
been described generally in terms of their functionality. Whether
such functionality is implemented as hardware, software, or a
combination of hardware and software depends upon the particular
application and design constraints imposed on the overall system.
Skilled artisans may implement the described functionality in
varying ways for each particular application.
[0083] The word "exemplary" is used herein to mean "serving as an
example, instance, or illustration." Any embodiment described
herein as "exemplary" is not necessarily to be construed as
preferred or advantageous over other embodiments. Phrases such as
an aspect, the aspect, another aspect, some aspects, one or more
aspects, an implementation, the implementation, another
implementation, some implementations, one or more implementations,
an embodiment, the embodiment, another embodiment, some
embodiments, one or more embodiments, a configuration, the
configuration, another configuration, some configurations, one or
more configurations, the subject technology, the disclosure, the
present disclosure, other variations thereof and alike are for
convenience and do not imply that a disclosure relating to such
phrase(s) is essential to the subject technology or that such
disclosure applies to all configurations of the subject technology.
A disclosure relating to such phrase(s) may apply to all
configurations, or one or more configurations. A disclosure
relating to such phrase(s) may provide one or more examples. A
phrase such as an aspect or some aspects may refer to one or more
aspects and vice versa, and this applies similarly to other
foregoing phrases.
[0084] A reference to an element in the singular is not intended to
mean "one and only one" unless specifically stated, but rather "one
or more." Pronouns in the masculine (e.g., his) include the
feminine and neuter gender (e.g., her and its) and vice versa. The
term "some" refers to one or more. Underlined and/or italicized
headings and subheadings are used for convenience only, do not
limit the subject technology, and are not referred to in connection
with the interpretation of the description of the subject
technology. Relational terms such as first, second, and the like
may be used to distinguish one entity or action from another
without necessarily requiring or implying any actual such
relationship or order between such entities or actions. All
structural and functional equivalents to the elements of the
various configurations described throughout this disclosure that
are known or later come to be known to those of ordinary skill in
the art are expressly incorporated herein by reference and intended
to be encompassed by the subject technology. Moreover, nothing
disclosed herein is intended to be dedicated to the public,
regardless of whether such disclosure is explicitly recited in the
above description. No claim element is to be construed under the
provisions of 35 U.S.C. .sctn. 112, sixth paragraph, unless the
element is expressly recited using the phrase "means for" or, in
the case of a method claim, the element is recited using the phrase
"step for."
[0085] While this specification contains many specifics, these
should not be construed as limitations on the scope of what may be
claimed, but rather as descriptions of particular implementations
of the subject matter. Certain features that are described in this
specification in the context of separate embodiments can also be
implemented in combination in a single embodiment. Conversely,
various features that are described in the context of a single
embodiment can also be implemented in multiple embodiments
separately, or in any suitable subcombination. Moreover, although
features may be described above as acting in certain combinations
and even initially claimed as such, one or more features from a
claimed combination can in some cases be excised from the
combination, and the claimed combination may be directed to a
subcombination or variation of a subcombination.
[0086] The subject matter of this specification has been described
in terms of particular aspects, but other aspects can be
implemented and are within the scope of the following claims. For
example, while operations are depicted in the drawings in a
particular order, this should not be understood as requiring that
such operations be performed in the particular order shown or in
sequential order, or that all illustrated operations be performed,
to achieve desirable results. The actions recited in the claims can
be performed in a different order and still achieve desirable
results. As one example, the processes depicted in the accompanying
figures do not necessarily require the particular order shown, or
sequential order, to achieve desirable results. In certain
circumstances, multitasking and parallel processing may be
advantageous. Moreover, the separation of various system components
in the aspects described above should not be understood as
requiring such separation in all aspects, and it should be
understood that the described program components and systems can
generally be integrated together in a single software product or
packaged into multiple software products.
[0087] The title, background, brief description of the drawings,
abstract, and drawings are hereby incorporated into the disclosure
and are provided as illustrative examples of the disclosure, not as
restrictive descriptions. It is submitted with the understanding
that they will not be used to limit the scope or meaning of the
claims. In addition, in the detailed description, it can be seen
that the description provides illustrative examples and the various
features are grouped together in various implementations for the
purpose of streamlining the disclosure. The method of disclosure is
not to be interpreted as reflecting an intention that the claimed
subject matter requires more features than are expressly recited in
each claim. Rather, as the claims reflect, inventive subject matter
lies in less than all features of a single disclosed configuration
or operation. The claims are hereby incorporated into the detailed
description, with each claim standing on its own as a separately
claimed subject matter.
[0088] The claims are not intended to be limited to the aspects
described herein, but are to be accorded the full scope consistent
with the language claims and to encompass all legal equivalents.
Notwithstanding, none of the claims are intended to embrace subject
matter that fails to satisfy the requirements of the applicable
patent law, nor should they be interpreted in such a way.
* * * * *