ActivityPub is an open, decentralized social networking protocol based on Pump.io's ActivityPump protocol. It provides a client/server API for creating and deleting content, as well as a federated server-to-server API for delivering notifications and content. ActivityPub is a standard for the Internet in the Social Web Networking Group of the World Wide Web Consortium. At an earlier stage, the name of the protocol was "ActivityPump", but it was felt that ActivityPub better indicated the cross-publishing purpose of the protocol, it learned from the experiences with the older standard called OStatus. In January 2018, the World Wide Web Consortium published the ActivityPub standard as a Recommendation. Former Diaspora community manager Sean Tilley wrote an article that suggests ActivityPub protocols may provide a way to federate Internet platforms. Mastodon, a social networking software, implemented ActivityPub in version 1.6, released on 10 September 2017. It is intended that ActivityPub offer more security for private messages than the previous OStatus protocol does.
Pleroma, a social networking software implementing ActivityPub. Misskey, a social networking software implementing ActivityPub. Hubzilla a community CMS software platform that uses Zot, added ActivityPub support from version 2.8 with a plugin. Nextcloud, a federated service for file hosting. PeerTube, a federated service for video streaming. Pixelfed, a federated service for image sharing. Friendica, a social networking software, implemented ActivityPub in version 2019.01. Osada, a social networking software implementing Zot & ActivityPub The following solutions are clear client based implementations of ActivityPub: dokielie a client side editor using WebAnnotation and ActivityPub. Go-fed a library that implements ActivityPub in Go; the following solutions are clear server based implementations of ActivityPub: microblog.pub is under development and a self-hosted, single-user microblog implementation for a basic ActivityPub server. Distbin is a distributed pastebin service implemented ActivityPub.
Micropub Comparison of software and protocols for distributed social networking Comparison of microblogging services Fediverse "Socialwg - W3C Wiki". Www.w3.org. Retrieved 2017-11-05. "ActivityPub". Www.w3.org. Retrieved 2017-11-05. "ActivityPub Rocks!". Activitypub.rocks. Retrieved 2017-11-05. Contribute to activitypub development by creating an account on GitHub, World Wide Web Consortium, 2017-11-02, retrieved 2017-11-05
SCXML stands for State Chart XML: State Machine Notation for Control Abstraction. It is an XML-based markup language that provides a generic state-machine-based execution environment based on Harel statecharts. SCXML is able to describe complex finite state machines. For example, it is possible to describe notations such as sub-states, parallel states, synchronization, or concurrency, in SCXML; the objective of this standard is to genericize state diagram notations that are used in other XML contexts. For example, it is expected that SCXML notations will replace the State machines notations used in the next CCXML 2.0 version. It could be used as a multimodal control language in the Multimodal Interaction Activity. One of the goals of this language is to make sure that the language is compatible with CCXML and that there is an easy path for existing CCXML scripts to be converted to SCXML without major changes to the programming model or document structure; the current version of the specification was released by the W3C in September 2015.
According to the W3C SCXML specification, SCXML is a general-purpose event-based state machine language that can be used in many ways, including: As a high-level dialog language controlling VoiceXML 3.0's encapsulated speech modules As a voice application metalanguage, where in addition to VoiceXML 3.0 functionality, it may control database access and business logic modules. As a multimodal control language in the MultiModal Interaction framework, combining VoiceXML 3.0 dialogs with dialogs in other modalities including keyboard and mouse, vision, etc. It may control combined modalities such as lipreading speech input with keyboard as fallback, multiple keyboards for multi-user editing; as the state machine framework for a future version of CCXML. As an extended call center management language, combining CCXML call control functionality with computer-telephony integration for call centers that integrate telephone calls with computer screen pops, as well as other types of message exchange such as chats, instant messaging, etc.
As a general process control language in other contexts not involving speech processing. The draft W3C VoiceXML 3.0 specification includes State Chart and SCXML Representation to define functionality. Multimodal application designs can use different modalities for different parts of a communication best suited to it. For example, voice input can be used to avoid having to type on the small screen of a mobile phone, but the screen may be a faster way of communicating a list or map, compared to listening to long descriptions of available options. SCXML makes it easy to do several things in parallel, the Interaction Manager SCXML application will maintain the synchronization between Voice and Visual dialogues; the W3C document Authoring Applications for the Multimodal Architecture describes a multimodal system that implements the W3C Multimodal Architecture and gives an example of a simple multimodal application authored using various W3C markup languages, including SCXML, CCXML, VoiceXML 2.1 and HTML. scxmlcc An efficient scxml to C++ compiler.
It supports some additional features such as custom tag libraries and includes. It is not W3C compliant. PySCXML a Python-implementation. Supports a wide range of technologies, including websockets and SOAP. Standards-compliant. Supports the ECMAScript datamodel; the PySCXML Console a web-based interactive SCXML console for running and interacting with SCXML documents. Supports the ECMAScript datamodel. SCXML4Flex ActionScript/Flex partial port of PySCXML. SCXMLgui Java Visual Editor for SCXML. VoiceXML CCXML W3C SCXML specification 1.0 SCXML Commons Usecases - Stopwatch example
The Platform for Privacy Preferences Project is an obsolete protocol allowing websites to declare their intended use of information they collect about web browser users. Designed to give users more control of their personal information when browsing, P3P was developed by the World Wide Web Consortium and recommended on April 16, 2002. Development ceased shortly thereafter and there have been few implementations of P3P. Microsoft Internet Explorer and Edge were the only major browsers to support P3P. Microsoft has ended support from Windows 10 onwards. Microsoft Internet Explorer and Edge on Windows 10 will no longer support P3P; the president of TRUSTe has stated that P3P has not been implemented due to the difficulty and lack of value. As the World Wide Web became a genuine medium in which to sell products and services, electronic commerce websites tried to collect more information about the people who purchased their merchandise; some companies used controversial practices such as tracker cookies to ascertain the users' demographic information and buying habits, using this information to provide targeted advertisements.
Users who saw this as an invasion of privacy would sometimes turn off HTTP cookies or use proxy servers to keep their personal information secure. P3P is designed to give users a more precise control of the kind of information that they allow to release. According to the W3C, the main goal of P3P “is to increase user trust and confidence in the Web through technical empowerment.”P3P is a machine-readable language that helps to express a website’s data management practices. P3P manages information through privacy policies; when a website uses P3P, they set up a set of policies that allows them to state their intended uses of personal information that may be gathered from their site visitors. When a user decides to use P3P, they set their own set of policies and state what personal information they will allow to be seen by the sites that they visit; when a user visits a site, P3P will compare what personal information the user is willing to release, what information the server wants to get – if the two do not match, P3P will inform the user and ask if he/she is willing to proceed to the site, risk giving up more personal information.
IE provides the ability to display P3P privacy policies, compare the P3P policy with the browser's settings to decide whether or not to allow cookies from a particular site. However, the P3P functionality in Internet Explorer extends only to cookie blocking, will not alert the user to an entire web site that violates active privacy preferences. Microsoft considers the feature deprecated in its browsers and removed P3P support on Windows 10. Mozilla supported some P3P features for a few years, but all P3P related source code was removed by 2007; the Privacy Finder service was created by Carnegie Mellon's Usable Privacy and Security Laboratory. It is a publicly available "P3P-enabled search engine." A user can enter a search term along with their stated privacy preferences, is presented with a list of search results which are ordered based on whether the sites comply with their preferences. This works by crawling the web and maintaining a P3P cache for every site that appears in a search query.
It describes 18 elements comprising the initial simple design of HTML. Except for the hyperlink tag, these were influenced by SGMLguid, an in-house Standard Generalized Markup Language -based documentation format at CERN. Eleven of these elements still exist in HTML 4. HTML is a markup language that web browsers use to interpret and compose text and other material into visual or audible web pages. Default characteristics for every item of HTML markup are defined in the browser, these characteristics can be altered or enhanced by the web page designer's additional use of CSS. Many of the text elements are found in the 1988 ISO technical report TR 9537 Techniques for using SGML, which in turn covers the features of early text formatting languages such as that used by the RUNOFF command developed in the early 1960s for the CTSS operating system: these formatting commands were derived from the commands used by typesetters to manually format documents. However, the SGML concept of generalized markup is based on elements rather than print effects, with the separation of structure and markup.
Berners-Lee considered HTML to be an application of SGML. It was formally defined as such by the Internet Engineering Task Force with the mid-1993 publication of the first proposal for an HTML specification, the "Hypertext Markup Language" Internet Draft by Berners-Lee and Dan Connolly, which included an SGML Document type definition to define the grammar; the draft expired after six months, but was notable for its acknowledgment of the NCSA Mosaic browser's custom tag for embedding in-line images, reflecting the IETF's philosophy of basing standards on successful prototypes. Dave Raggett's competing Internet-Draft, "HTML+", from late 1993, suggested standardizing already-implemented features like tables and fill-out forms. After the HTML and HTML+ drafts expired in early 1994, the IETF created an HTML Working Group, which in 1995 completed "HTML 2.0", the first HTML specification intended to be treated as a standard against which future implementations should be based. Further development under the auspices of the IETF was stalled by competing interests.
Since 1996, the HTML specifications have been maintained, with input from commercial software vendors, by the World Wide Web Consortium. However, in 2000, HTML became an international standard. HTML 4.01 was published in late 1999, with further errata published through 2001. In 2004, development began on HTML5 in the Web Hypertext Application Technology Working Group, which became a joint deliverable with the W3C in 2008, completed and standardized on 28 October 2014. November 24, 1995 HTML 2.0 was published as RFC 1866. Supplemental RFCs added capabilities: November 25, 1995: RFC 1867 May 1996: RFC 1942 August 1996: RFC 1980 January 1997: RFC 2070 January 14, 1997 HTML 3.2 was published as a W3C Recommendation. It was the first version developed and standardized by the W3C, as the IETF had closed its HTML Working Group on September 12, 1996. Code-named "Wilbur", HTML 3.2 dropped math formulas reconciled overlap among various proprietary extensions and adopted most of Netscape's visual markup tags.
Netscape's blink element and Microsoft's marquee element were omitted due to a mutual agreement between the two companies. A markup for mathematical formu
Cascading Style Sheets
This cascading priority scheme is predictable. The CSS specifications are maintained by the World Wide Web Consortium. Internet media type text/css is registered for use with CSS by RFC 2318; the W3C operates a free CSS validation service for CSS documents. In addition to HTML, other markup languages support the use of CSS including XHTML, plain XML, SVG, XUL. CSS has a simple syntax and uses a number of English keywords to specify the names of various style properties. A style sheet consists of a list of rules; each rule or rule-set consists of one or more selectors, a declaration block. In CSS, selectors declare which part of the markup a style applies to by matching tags and attributes in the markup itself. Selectors may apply to the following: all elements of a specific type, e.g. the second-level headers h2 elements specified by attribute, in particular: id: an identifier unique within the document class: an identifier that can annotate multiple elements in a document elements depending on how they are placed relative to others in the document tree.
Classes and IDs are case-sensitive, start with letters, can include alphanumeric characters and underscores. A class may apply to any number of instances of any elements. An ID may only be applied to a single element. Pseudo-classes are used in CSS selectors to permit formatting based on information, not contained in the document tree. One example of a used pseudo-class is:hover, which identifies content only when the user “points to” the visible element by holding the mouse cursor over it, it is #elementid: hover. A pseudo-class classifies document elements, such as:link or:visited, whereas a pseudo-element makes a selection that may consist of partial elements, such as::first-line or::first-letter. Selectors may be combined in many ways to achieve great flexibility. Multiple selectors may be joined in a spaced list to specify elements by location, element type, id, class, or any combination thereof; the order of the selectors is important. For example, div.myClass applies to all elements of class myClass that are inside div elements, whereas.myClass div applies to all div elements that are in elements of class myClass.
The following table provides a summary of selector syntax indicating usage and the version of CSS that introduced it. A declaration block consists of a list of declarations in braces; each declaration itself consists of a property, a colon, a value. If there are multiple declarations in a block, a semi-colon must be inserted to separate each declaration. Properties are specified in the CSS standard; each property has a set of possible values. Some properties can affect any type of element, others apply only to particular groups of elements. Values may be keywords, such as "center" or "inherit", or numerical values, such as 200px, 50vw or 80%. Color values can be specified with keywords, hexadecimal values, RGB values on a 0 to 255 scale, RGBA values that specify both color and alpha transparency, or HSL or HSLA values. Before CSS, nearly all presentational attributes of HTML documents were contained within the HTML markup. All font colors, background styles, element alignments and sizes had to be explicitly described repeatedly, within the HTML.
CSS lets authors move much of that information to another file, the style sheet, resulting in simpler HTML. For example, sub-headings, sub-sub-headings, etc. are defined structurally using HTML. In print and on the screen, choice of font, size and emphasis for these elements is presentational. Before CSS, document authors who wanted to assign such typographic characteristics to, all h2 headings had to repeat HTML presentational markup for each occurrence of that heading type; this made documents more complex and more error-prone and difficult to maintain. CSS allows the separation of presentation from structure. CSS can define color, text alignment, borders, spacing and many other typographic characteristics, can do so independently for on-screen and printed views. CSS defines non-visual styles, such as reading speed and emphasis for aural text readers; the W3C has now deprecated the use of all presentational HTML markup. For example, under pre-CSS HTML, a heading element defined with red text would be written as: Using CSS, the sam
XPath 2.0 is a version of the XPath language defined by the World Wide Web Consortium, W3C. It became a recommendation on 23 January 2007; as a W3C Recommendation it was superseded by XPath 3.0 on 10 April 2014. XPath is used for selecting parts of an XML document. For this purpose the XML document is modelled as a tree of nodes. XPath allows nodes to be selected by means of a hierarchic navigation path through the document tree; the language is larger than its predecessor, XPath 1.0, some of the basic concepts such as the data model and type system have changed. The two language versions are therefore described in separate articles. XPath 2.0 is used as a sublanguage of XSLT 2.0, it is a subset of XQuery 1.0. All three languages share the same data model, type system, function library, were developed together and published on the same day; every value in XPath 2.0 is a sequence of items. The items may be atomic values. An individual node or atomic value is considered to be a sequence of length one.
Sequences may not be nested. Nodes are of seven kinds, corresponding to different constructs in the syntax of XML: elements, text nodes, processing instructions, namespace nodes, document nodes. Nodes may be untyped. A node acquires a type as a result of validation against an XML Schema. If an element or attribute is validated against a particular complex type or simple type defined in a schema, the name of that type is attached as an annotation to the node, determines the outcome of operations applied to that node: for example, when sorting, nodes that are annotated as integers will be sorted as integers. Atomic values may belong to any of the 19 primitive types defined in the XML Schema specification, they may belong to a type derived from one of these primitive types: either a built-in derived type such as integer or Name, or a user-defined derived type defined in a user-written schema. The type system of XPath 2.0 is noteworthy for the fact that it mixes strong typing and weak typing within a single language.
Operations such as arithmetic and boolean comparison require atomic values as their operands. If an operand returns a node the node is automatically atomized to extract the atomic value. If the input document has been validated against a schema the node will have a type annotation, this determines the type of the resulting atomic value. If no schema is in use, the node will be untyped, the type of the resulting atomic value will be untypedAtomic. Typed atomic values are checked to ensure that they have an appropriate type for the context where they are used: for example, it is not possible to multiply a date by a number. Untyped atomic values, by contrast, follow a weak typing discipline: they are automatically converted to a type appropriate to the operation where they are used: for example with an arithmetic operation an untyped atomic value is converted to the type double; the location paths of XPath 1.0 are referred to in XPath 2.0 as path expressions. Informally, a path expression is a sequence of steps separated by the "/" operator, for example a/b/c.
More formally, however, "/" is a binary operator that applies the expression on its right-hand side to each item in turn selected by the expression on the left hand side. So in this example, the expression a selects all the element children of the context node that are named <a>. The "/" operator is generalized in XPath 2.0 to allow any kind of expression to be used as an operand: in XPath 1.0, the right-hand side was always an axis step. For example, a function call can be used on the right-hand side; the typing rules for the operator require that the result of the first operand is a sequence of nodes. The right hand operand can return atomic values. If the result consists of nodes duplicates are eliminated and the nodes are returned in document order, an ordering defined in terms of the relative positions of the nodes in the original XML tree. In many cases the operands of "/" will be axis steps: these are unchanged from XPath 1.0, are described in the article on XPath 1.0. Other operators available in XPath 2.0 include the following: Conditional expressions may be written using the syntax if B else C.
XPath 2.0 offers a for expression, a small subset of the FLWOR expression from XQuery. The expression for $x in X return Y evaluates the expression Y for each value in the result of expression X in turn, referring to that value using the variable reference $x; the function library in XPath 2.0 is extended from the function library in XPath 1.0. The functions available include the following: Because of the changes in the data model and type system, not all expressions have the same effect in XPath 2.0 as in 1.0. The main difference is that XPath 1.0 was more relaxed about type conversion, for example comparing two strings was quite possible but would do a numeric comparison. To ease transition, XPath 2.0 def