New Version Available: OWL 2 (Document Status Update, 12 November 2009)
The OWL Working Group has produced a W3C Recommendation for a new version of OWL which adds features to this 2004 version, while remaining compatible. Please see OWL 2 Document Overview for an introduction to OWL 2 and a guide to the OWL 2 document set.
Copyright © 2003 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
This document specifies XML presentation syntax for OWL, which is defined as a dialect similar to OWL Abstract Syntax [OWL Semantics]. It is not intended to be a normative specification. Instead, it represents a suggestion of one possible XML presentation syntax for OWL.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. The latest status of this document series is maintained at the W3C.
This document has been produced as part of the W3C Semantic Web Activity (Activity Statement) following the procedures set out for the W3C Process. The goals of the Web Ontology working group are discussed in the Web Ontology Working Group charter.
This version is based on the Working Drafts dated on 31 March: OWL Web Ontology Language Semantics and Abstract Syntax, OWL Web Ontology Language Reference, and OWL Web Ontology Language Guide.
There are no patent disclosures related to this work at the time of this writing.
The authors welcome comments on this document, but does not guarantee a reply or any further action. Please send comments on this draft to<EMAIL_ADDRESS>public archives are available. This document may be updated or added to based on implementation experience, but no commitment is made by the W3C, or any of its members, regarding future updates.
This document is a NOTE made available by the W3C for discussion only. Publication of this Note by W3C indicates no endorsement by W3C or the W3C Team, or any W3C Members. A list of current W3C technical reports and publications, including Working Drafts and Notes, can be found at http://www.w3.org/TR/.
This document specifies XML presentation syntax for OWL, which is defined as a dialect similar to OWL Abstract Syntax [OWL Semantics]. The OWL language provides three increasingly expressive sublanguages: OWL Lite, OWL DL, and OWL Full. This document provides XML Schemas for XML presentation syntax corresponding to the three sublanguages. Each of the sublanguages is an extension of its simpler predecessor, and the following relations hold but the inverses do not.
Three Schemas are defined for the sublanguages: OWL Lite (owl1-lite.xsd), OWL DL (owl1-dl.xsd), and OWL Full (owl1-full.xsd). The definitions of these Schemas are given in Appendix A.
The root element of OWL documents for the XML presentation syntax must be Ontology element (2.1), and an OWL document further consists of optional header elements (2.2) as well as any number of classes (2.3), properties (2.4), and individuals (2.5).
<?xml version="1.0"?> <!DOCTYPE Ontology [ <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" > ]> <owlx:Ontology owlx:name="http://www.example.org/wine" xmlns:owlx="http://www.w3.org/2003/05/owl-xml"> <!-- Contains optional header elements as well as any number of classes, properties, and individuals. --> </owlx:Ontology>
Attribute values are frequently used for referring to identifiers in OWL. Since attribute values are not namespace sensitive, they may be written down in their fully expanded form (e.g., http://www.example.org/owl/wine#merlot). Alternatively, XML entities can be used as abbreviations. In the XML presentation syntax, XML Schema datatypes (2.6) are referred to by owlx:datatype attributes, and an XML entity &xsd; can be used for readability.
A number of namespace prefixes are used in this document as listed below. Note that the choice of any namespace prefix is arbitrary, and not semantically significant.
| Prefix | Namespace | Notes |
|---|---|---|
| owlx | "http://www.w3.org/2003/05/owl-xml" | The namespace of the XML presentation syntax of OWL defined by this document |
| owl | "http://www.w3.org/2002/07/owl" | The namespace of OWL in RDF/XML syntax |
| xsd | "http://www.w3.org/2001/XMLSchema" | The namespace of the XML Schema [XMLSchema-1] |
All the elements and their attributes and element contents in the XML syntax are listed in this section. In order to indicate partial availability for OWL sublanguages, subscript enclosed within parentheses [e.g., (L) and (D,F)] may be appended to either element names, attribute names, or labels for element contents (i.e., Content:). For example, EnumeratedClass(D,F) means that EnumeratedClass element is only available for OWL DL and OWL Full. Note that all the elements, attributes, and element contents without subscript in parentheses means that those constructs are available for all the three OWL sublanguages.
Examples and their brief explanations of OWL statements in this section are derived from the Reference document [OWL Reference], and more examples in Appendix B are created on the basis of the Guide document [OWL Guide]. In addition, element index (3.1) gives an alphabetical list of elements in the XML presentation syntax, and cross reference (3.2) shows the correspondence between constructs in RDF/XML syntax and elements of XML presentation syntax. In Appendix C, an XSLT stylesheet is given for the transformation from the XML presentation syntax toward RDF/XML syntax of OWL.
<Ontology name = xsd:anyURI > Content: (VersionInfo | PriorVersion | BackwardCompatibleWith | IncompatibleWith | Imports | Annotation | Class[axiom] | EnumeratedClass(D,F) | SubClassOf(D,F) | EquivalentClasses | DisjointClasses(D,F) | DatatypeProperty | ObjectProperty | SubPropertyOf | EquivalentProperties | Individual[axiom] | SameIndividual | DifferentIndividuals)* </Ontology>
| Attribute: | name - refers to a name of this ontology, which is the base URI of this element. |
| Note: | This is the root element of OWL documents in the XML presentation syntax, while rdf:RDF is used as the document root for OWL in RDF/XML. |
| See also: | owl:Ontology used as a construct for the header component in [OWL Reference] |
The root element Ontology may optionally contain, in any order, any number of header elements for versioning import and/or annotation statements. In the presentation syntax, there is no header element in contrast to the RDF/XML syntax in which owl:Ontology is provided as a construct for the header component.
A sample ontology header could look like this (see also 3 in [OWL Reference]):
<owlx:VersionInfo>2003/02/24 22:37:39</owlx:VersionInfo> <owlx:Annotation> <owlx:Documentation>An example OWL ontology</owlx:Documentation> </owlx:Annotation> <owlx:PriorVersion owlx:ontology="http://www.example.org/wine-112102.owl" /> <owlx:Imports owlx:ontology="http://www.example.org/food.owl"/> <owlx:Annotation> <owlx:Label>Wine Ontology</owlx:Label> </owlx:Annotation>
<VersionInfo> Content: (#CDATA) </VersionInfo>
| Parents: | Ontology |
| Note: | This element contains a string giving information about this version such as RCS/CVS keywords. |
| See also: | owl:versionInfo in [OWL Reference] |
<PriorVersion ontology = xsd:anyURI {required} > Content: (##empty) </PriorVersion>
| Attribute: | ontology - a reference to a prior ontology |
| Parents: | Ontology |
| Note: | This element contains a reference to another ontology that identifies the specified ontology as a prior version of the containing ontology. |
| See also: | owl:priorVersion in [OWL Reference] |
<BackwardCompatibleWith ontology = xsd:anyURI {required} > Content: (##empty) </BackwardCompatibleWith>
| Attribute: | ontology - a reference to a backward compatible ontology |
| Parents: | Ontology |
| Note: | This element contains a reference to another ontology that identifies the specified ontology as a prior version of the containing ontology, and further indicates that it is backward compatible with it. |
| See also: | owl:backwardCompatibleWith in [OWL Reference] |
<IncompatibleWith ontology = xsd:anyURI {required} > Content: (##empty) </IncompatibleWith>
| Attribute: | ontology - a reference to an incompatible ontology |
| Parents: | Ontology |
| Note: | This element contains a reference to another ontology that indicates that the containing ontology is a later version of the referenced ontology, but is not backward compatible with it. |
| See also: | owl:incompatibleWith in [OWL Reference] |
<Imports ontology = xsd:anyURI {required} > Content: (##empty) </Imports>
| Attribute: | ontology - a reference to another ontology |
| Parents: | Ontology |
| Note: | This element refers to another OWL ontology containing definitions, whose meaning is considered to be part of the meaning of the importing ontology. |
| See also: | owl:imports in [OWL Reference] |
<Annotation> Content: (Label | Documentation | xsd:any )* </Annotation>
| Parents: | Ontology, Class[axiom], EnumeratedClass(D,F), DatatypeProperty, ObjectProperty, Individual[axiom] |
| Note: | This element is provided as a place holder for various ways of annotations such as Label and Documentation. In particular, this element can take a wildcard element (xsd:any), which can be in any namespace other than the target namespace 'owlx' for the XML presentation syntax Schema (http://www.w3.org/2003/05/owl-xml), since namespace attribute value of the xsd:any element is specified as ##other in the Schema declaration. In addition, according to the declaration processContents="lax" in the xsd:any, the wildcard element allows an XML Schema processor to validate elements for which it can find namespace declarations and raise errors if they are invalid. However, the processor will not report errors on the elements for which it does not find declarations. |
<Label xml:lang = xsd:language > Content: (#CDATA) </Label>
| Attribute: | xml:lang - specifies the language used in the content |
| Parents: | Annotation |
| Note: | This element provides a human-readable version name of an annotated element. In RDF/XML syntax, this element is mapped to rdfs:label in [RDF Schema]. |
<Documentation xml:lang = xsd:language > Content: (#CDATA) </Documentation>
| Attribute: | xml:lang - specifies the language used in the content |
| Parents: | Annotation |
| Note: | This element provides a human-readable description of an annotated element. In RDF/XML syntax, this element is mapped to rdfs:comment in [RDF Schema]. |
Classes provide an abstraction mechanism for grouping resources with similar characteristics. OWL classes are described through "class descriptions", which can be combined into "class axioms". "Axiom" is a formal term, and may be called "definition" informally.
<Class name = xsd:anyURI {required} complete = xsd:boolean {required} deprecated = xsd:boolean > Content: (Annotation*, description*) </Class>
| Attribute: | name - a reference to a name of this Class complete - the modality is complete if true, otherwise partial. The default value is false. deprecated - this class is deprecated if true |
| Parents: | Ontology |
| Note: | This element contains non-empty sequence of descriptions, which are the basic building blocks of class axioms. |
| See also: | owl:Class in [OWL Reference] |
A class description is the term used in [OWL Reference] [OWL Semantics], and used as a basic building block of class axioms (or called class definitions informally).
Content: (Class[ID] | DataRestriction | ObjectRestriction | UnionOf(D,F) | IntersectionOf(D,F) | ComplementOf(D,F) | OneOf[object](D,F))
| Parents: | Class[axiom],
EquivalentClasses,
DisjointClasses(D,F), sub(D,F), super(D,F), UnionOf(D,F), IntersectionOf(D,F), ComplementOf(D,F), domain(D,F), ObjectProperty/range(D,F), ObjectRestriction/allValuesFrom(D,F), ObjectRestriction/someValuesFrom(D,F), type |
| Note: | In the XML presentation syntax, a class description is represented as a model group definition of XML Schema [XMLSchema-1], which can be used as a reusable fragment of a content model. This model group allows to not only describe a class through a name (i.e., a class identifier), but also define an anonymous class by means of property restriction, union, intersection, complement, and enumeration. |
| See also: | 4.1 in [OWL Reference] |
<Class name = xsd:anyURI {required} > Content: (##empty) </Class>
| Attribute: | name - a reference to a class name |
| Parents: | description, EquivalentClasses(L), domain(L), ObjectProperty/range(L) |
| Note: | This element describes a class through a name. |
<owlx:Class owlx:name="Student" owlx:complete="false"> <owlx:Annotation> <owlx:Label xml:lang="nl">student</owlx:Label> <owlx:Label xml:lang="it">studente</owlx:Label> <owlx:Label xml:lang="es">estudiante</owlx:Label> <owlx:Documentation xml:lang="en">Undergraduates students</owlx:Documentation> </owlx:Annotation> <owlx:Class owlx:name="Person" /> </owlx:Class>
A property restriction defines an anonymous class, namely a class of all individuals that satisfy the restriction. The XML syntax of OWL distinguishes two types of property restrictions: DataRestriction (restriction on properties for which the range value is a data literal) and ObjectRestriction (restriction on properties for which the range value is an individual).
<owlx:Class owlx:name="Student" owlx:complete="false"> <owlx:Class owlx:name="Person" /> <owlx:DataRestriction owlx:property="studentID"> <owlx:cardinality owlx:value="1" /> <owlx:allValuesFrom owlx:datatype="&xsd;integer" /> </owlx:DataRestriction> <owlx:DataRestriction owlx:property="grade"> <owlx:cardinality owlx:value="1" /> <owlx:allValuesFrom> <owlx:OneOf> <owlx:DataValue owlx:datatype="&xsd;integer">1</owlx:DataValue> <owlx:DataValue owlx:datatype="&xsd;integer">2</owlx:DataValue> <owlx:DataValue owlx:datatype="&xsd;integer">3</owlx:DataValue> <owlx:DataValue owlx:datatype="&xsd;integer">4</owlx:DataValue> </owlx:OneOf> </owlx:allValuesFrom> </owlx:DataRestriction> <owlx:ObjectRestriction owlx:property="schoolYear"> <owlx:cardinality owlx:value="1" /> <owlx:allValuesFrom> <owlx:OneOf> <owlx:Individual owlx:name="Freshman" /> <owlx:Individual owlx:name="Sophomore" /> <owlx:Individual owlx:name="Junior" /> <owlx:Individual owlx:name="Senior" /> </owlx:OneOf> </owlx:allValuesFrom> </owlx:ObjectRestriction> <owlx:ObjectRestriction owlx:property="advisor"> <owlx:minCardinality owlx:value="1" /> <owlx:allValuesFrom owlx:class="Person" /> <owlx:someValuesFrom> <owlx:Class owlx:name="Professor" /> <owlx:Class owlx:name="AssociateProfessor" /> </owlx:someValuesFrom> </owlx:ObjectRestriction> </owlx:Class>
<DataRestriction property = xsd:anyURI {required} > Content(L): ( (minCardinality | maxCardinality | cardinality | allValuesFrom | someValuesFrom) ) Content(D,F): ( (minCardinality | maxCardinality | cardinality | allValuesFrom | someValuesFrom | hasValue)+ ) </DataRestriction>
| Attribute: | property - a reference to a property name |
| Parents: | description |
| Note: | This element declares restrictions on DatatypeProperty (properties for which the range value is a data literal). The restrictions must have exactly one content element for OWL Lite, while they must have at least one content element for OWL DL and Full. |
| See also: | owl:Restriction, owl:minCardinality, owl:maxCardinality, owl:cardinality, owl:allValuesFrom, owl:someValuesFrom, and owl:hasValue in [OWL Reference] |
<minCardinality value(L) = either '0' or '1' {required} value(D,F) = xsd:nonNegativeInteger {required} > Content: ( ##empty ) </minCardinality>
| Attribute: | value - a minimum cardinality value |
| Parents: | DataRestriction, ObjectRestriction |
| Note: | This element declares restriction on a minimum cardinality value. |
| See also: | owl:minCardinality in [OWL Reference] |
<maxCardinality value(L) = either '0' or '1' {required} value(D,F) = xsd:nonNegativeInteger {required} > Content: ( ##empty ) </maxCardinality>
| Attribute: | value - a maximum cardinality value |
| Parents: | DataRestriction, ObjectRestriction |
| Note: | This element declares restriction on a maximum cardinality value. |
| See also: | owl:maxCardinality in [OWL Reference] |
<cardinality value(L) = either '0' or '1' {required} value(D,F) = xsd:nonNegativeInteger {required} > Content: ( ##empty ) </cardinality>
| Attribute: | value - a cardinality value |
| Parents: | DataRestriction, ObjectRestriction |
| Note: | This element declares restriction on a cardinality value. |
| See also: | owl:cardinality in [OWL Reference] |
<allValuesFrom datatype = xsd:anyURI > Content(D,F): ( OneOf[data]? ) </allValuesFrom>
| Attribute: | datatype - a reference to a datatype |
| Parents: | DataRestriction |
| Note: | This element specifies a class of all individuals for which all range values of the property under consideration are data values within the specified data range. |
| See also: | owl:allValuesFrom in [OWL Reference] |
<someValuesFrom datatype = xsd:anyURI > Content(D,F): ( OneOf[data]? ) </someValuesFrom>
| Attribute: | datatype - a reference to a datatype |
| Parents: | DataRestriction |
| Note: | This element specifies a class of all individuals for which at least one value of the property concerned is a data value in the data range. |
| See also: | owl:someValuesFrom in [OWL Reference] |
<hasValue> Content: ( xsd:anySimpleType ) </hasValue>
| Parents: | DataRestriction |
| Note: | This element specifies a type of data value for which the property concerned has at least one value. |
| See also: | owl:hasValue in [OWL Reference] |
<ObjectRestriction property = xsd:anyURI {required} > Content(L): ( (minCardinality | maxCardinality | cardinality | allValuesFrom | someValuesFrom) ) Content(D,F): ( (minCardinality | maxCardinality | cardinality | allValuesFrom | someValuesFrom | hasValue)+ ) </ObjectRestriction>
| Attribute: | property - a reference to a property name |
| Parents: | description |
| Note: | This element declares restrictions on ObjectProperty (properties for which the range value is an individual). The restrictions must have exactly one content element for OWL Lite, while they must have at least one content element for OWL DL and Full. |
| See also: | owl:Restriction, owl:minCardinality, owl:maxCardinality, owl:cardinality, owl:allValuesFrom, owl:someValuesFrom, and owl:hasValue in [OWL Reference] |
<allValuesFrom class = xsd:anyURI > Content: ( description(D,F)* ) </allValuesFrom>
| Attribute: | class - a reference to a class name |
| Parents: | ObjectRestriction |
| Note: | This element specifies a class of all individuals for which all range values of the property under consideration are members of the class extension of the class description. |
| See also: | owl:allValuesFrom in [OWL Reference] |
The example below describes a class of all individuals for which the "hasParent" property only has range values of class "Human" (see also owl:allValuesFrom in [OWL Reference]).
<owlx:Class owlx:name="Child1" owlx:complete="false"> <owlx:ObjectRestriction owlx:property="#hasParent"> <owlx:allValuesFrom owlx:class="#Human" /> </owlx:ObjectRestriction> </owlx:Class>
<someValuesFrom class = xsd:anyURI > Content: ( description(D,F)* ) </someValuesFrom>
| Attribute: | class - a reference to a class name |
| Parents: | ObjectRestriction |
| Note: | This element specifies a class of all individuals for which at least one value of the property concerned is an instance of the class description. |
| See also: | owl:someValuesFrom in [OWL Reference] |
The following example defines a class of individuals which have at least one parent who is a physician (see also owl:someValuesFrom in [OWL Reference]):
<owlx:Class owlx:name="Child2" owlx:complete="false"> <owlx:ObjectRestriction owlx:property="#hasParent"> <owlx:someValuesFrom owlx:class="#Physician" /> </owlx:ObjectRestriction> </owlx:Class>
<hasValue name = xsd:anyURI {required} > Content: ( ##empty ) </hasValue>
| Attribute: | name - a reference to a class name |
| Parents: | ObjectRestriction |
| Note: | This element specifies a class of all individuals for which the property concerned has at least one value. |
| See also: | owl:hasValue in [OWL Reference] |
The following example describes the class of individuals who have the individual referred to as "Clinton" as their parent (see also owl:hasValue in [OWL Reference]):
<owlx:Class owlx:name="Child3" owlx:complete="false"> <owlx:ObjectRestriction owlx:property="#hasParent"> <owlx:hasValue owlx:name="#Clinton" /> </owlx:ObjectRestriction> </owlx:Class>
<OneOf> Content: ( Individual[ID]* ) </OneOf>
| Parents: | description |
| Note: | This element contains the exactly enumerated individuals. On the other hand, enumeration of data values is done by OneOf[data]. |
| See also: | owl:oneOf in [OWL Reference], and EnumeratedClass in this document |
For example, the following OneOf statement defines a class of all continents (see also Enumeration in [OWL Reference]):
<owlx:Class owlx:name="AllContinents" owlx:complete="true"> <owlx:OneOf> <owlx:Individual owlx:name="#Eurasia" /> <owlx:Individual owlx:name="#Africa" /> <owlx:Individual owlx:name="#NorthAmerica" /> <owlx:Individual owlx:name="#SouthAmerica" /> <owlx:Individual owlx:name="#Australia" /> <owlx:Individual owlx:name="#Antarctica" /> </owlx:OneOf> </owlx:Class>
A statement of the form <owlx:Individual owlx:name="..."/> refers to some individual (remember: all individuals are by definition instances of owlx:Individual).
In the section on datatypes we will see another use of the OneOf element, namely to define an enumeration of data values.
<EnumeratedClass name = xsd:anyURI {required} deprecated = xsd:boolean > Content: (Annotation*, Individual[ID]*) </EnumeratedClass>
| Attribute: | name - a reference to a name of this class deprecated - this class is deprecated if true |
| Parents: | Ontology |
| Note: | This element contains the exactly enumerated individuals. |
| See also: | owl:oneOf in [OWL Reference], and OneOf[object] in this document |
EnumeratedClass can also be used for the OneOf enumeration, and the enumeration of all continents can be described as follows (see also Enumeration in [OWL Reference]):
<owlx:EnumeratedClass owlx:name="AllContinents"> <owlx:Individual owlx:name="#Eurasia" /> <owlx:Individual owlx:name="#Africa" /> <owlx:Individual owlx:name="#NorthAmerica" /> <owlx:Individual owlx:name="#SouthAmerica" /> <owlx:Individual owlx:name="#Australia" /> <owlx:Individual owlx:name="#Antarctica" /> </owlx:EnumeratedClass>
<IntersectionOf class = xsd:anyURI > Content: ( description* ) </IntersectionOf>
| Attribute: | class - a reference to a class name |
| Parents: | description |
| Note: | This element specifies a class for which the class extension contains precisely those individuals that are members of the class extension of all class descriptions in the range list. |
| See also: | owl:intersectionOf in [OWL Reference] |
In the example below, the range of the intersection statement is a list of two class descriptions, namely two enumerations, both describing a class with two individuals. The resulting intersection is a class with one individual, namely "Tosca" since this is the only individual that is common to both enumerations (see also owl:intersectionOf in [OWL Reference]).
<owlx:Class owlx:name="IntersectionOf-eg" owlx:complete="true"> <owlx:IntersectionOf> <owlx:OneOf> <owlx:Individual owlx:name="#Tosca" /> <owlx:Individual owlx:name="#Salome" /> </owlx:OneOf> <owlx:OneOf> <owlx:Individual owlx:name="#Turandot" /> <owlx:Individual owlx:name="#Tosca" /> </owlx:OneOf> </owlx:IntersectionOf> </owlx:Class>
<UnionOf class = xsd:anyURI > Content: ( description* ) </UnionOf>
| Attribute: | class - a reference to a class name |
| Parents: | description |
| Note: | This element specifies an anonymous class for which the class extension contains those individuals that occur in at least one of the class extensions of the class descriptions in the range list. |
| See also: | owl:unionOf in [OWL Reference] |
The example below describes a class for which the class extension contains three individuals, namely "Tosca", "Salome", and "Turandot" assuming they are all different (see also owl:unionOf in [OWL Reference]).
<owlx:Class owlx:name="UnionOf-eg" owlx:complete="true"> <owlx:UnionOf> <owlx:OneOf> <owlx:Individual owlx:name="#Tosca" /> <owlx:Individual owlx:name="#Salome" /> </owlx:OneOf> <owlx:OneOf> <owlx:Individual owlx:name="#Turandot" /> <owlx:Individual owlx:name="#Tosca" /> </owlx:OneOf> </owlx:UnionOf> </owlx:Class>
<ComplementOf> Content: ( description ) </ComplementOf>
| Parents: | description |
| Note: | This element specifies a class for which the class extension contains exactly those individuals that do not belong to the class extension of the range class. |
| See also: | owl:complementOf in [OWL Reference] |
For example, the expression "neither meat nor fish" could be written as follows by using ComplementOf element (see also owl:complementOf in [OWL Reference]).
<owlx:Class owlx:name="ComplementOf-eg" owlx:complete="true"> <owlx:ComplementOf> <owlx:UnionOf> <owlx:Class owlx:name="#Meat" /> <owlx:Class owlx:name="#Fish" /> </owlx:UnionOf> </owlx:ComplementOf> </owlx:Class>
| Parents: | Ontology |
| Note: | This element allows one to say that the class extension of a class description is a subset of the class extension of another class description. |
| See also: | rdfs:subClassOf in [OWL Reference] |
For example, the following class axiom declares a subclass relation between two classes that are described through their names ("Opera" and "MusicalWork"). Subclass relations provide necessary conditions for belonging to a class. In this case, to be an opera the individual also needs to be a musical work (see also rdfs:subClassOf in [OWL Reference]).
<owlx:Class owlx:name="Opera" owlx:complete="false"> <owlx:Class owlx:name="#MusicalWork" /> </owlx:Class>
For any class there may be any number of subClassOf axioms. For example, it is possible to add the following axiom about the Opera class.
<owlx:SubClassOf> <owlx:sub> <owlx:Class owlx:name="Opera" /> </owlx:sub> <owlx:super> <owlx:ObjectRestriction owlx:property="#hasLibrettist"> <owlx:minCardinality owlx:value="1" /> </owlx:ObjectRestriction> </owlx:super> </owlx:SubClassOf>
This class axiom contains a property restriction. The example states that Opera is a subclass of an anonymous OWL class that has as its class extension the set of all individuals for which the property hasLibrettist has at least one value. Thus, operas should have at least one librettist.
<EquivalentClasses> Content(L): ( Class[ID], Class[ID]+ ) Content(D,F): ( description, description+ ) </EquivalentClasses>
| Parents: | Ontology |
| Note: | This element asserts that two or more classes have the same class extension (i.e., class extensions contain exactly the same set of individuals). |
| See also: | owl:equivalentClass in [OWL Reference] |
In its simplest form, an EquivalentClass axiom states the equivalence (in terms of their class extension) of two named classes. For example:
<owlx:EquivalentClasses> <owlx:Class owlx:name="US_President" /> <owlx:Class owlx:name="PrincipalResidentOfWhiteHouse" /> </owlx:EquivalentClasses>
<DisjointClasses> Content: ( description, description+ ) </DisjointClasses>
| Parents: | Ontology |
| Note: | This element asserts that the class extensions of the two or more class descriptions involved have no individuals in common. |
| See also: | owl:disjointWith in [OWL Reference] |
Declaring two classes to be disjoint is a partial definition: it imposes a necessary but not sufficient condition on the class. A popular example of class disjointness is given below:
<owlx:DisjointClasses> <owlx:Class owlx:name="#Man" /> <owlx:Class owlx:name="#Woman" /> </owlx:DisjointClasses>
The following example shows a common use of class disjointness in subclass hierarchies. The next example indicates that MusicDrama is either an opera, an Operetta, or a Musical (i.e., the subclass partitioning is complete).
<owlx:Class owlx:name="MusicDrama" owlx:complete="true"> <owlx:UnionOf> <owlx:Class owlx:name="#Opera" /> <owlx:Class owlx:name="#Operetta" /> <owlx:Class owlx:name="#Musical" /> </owlx:UnionOf> </owlx:Class>
In the examples below, individuals belonging to one subclass such as Opera cannot belong to another subclass such as Musical (disjoint or non-overlapping subclasses).
<owlx:Class owlx:name="#Opera" owlx:complete="false"> <owlx:Class owlx:name="#MusicDrama" /> </owlx:Class> <owlx:Class owlx:name="#Operetta" owlx:complete="false"> <owlx:Class owlx:name="#MusicDrama" /> </owlx:Class> <owlx:Class owlx:name="#Musical" owlx:complete="false"> <owlx:Class owlx:name="#MusicDrama" /> </owlx:Class> <owlx:DisjointClasses> <owlx:Class owlx:name="#Opera" /> <owlx:Class owlx:name="#Operetta" /> <owlx:Class owlx:name="#Musical" /> </owlx:DisjointClasses>
In the above examples, DisjointWith elements were used together with UnionOf, in order to define a set of mutually disjoint and complete subclasses of a superclass (see also owl:disjointWith in [OWL Reference]).
OWL distinguishes between two types of properties: DatatypeProperty and ObjectProperty.
<DatatypeProperty name = xsd:anyURI {required} functional = xsd:boolean inverseFunctional(L,D) = xsd:boolean {fixed as 'false'} inverseFunctional(F) = xsd:boolean deprecated = xsd:boolean > Content: ((superProperty | domain | range)*) </DatatypeProperty>
| Attribute: | name - a reference to a name of this property functional - asserts that this property can only have one (unique) value for each instance, if true inverseFunctional - asserts this property has a range value that uniquely determines a domain value deprecated - this property is deprecated if true |
| Parents: | Ontology |
| Note: | This element contains a value range of data values, and thus link individuals to data values. |
| See also: | owl:DatatypeProperty owl:FunctionalProperty, owl:InverseFunctionalProperty, and owl:DeprecatedProperty in [OWL Reference] |
<owlx:DatatypeProperty owlx:name="age"> <owlx:domain owlx:class="Person" /> <owlx:range owlx:datatype="&xsd;integer" /> </owlx:DatatypeProperty>
See also the other examples of datatype property: timeStamp in 2.6 and tennisGameScore in 2.6.2.
<ObjectProperty name = xsd:anyURI {required} inverseOf = xsd:anyURI transitive = xsd:boolean symmetric = xsd:boolean functional = xsd:boolean inverseFunctional(L) = xsd:boolean {fixed as 'false'} inverseFunctional(D,F) = xsd:boolean deprecated = xsd:boolean > Content: ((superProperty | domain | range)*) </ObjectProperty>
| Attribute: | name - a reference to a name of this property inverseOf - a reference to a name of an inverse relation transitive - asserts that this property is a transitive relation, if true symmetric - asserts that this property is a symmetric relation, if true functional - asserts that this property can only have one (unique) value for each instance, if true inverseFunctional - asserts this property has a range value that uniquely determines a domain value deprecated - this property is deprecated if true |
| Parents: | Ontology |
| Note: | This element contains a value range of class individuals, and thus link individuals to individuals ("individual-valued property" would probably have been a bit better term). |
| See also: | owl:ObjectProperty, owl:inverseOf, owl:TransitiveProperty, owl:SymmetricProperty, owl:FunctionalProperty, owl:InverseFunctionalProperty, and owl:DeprecatedProperty in [OWL Reference] |
A property axiom defines characteristics of a properties. In its simplest form, a property axiom just defines the existence of a property. For example:
<owlx:ObjectProperty owlx:name="hasParent" />
This defines a property with the restriction that the range values should be individuals (i.e., ObjectProperty).
<superProperty name = xsd:anyURI {required} > Content: (##empty) </superProperty>
| Attribute: | name - a reference to a super property name |
| Parents: | DatatypeProperty, ObjectProperty |
| Note: | This element can be used for both datatype properties and object properties. |
The next example states that all instances (pairs) contained in the property extension of the property hasMother are also members of the property extension of the property hasParent.
<owlx:ObjectProperty owlx:name="hasMother"> <owlx:superProperty owlx:name="#hasParent" /> </owlx:ObjectProperty>
<domain class = xsd:anyURI > Content(L): ( Class[ID]* ) Content(D,F): ( description* ) </domain>
| Attribute: | class - a reference to a class name |
| Parents: | DatatypeProperty, ObjectProperty |
| Note: | This element asserts that the domain values of this property must belong to the class extension of the class description. |
| See also: | rdfs:domain in [OWL Reference] |
For example, it is possible to state that the domain of the property hasBankAccount can be either a Person or a Corporation in the following manner:
<owlx:ObjectProperty owlx:name="hasBankAccount"> <owlx:domain> <owlx:UnionOf> <owlx:Class owlx:name="#Person" /> <owlx:Class owlx:name="#Corporation" /> </owlx:UnionOf> </owlx:domain> </owlx:ObjectProperty>
<range datatype = xsd:anyURI > Content(D,F): ( OneOf[data]? ) </range>
| Attribute: | datatype - a reference to a datatype |
| Parents: | DatatypeProperty |
| Note: | This element asserts that the range values of this property must belong to data values in the specified data range. |
| See also: | rdfs:range in [OWL Reference] |
<range class = xsd:anyURI > Content(L): ( Class[ID]* ) Content(D,F): ( description* ) </range>
| Attribute: | class - a reference to a class name |
| Parents: | ObjectProperty |
| Note: | This element asserts that the range values of this property must belong to the class extension of the class description in the specified data range. |
| See also: | rdfs:range in [OWL Reference] |
<SubPropertyOf sub = xsd:anyURI {required} > Content: ( DatatypeProperty[ID] | ObjectProperty[ID] ) </SubPropertyOf>
| Attribute: | sub - a reference to a subproperty |
| Parents: | Ontology |
| Note: | This element defines that a property specified as a value of sub attribute, is a subproperty of another property specified as content. |
| See also: | owl:subPropertyOf in [OWL Reference] |
<EquivalentProperties> Content: ( (DatatypeProperty[ID], DatatypeProperty[ID]+ ) | (ObjectProperty[ID], ObjectProperty[ID]+) ) </EquivalentProperties>
| Parents: | Ontology |
| Note: | This element asserts that two or more properties have the same property extension. |
| See also: | owl:equivalentProperty in [OWL Reference] |
<DatatypeProperty name = xsd:anyURI {required} > Content: (##empty) </DatatypeProperty>
| Attribute: | name - a reference to a datatype property |
| Parents: | SubPropertyOf, EquivalentProperties |
| Note: | This element is used for solely referring to a datatype property, and does not actually define any property, unlike DatatypeProperty construct. |
<ObjectProperty name = xsd:anyURI {required} > Content: (##empty) </ObjectProperty>
| Attribute: | name - a reference to an object property |
| Parents: | SubPropertyOf, EquivalentProperties |
| Note: | This element is used for solely referring to an object property, and does not actually define any property, unlike ObjectProperty construct. |
Individual axioms (also called "facts") are statements about individuals, indicating class membership and statements about relevant properties.
<Individual name = xsd:anyURI > Content: (Annotation*, (type | DataPropertyValue | ObjectPropertyValue)* ) </Individual>
| Attribute: | name - a reference to a name of this individual |
| Parents: | Ontology |
| Note: | This element indicates class membership and statements about relevant properties. |
| See also: | owl:Thing in [OWL Reference] |
As an example, consider the following set of statements about an instance of the class Opera (see also 6.1 in [OWL Reference]):
<owlx:Individual owlx:name="Tosca"> <owlx:type owlx:name="Opera" /> <owlx:ObjectPropertyValue owlx:property="hasComposer"> <owlx:Individual owlx:name="#Giacomo_Puccini" /> </owlx:ObjectPropertyValue> <owlx:ObjectPropertyValue owlx:property="hasLibrettist"> <owlx:Individual owlx:name="#Victorien_Sardou" /> </owlx:ObjectPropertyValue> <owlx:ObjectPropertyValue owlx:property="hasLibrettist"> <owlx:Individual owlx:name="#Luigi_Illica" /> </owlx:ObjectPropertyValue> <owlx:DataPropertyValue owlx:property="premiereDate"> <owlx:DataValue owlx:datatype="&xsd;date">1900-01-14</owlx:DataValue> </owlx:DataPropertyValue> <owlx:ObjectPropertyValue owlx:property="premierePlace"> <owlx:Individual owlx:name="#Roma" /> </owlx:ObjectPropertyValue> <owlx:DataPropertyValue owlx:property="numberOfActs"> <owlx:DataValue owlx:datatype="&xsd;positiveInteger">3</owlx:DataValue> </owlx:DataPropertyValue> </owlx:Individual>
<type name = xsd:anyURI > Content: ( description* ) </type>
| Attribute: | name - a reference to this type |
| Parents: | Individual[axiom] |
| Note: | This element specifies type information of a parent individual. |
<DataPropertyValue property = xsd:anyURI {required} > Content: ( DataValue* ) </DataPropertyValue>
| Attribute: | property - a reference to a data valued property |
| Parents: | Individual[axiom] |
| Note: | This element specifies a data property value to be associated with a parent individual. |
<ObjectPropertyValue property = xsd:anyURI {required} > Content: ( Individual[axiom]* ) </ObjectPropertyValue>
| Attribute: | property - a reference to an individual valued property |
| Parents: | Individual[axiom] |
| Note: | This element specifies an individual property value to be associated with a parent individual. |
Individual axioms need not necessarily be about named individuals: they can also refer to anonymous individuals. As an example, consider the example below. The example defines some facts about an anonymous instance of the class Measurement, a quantitative observation for which facts such as the observed subject, the observed phenomenon, the observed value, and the observation time are listed (see also 6.1 in [OWL Reference]):
<owlx:Individual> <owlx:type owlx:name="Measurement" /> <owlx:ObjectPropertyValue owlx:property="observedSubject"> <owlx:Individual owlx:name="#JaneDoe" /> </owlx:ObjectPropertyValue> <owlx:ObjectPropertyValue owlx:property="observedPhenomenon"> <owlx:Individual owlx:name="#Weight" /> </owlx:ObjectPropertyValue> <owlx:ObjectPropertyValue owlx:property="observedValue"> <owlx:Individual> <owlx:type owlx:name="Quantity" /> <owlx:DataPropertyValue owlx:property="quantityValue"> <owlx:DataValue owlx:datatype="&xsd;float">59.5</owlx:DataValue> </owlx:DataPropertyValue> <owlx:ObjectPropertyValue owlx:property="quantityUnit"> <owlx:Individual owlx:name="#Kilogram" /> </owlx:ObjectPropertyValue> </owlx:Individual> </owlx:ObjectPropertyValue> <owlx:DataPropertyValue owlx:property="timeStamp"> <owlx:DataValue owlx:datatype="&xsd;dateTime">2003-01-24T09:00:08+01:00</owlx:DataValue> </owlx:DataPropertyValue> </owlx:Individual>
Many languages have a so-called "unique names" assumption: different names refer to different things in the world. On the web, such an assumption is not possible. For example, the same person could be referred to in many different ways (i.e. with different URI references). For this reason OWL does not make this assumption. Unless an explicit statement is being made that two URI references refer to the same or to different individuals, OWL tools should in principle assume either situation is possible.
Two elements SameIndividual and DifferentIndividuals are provided for making statements about the identity of individuals.
<SameIndividual> Content: ( Individual[ID]* ) </SameIndividual>
| Parents: | Ontology |
| Note: | This element indicates that two or more URI references actually refer to the same thing: the individuals have the same "identity". |
| See also: | owl:sameAs and owl:sameIndividualAs in [OWL Reference] |
<Individual name = xsd:anyURI {required} type = xsd:anyURI > Content: (##empty) </Individual>
| Attribute: | name - a reference to an individual type - a reference to a type of an individual |
| Parents: | SameIndividual, DifferentIndividuals, EnumeratedClass(D,F), OneOf[object](D,F) |
| Note: | This element is used for solely referring to an individual ID, and does not actually define any individual, unlike an individual axiom. |
For example, we could state that the following two URI references actually refer to the same person (see also 6.2 in [OWL Reference]):
<owlx:SameIndividual> <owlx:Individual owlx:name="#William_Jefferson_Clinton" owlx:type="Human" /> <owlx:Individual owlx:name="#BillClinton" /> </owlx:SameIndividual>
In OWL Full, where class can be treated as instances of (meta)classes, we can use the SameIndividual element to define class equality, thus indicating that two concepts have the same intensional meaning. An example (see also 6.2 in [OWL Reference]):
<owlx:Individual owlx:name="FootballTeam"> <owlx:type owlx:name="&owlx;Class" /> </owlx:Individual> <owlx:SameIndividual> <owlx:Individual owlx:name="FootballTeam" /> <owlx:Individual owlx:name="http://sports.org/US#SoccerTeam" /> </owlx:SameIndividual>
Note that the first Individual element in the above example is an individual axiom, while the other Individual elements contained in SameIndividual are individual IDs.
<DifferentIndividuals> Content: ( Individual[ID]* ) </DifferentIndividuals>
| Parents: | Ontology |
| Note: | This element indicates that two or more URI references refer to different individuals. |
| See also: | owl:differntFrom and owl:AllDifferent in [OWL Reference] |
The following example states that there are three operas, which are all different individuals (see also 6.2 in [OWL Reference]).
<owlx:Individual owlx:name="Don_Giovanni"> <owlx:type owlx:name="Opera" /> </owlx:Individual> <owlx:Individual owlx:name="Nozze_di_Figaro"> <owlx:type owlx:name="Opera" /> </owlx:Individual> <owlx:Individual owlx:name="Cosi_fan_tutte"> <owlx:type owlx:name="Opera" /> </owlx:Individual> <owlx:DifferentIndividuals> <owlx:Individual owlx:name="#Don_Giovanni" /> <owlx:Individual owlx:name="#Nozze_di_Figaro" /> <owlx:Individual owlx:name="#Cosi_fan_tutte" /> </owlx:DifferentIndividuals>
OWL uses the facilities of XML Schema Datatypes [XMLSchema-2], and the following built-in XML Schema datatypes can be used.
The specific considerations with the other built-in XML Schema datatypes are explained in the Abstract Syntax document [OWL Semantics].
A datatype can be specified as a value of datatype attribute, which is decleared in allValuesFrom and someValuesFrom elements (for DataRestriction) as well as range element (for DatatypeProperty). A value of the datatype attribute should be a canonical URI reference to an XML Schema datatype: "http://www.w3.org/2001/XMLSchema#name", where name is a local name of a built-in XML Schema datatype. For example (see also 7.1 in [OWL Reference]):
<owlx:DatatypeProperty owlx:name="#timeStamp">
<owlx:domain owlx:class="#Measurement" />
<owlx:range owlx:datatype="http://www.w3.org/2001/XMLSchema#dateTime" />
</owlx:DatatypeProperty>
Note here that XML entities can be used as abbreviations. For example, an XML entity xsd is defined in the DOCTYPE declaration:
<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
Then, the above owlx:datatype attribute of owlx:range element may be specifid in the following manner.
<owlx:range owlx:datatype="&xsd;dateTime" />
Data values can be either plain (no datatype) or typed. In DataValue element, typed value may be specified by using datatype attribute.
<DataValue datatype = xsd:anyURI > Content: (#CDATA) </DataValue>
| Attribute: | datatype - a reference to a datatype |
| Parents: | DataPropertyValue, OneOf[data](D,F) |
For example, a type of time stamp property value can be specified with the dateTime datatype defined as an XML Schema datatype, by using the datatype attribute (see also 7.1 in [OWL Reference]).
<owlx:Individual>
<owlx:type owlx:name="Measurement" />
<owlx:DataPropertyValue owlx:property="timeStamp">
<owlx:DataValue
owlx:datatype="&xsd;dateTime">2003-01-24T09:00:08+01:00</owlx:DataValue>
</owlx:DataPropertyValue>
</owlx:Individual>
A range of data values can be defined as an enumerated datatype.
<OneOf> Content: ( DataValue* ) </OneOf>
| Parents: | DataRestriction/allValuesFrom(D,F), DataRestriction/someValuesFrom(D,F), DatatypeProperty/range(D,F) |
| Note: | This element defines an enumeration of data values. On the other hand, enumeration of individuals is done by OneOf[obj]. |
| See also: | Enumerated datatype in [OWL Reference] |
For example, the range of tennisGameScore property to be the list of integer values {0, 15, 30, 40} can be specifies as below (see also 7.2 in [OWL Reference]):
<owlx:DatatypeProperty owlx:name="tennisGameScore"> <owlx:range> <owlx:OneOf> <owlx:DataValue owlx:datatype="&xsd;integer">0</owlx:DataValue> <owlx:DataValue owlx:datatype="&xsd;integer">15</owlx:DataValue> <owlx:DataValue owlx:datatype="&xsd;integer">30</owlx:DataValue> <owlx:DataValue owlx:datatype="&xsd;integer">40</owlx:DataValue> </owlx:OneOf> </owlx:range> </owlx:DatatypeProperty>
The table below shows the term correspondence between RDF/XML and the XML presentation syntax. In the column of presentation syntax, the terms begin with '@' indicate attributes belong to an element concatenated before the attribute with a '/' delimiter.
Note: Appendix A of the OWL Reference [OWL Reference] provides a systematic set of links for each language construct in the Reference document and corresponding sections in the Guide [OWL Guide] as well as the Semantics [OWL Semantics] documents.


{{title}}
Your file must be:
- a JPEG or PDF
- no more than 10MB in size
How do I convert a file into a PDF?
Converting a file into PDF format is very simple. The method is similar with most types of word processors. First, open the document you want to convert, then:
- click “File”
- choose either “Export”, “Export as PDF” or “Save as” (depending on your software)
- select “Create PDF” or “PDF”
- click on either “Publish” or “Save”
For Mac users and older software:
- click “File”
- select “Print”
- either click “PDF”, or choose a printer labelled “PDF”
- click either “Save” or “OK”
You could also search for websites that will convert your document for free.
Telephone
03000 501 501
Opening hours: 8:30am to 5:00pm Monday to Friday. Closed on bank holidays.


{% extends "home/base.html" %} {% load static %} {% block addon_css %} {% endblock %} {% block content %}
Please check the retrieved Compound information is correct. In addition, to facilitate the revision you can compare the upload molecule to the retrieved standard molecule from PubChem or ChEMBL. Please be aware that the standard molecule corresponds to the most common form which can differ from the uploaded molecule in terms of tautomeric and protonation states.
| {%if saved%}{%endif%} | {%if saved%}{%endif%} |


[gecode-users] Unary: Allow for negative durations when task is not mandatory
Andrea Peano
andrea.peano at unife.it
Thu Oct 31 12:50:29 CET 2013
Yes, sure it's useful, thank you.
I'm just wondering whether a modification of the unary might be more
efficient or not.
In such a case, I could modify the source files of Gecode, by adding
another (modified) unary constraint, otherwise... should I write an
user-defined propagator?
I've the same doubt regarding the nooverlap, I'd like to achieve a
generalization of it.
In this generalization rectangles of the same "group" can overlap
eachother, but they cannot overlap other rectangles of other groups.
So the new nooverlap will take in input an IntArgs array which contains the
group IDs.
In your guide I read:
"The constraints [nooverlap] are implemented by a naive propagator
(considering pairwise no-
overlap between rectangles including constructive disjunction, see also
GCCAT: diffn),
this will change in the future. "
I could add a condition within the implementation of the nooverlap, that
checks if the two rectangles belong to two different groups. Is it right?
Do you have any suggestion?
Thank you,
Andrea
On Wed, Oct 30, 2013 at 1:05 PM, Christian Schulte <cschulte at kth.se> wrote:
> Hi,****
>
> ** **
>
> There is a generic trick for situations like this: you introduce new
> variables tend', tstart' and tdur' and only enforce that they are equal to
> tend, tstart, tdur respectively when the Boolean variable is 1. That means
> if the Boolean variable is 0, the new variables can have whatever value.**
> **
>
> ** **
>
> Hope that helps****
>
> Christian****
>
> ** **
>
> --****
>
> Christian Schulte, Professor of Computer Science, KTH,
> www.ict.kth.se/~cschulte/****
>
> ** **
>
> *From:* users-bounces at gecode.org [mailto:users-bounces at gecode.org] *On
> Behalf Of *Andrea Peano
> *Sent:* Tuesday, October 29, 2013 10:21 AM
> *To:* users at gecode.org
> *Subject:* [gecode-users] Unary: Allow for negative durations when task
> is not mandatory****
>
> ** **
>
> Hello all,****
>
> I would modify the unary constraint in order to allow negative durations
> (tend<tstart) when the boolvar m (mandatory) is 0.****
>
> ** **
>
> Is there an easy way to do this?****
>
> ** **
>
> Thank you,****
>
> Andrea****
>
--
Andrea Peano - PhD student
Department of Engineering - University of Ferrara
Tel: +39 0532 97 4827
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gecode.org/pipermail/users/attachments/20131031/c5ca509b/attachment.html>
More information about the users
mailing list


U-DriveBohol is your friendly travel partner to Bohol. We offer safe and comfortable tour and travel services to Bohol's top tourist destinations such as the Chocolate Hills. We also provide car rental services for those looking to rent a car, van, or motorcycle anywhere in the province. Contact us now for your bookings and inquiries!
Php 18, 000 per day
Honda Civic Coupe
Style: Sedan
Seating Capacity: 5
Transmission: Automatic
Php 18, 000 per day
Honda Civic Hybrid
Style: Sedan
Seating Capacity: 5
Transmission: Automatic
Php 18, 000 per day
Honda Civic Tourer
Style: Sedan
Seating Capacity: 5
Transmission: Automatic


Jarda
For the last 5 years I've been developing websites and applications with the focus on front-end. I'm interested in trendy and modern technologies. Lately, I've been blown away by blockchain and decentralized projects based on Bitcoin technology. I'm focused primarily on creating applications using javascript (React.js), traveling the world and enjoying it all.
Jakub
For more than 7 years I've been doing online business for living. In 2011 I set up a development company which I sold in 2015 and got back to freelancing as a developer. I really like clean, testable and readable code, which is supported by design patterns. I have managerial experience and I like to lead a team of developers and encourage them to write quality code with me setting an examples for them. I graduated from the Czech Technical University in Prague, Faculty of Information Technologies and I'm helping my girlfriend with her sweet business www.tartaletka.cz.
What's happened?
At the beginning of 2016 we started to work on an app for collectors, something like e-bay for collectors. Unfortunately, client ran out of money and project was terminated from day to day.
What was our technology stack?
The front end is a single page app in React.js, communicating with a REST API written in Laravel(resp. Dingo API). The complete dev stack for front-end is: React.js, Node.js, Webpack, Eslint, Redux, Immutable.js, Flowtype a Gulp.
Backend runs on PHP 7 and Laravel 5.3. Images from collectors are stored on an AWS S3, cache with Redis, search via ElasticSearch. Automatic deployment thanks to combination of Gitlab CI and Envoyer within zero downtime. The code is covered by unit, integration and acceptance tests. Vue.js.is used in administration.
Whole development was held remotely, project management in Asana, communications via Slack, Skype a e-mail.
Why should you hire us?
We are a harmonized team and we go along well. Together we are very effective and we would like to carry on this way. It might be a new project you can build up with us or we can be a reinforcement of your current development team.
We are available immediately, we love to code in Laravel and React.
If we could define our dream job, then we would like to work on alife-long global project, where we can fully use our experience and talent. We want to be proud of what we do, so it should be a project with a potential and with the purpose to help people with their problems.
We work remotely, Jakub lives in Prague, Czech Republic (UTC+1) and Jarda is currently working from Thailand (UTC+6).
Contact
Email us on<EMAIL_ADDRESS>or call +420 605 144 778.
We would love to meet you in Prague (Jarda is coming back for Christmas) or we can call any time.


svg
png
json
Style the map by coloring or adding/removing layers. Layers are: nature, houses, water, roads and administrative zones.
Save the map as png, svg or geoJson.
Due to performance reasons it is currrently not possible to save the map when zoomed out afar.
Technical details:
Made with: Mapbox GL, turf, tiles from osm2vectortiles, geocoder by photon.komoot.de.
SVG: Elements of the same layer have the same class name.
GeoJson: Every feature has a color property.
The site is monitored with the open source tool PIWIK.
A project by Hans Hack - @hnshck
Made by: Hans Hack


Class SagaState
Represents the state of a saga
Inheritance
Inherited Members
Namespace:Bifrost.Sagas
Assembly:Bifrost.dll
Syntax
public class SagaState
Constructors
| Improve this Doc View SourceSagaState()
Initializes a new instance of SagaState with the current state set to Bifrost.Sagas.SagaState.New
Declaration
public SagaState()
SagaState(State)
Initializes a new instance of SagaState with a current state
Declaration
public SagaState(State currentState)
Parameters
| Type | Name | Description |
|---|---|---|
| State | currentState | State to set |
Fields
| Improve this Doc View SourceBEGUN
The Bifrost.Sagas.SagaState.Begun state of a ISaga
Declaration
public static readonly State BEGUN
Field Value
| Type | Description |
|---|---|
| State |
CONCLUDED
The Bifrost.Sagas.SagaState.Concluded state of a ISaga
Declaration
public static readonly State CONCLUDED
Field Value
| Type | Description |
|---|---|
| State |
CONTINUING
The Bifrost.Sagas.SagaState.Continuing state of a ISaga
Declaration
public static readonly State CONTINUING
Field Value
| Type | Description |
|---|---|
| State |
NEW
The Bifrost.Sagas.SagaState.New state of a ISaga
Declaration
public static readonly State NEW
Field Value
| Type | Description |
|---|---|
| State |
Properties
| Improve this Doc View SourceIsBegun
Get wether or not the current state is Bifrost.Sagas.SagaState.Begun
Declaration
public bool IsBegun { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
IsConcluded
Get wether or not the current state is Bifrost.Sagas.SagaState.Concluded
Declaration
public bool IsConcluded { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
IsContinuing
Get wether or not the current state is Bifrost.Sagas.SagaState.Continuing
Declaration
public bool IsContinuing { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
IsNew
Get wether or not the current state is Bifrost.Sagas.SagaState.New
Declaration
public bool IsNew { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Methods
| Improve this Doc View SourceCanTransitionTo(State)
Check if a transition is allowed
Declaration
public bool CanTransitionTo(State newState)
Parameters
| Type | Name | Description |
|---|---|---|
| State | newState | State to check if is allowed |
Returns
| Type | Description |
|---|---|
| System.Boolean | true if transition is allowed, false if not |
ToString()
Outputs the current state as string
Declaration
public override string ToString()
Returns
| Type | Description |
|---|---|
| System.String | A string representing the current state |
Overrides
TransitionTo(State)
Transition to a given state
Declaration
public void TransitionTo(State newState)
Parameters
| Type | Name | Description |
|---|---|---|
| State | newState | State to transition to |
Exceptions
| Type | Condition |
|---|---|
| InvalidSagaStateTransitionException | Thrown if transition is not allowed |
Operators
| Improve this Doc View SourceImplicit(String to SagaState)
Implicit operator for converting a System.String to a SagaState
Declaration
public static implicit operator SagaState(string state)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | state | System.String containing state - see remarks |
Returns
| Type | Description |
|---|---|
| SagaState | SagaState for the state string |
Remarks
Supported strings : new begun continuing concluded
Any other strings will cause a UnknownSagaStateException


By having a mecanum wheel drive train, we are able to move omni-directional, or in all directions.
Two Fly Wheel Shooter
By having a two fly wheel shooter, we are able to achieve a balance of speed and accuracty.

Aluminum Extrusion (8020) Lift
Using a lift made out of Aluminum Extrusions allows us to raise and lower the lift quickly, and easily modify the lift with ease.
Linear Actuator Button Pushers
Linear actuator button pushers allow us to be very close to the wall in Autonomous to detect the color, and press the button accurately and effectively with ease.
Baltic Birch and 8020 Construction
Using baltic birch and 8020 as construction materials allow us to create a modular design, in which we can switch, modify, and fix certain parts of the robot with ease.
Sweet animations that make our robot look cool.
Robot Animations
Robot animations created to illustrate certain processes and just look cool.


San Francisco Hub-spots:
Hub-1 (Presidio)
Hub-2 (Marina)
Hub-3 (Downtown)
San Francisco - Map Locator
Start
Reset
Export
Timestamp:
Latitude:
Accuracy:
Longitude:
Altitude:
Speed:
Heading:
Distance:
Time:
Zoom:
Geofence:
Screen:
Options
Debug
Export CSV
Done
Email


Travel App
Where are you going?
In which country? (Optional)
When do you leave?
When do you return?
Create Trip Details


SICStus Prolog uses five data areas: program space, global stack, local stack, choicepoint stack, and trail stack. Each of these areas is automatically expanded if it overflows.
The local stack contains all the control information and variable bindings needed in a Prolog execution. Space on the local stack is reclaimed on determinate success of predicates and by tail recursion optimization, as well as on backtracking.
The choicepoint stack contains data representing outstanding choices for some goals or disjunctions. Space on the choicepoint stack is reclaimed on backtracking.
The global stack contains all the data structures constructed in an execution of the program. This area grows with forward execution and shrinks on backtracking.
The trail stack contains references to all the variables that need to be reset when backtracking occurs. This area grows with forward execution and shrinks on backtracking.
The program space contains compiled and interpreted code, recorded terms, and atoms. The space occupied by compiled code, interpreted code, and recorded terms is recovered when it is no longer needed; the space occupied by atoms that are no longer in use can be recovered by atom garbage collection described in ref-mgc-ago.
These fluctuations in memory usage of the above areas can be monitored by
statistics/[0,2]
.
SICStus Prolog uses the global stack to construct compound terms, including lists. Global Stack space is used as Prolog execution moves forward. When Prolog backtracks, it automatically reclaims space on the global stack. However, if a program uses a large amount of space before failure and backtracking occur, this type of reclamation may be inadequate.
Without garbage collection, the Prolog system must attempt to expand the global stack whenever a global stack overflow occurs. To do this, it first requests additional space from the operating system. If no more space is available, the Prolog system attempts to allocate unused space from the other Prolog data areas. If additional space cannot be found, a resource error is raised.
Global stack expansion and abnormal termination of execution due to lack of stack space can occur even if there are structures on the global stack that are no longer accessible to the computation (these structures are what is meant by “garbage”). The proportion of garbage to non-garbage terms varies during execution and with the Prolog code being executed. The global stack may contain no garbage at all, or may be nearly all garbage.
The garbage collector periodically reclaims inaccessible global stack space, reducing the need for global stack expansion and lessening the likelihood of running out of global stack. When the garbage collector is enabled (as it is by default), the system makes fewer requests to the operating system for additional space. The fact that less space is required from the operating system can produce a substantial savings in the time taken to run a program, because paging overhead can be much less.
For example, without garbage collection, compiling a file containing the sequence
p(_) :- p([a]). :- p(_).
causes the global stack to expand until the Prolog process eventually runs out of
space. With garbage collection enabled, the above sequence
continues indefinitely. The list built on the global stack by each recursive
call is inaccessible to future calls (since p/1
ignores its argument)
and can be reclaimed by the garbage collector.
Garbage collection does not guarantee freedom from out-of-space errors, however. Compiling a file containing the sequence
p(X) :- p([X]). :- p(a).
expands the global stack until the Prolog process eventually runs out of space. This happens in spite of the garbage collector, because all the terms built on the global stack are accessible to future computation and cannot be reclaimed.


WITNESS LIST Corrections Committee March 30, 1999-2:00P HB 157 Against: Gantt, Melanie (Mental Health Association in Texas) Lovelace, Joe (National Alliance for the Mentally Ill of Texas (NAMI)) Mitchell, Beth (Advocacy, Inc.) Sauer, Larry (Self) On: Arnold, F. Liles (Council on Sex Offender Treatment) HB 544 Against: Gantt, Melanie (Mental Health Association in Texas) Hampton, Keith S. (Texas Criminal Defense Lawyers Association) Lovelace, Joe (National Alliance for the Mentally Ill of Texas) Mitchell, Beth (Advocacy, Inc.) Sauer, Larry (Self) On: Arnold, F. Liles (Council on Sex Offender Treatment) Bozarth, Melinda Hoyle (Texas Department of Criminal Justice) DeBottis, Gina (Special Prosecution Unit) Hale, Karen (Texas Dept. of Mental Health & Mental Retardation) McClure, Thomas D. (Texas Dept. of Mental Health & Mental Retardation) Miller, Barbara A. (Texas Dept. of Mental Health & Mental Retardation) Population Impact Analysis On: Eisenberg, Mike (Criminal Justice Policy Council)


{
"name": "footer",
"sections": [
{
"name": "footer",
"component": "template",
"source": "data/footer.json",
"attributes": {
"template": ""
}
}
]
}
Design with JSON
Backbrace is a component based framework which wires an app together with JSON based design files.
Develop single page progressive web apps with ease. Just check out the example on the left.


Gareth Bale admits he prefers to play for Wales than Real Madrid as transfer rumours continue
Gareth Bale has been linked with transfers to Man Utd, Man City and the Chinese Super League in recent times as his time at Real Madrid appears to be heading towards a climax
by James Nursey, https://www.mirror.co.uk/authors/james-nursey/Gareth Bale admits he gets “more excited” playing for Wales than Real Madrid as his Spain woes continue to mount.
Bale is getting yet more stick in Spain after turning up for international duty despite having not played for Real since October 5.
The star has not featured since scoring in Wales’ 1-1 draw against Croatia on October 13 after sustaining a calf injury in the closing stages of the Euro 2020 qualifier.
He admits playing for his country is extra special after his Spanish spell turned sour when boss Zinedine Zidane tried to force him out this summer.
Asked if playing for Wales gave him more “joy” ahead of today’s qualifier in Azerbaijan, Bale replied: “Yes definitely.

“I’ve been with most of the older players since we were in Under-17s.
“It’s normal - with Wales, I’m speaking my own language and feel more comfortable. I definitely have a bit more excitement playing with Wales.
“But it doesn’t change what I give on the pitch. I always give 100% on the pitch wherever I am.”
Bale has been criticised by Real team-mate Toni Kroos for joining up with Wales having missed club games, with the German saying “maybe this is not the best time”.
Predrag Mijatovic, the former Real striker, also added to the flak by saying Bale’s priorities are “Wales, golf, and after that Real Madrid”.
Bale admits “it doesn’t look good” he is now fit again for Wales after not playing for Madrid.
But he insists he has not been avoiding playing for them ahead of Wales’ crunch penultimate qualifier in Baku.
He added: “I’ve tried to get back as quickly as I could. If Real Madrid had a game this weekend I’d have been fit and training to play.
“I guess maybe to them it doesn’t look good but it is a coincidence the national team has come by and I have returned to full training.
“If I’m fit, no matter where I am, I’m going to try to play, whether it’s Wales or Madrid and I will give my all.”
But debate over Bale’s commitment to Real continues to rage as he has more than two years left on a huge contract worth more than £600,000-a-week.
He didn’t help himself when he refused to hold the Madrid pennant in the team photo before kick off against PSG in the Champions League loss in September – in a social media clip which went viral.
But he subsequently held the Wales pennant with a smile on his face in Slovakia and is likely to fulfil the task again tonight.
He said: “I think that was a funny video. My friend sent it to me. I don’t normally hold it but if it’s with me I’m sure I’ll hold it.”
Bale’s biggest priority is adding to his 32 goals in 81 caps by firing Wales back to the Euros where they made the last four in 2016.
Asked about the importance of qualification ahead of today’s game and the visit of Hungary on Tuesday in the last qualifier, Bale added: “It’s one of my goals. It’s the one that’ll come first. A draw isn’t in our mindset.
“We know what we have to do and we know the pressure but we have to embrace it.
“We still have a chance and we’ll be giving it everything we can.”


Bruno Fernandes addresses future ahead of January after Man Utd and Tottenham transfer interest
Bruno Fernandes was linked with Man Utd and Tottenham in the summer and has now addressed his future with the January transfer window around the corner
by Rich Jones, https://www.mirror.co.uk/authors/rich-jones/Bruno Fernandes was the talk of the summer transfer window.
But he says he is in no rush to force a Sporting Lisbon exit when he gets the chance to leave again in January.
Fernandes was heavily linked with Manchester United , Tottenham and Real Madrid in the closing stages of the summer window but a deal did not get over the line.
He eventually signed a new big-money contract with the Portuguese giants and he insists he will not force his way out in January.
Fernandes did reiterate, however, he has "dreams to come true", hinting he may still look to pursue a move to the Premier League in the future.
Speaking after Portugal's 6-0 win over Lithuania, Fernandes said: "I'm not worried, since 2016 I'm at Sporting and they say I'm leaving, so far I'm fine.
"I have dreams to come true, but I'm not worried, I have no reason to force out, I'm fine, in a club I like.
"On the day I have to leave, if I have to, I hope to leave a good memory."
Tottenham have been linked with a fresh move to sign Fernandes as they face losing Christian Eriksen and seek a replacement.
Sporting Lisbon president Frederico Varandas opened up on their battle to keep Fernandes shortly aftr the transfer window closed and revealed they rejected a proposal from Spurs.
“It was 'impossible' to retain Bruno Fernandes, but we did it," he said.
"We prepared for his sale by putting a fair price on him, and we had bids, but the only serious offer was from Tottenham and that was €45 million (£40m/$50m) plus another €20m (£18m/$22m) in bonuses for winning the Premier League and the Champions League.
“Those are difficult objectives, so we chose not to accept.
“Bruno Fernandes proved to be not only a great player but a great professional and captain. The dignity and responsibility that he has always shown is exemplary.
“The day I turned down Tottenham's proposal, I came to the training ground and spoke to him. I told him why I declined the offer and why he would stay here beyond the end of the market and he understood perfectly.
“In addition, he also understood that the bid they offered us was not fair.  Many European clubs want him and we know this is something we will always have to deal with.”


— WORK IN PROGRESS —
The General Algebraic Modeling System (GAMS) Release 25.0 (GAMS Development Corporation 2019) was used to solve SPAMc. To solve the inconsistencies, we start by inspecting the data for common errors (e.g. data entry errors in the subnational statistics) and, if needed, repair them. If there are still problems, we adjusted the data adopting a hierarchy of ‘credibility’ in the following decreasing order of importance:
The agricultural statistics were not changed, except when the model proved to be infeasible and after all other modification options were exhausted. If there are inconsistencies with cropland and irrigated area, values are scaled up so that they match with the statistical totals reported for the smallest available administrative unit, while at the same time, checking that the corresponding totals at higher administrative units also continue to align Wood-Sichra, Joglekar, and You (2016) presents more details about the various procedures.
Slacks are needed to distribute the crops that belong to the subsistence farming system in the maximize score mnodel. The equation that fixes the allocation of these crops proportional to rural population density will almost never be within the bounds of the model solution that are set by the other constraints. To ensure a feasible solution, a slack variable is essential.
SPAMc models 40 different crop (and crop groups) that together cover the full agricultural sector and are each identified by a four letter code (Table 1).1 The main reason for this classification is the limited availability of crop-specific biophysical suitability maps, which form a key element in the crop allocation process (see spatial data for more information). It would be relatively easy to add new crops by splitting them off from broader crop groups (e.g. tropical and temperate fruits, and vegetables) if appropriate agricultural statistics and suitability maps would be available. We plan to add an example on how to do this in future updates. The actual number of crops in the model is determined by the number of crops that are actually grown in the target country and identified by the availability of national statistics.
# Add 40 crop table
GAMS Development Corporation. 2019. “General Algebraic Modeling System (GAMS).” Fairfax, VA. www.gams.com.
Wood-Sichra, Ulrike, Alison B. Joglekar, and Liangzhi You. 2016. “Spatial Producion Allocation Model (SPAM) 2005: Technical Documentation.” Harvest Choice Working Paper. Washington, D.C.: International Food Policy Research (IFPRI).
Global SPAM uses 42 different crops because it includes two types of millet and two types of coffee (Wood-Sichra, Joglekar, and You 2016). As this level of detail is not supported by most national statistics and FAOSTAT, the have been merged into millet and coffee, respectively.↩


| GEOS SDK TechDocs
|
| 4 Data Formats
| 6 Application Responsibilities
A data driver specifies how the data in a transmitted message is arranged. An application that sends a message must provide it in the format required by the data driver. The data driver then translates the message into an appropriate format for the transport driver. When the transport driver receives a message, it determines which data driver can interpret the message, and then calls theMailbox library.
There are a number of default GEOS data types, and developers may write other data drivers of their own to support new data types.
A data driver has to perform a few different tasks:
-
When an application sends a message, the Mailbox library hands the message to the data driver. If the message-data is volatile, the data driver must copy the message's data to a safe place, so the application can free the storage it used to create the message. It gives the Mailbox library an opaque token to identify the message; the mailbox library will use this token when it requests the message for delivery.
-
When the Mailbox library requests it, it must provide message data (one "block" at a time) in a format appropriate for the transport driver.
-
When the Mailbox library receives a message in the driver's format, it must be able to handle data, one "block" at a time, provided by the transport driver in that driver's format; it must be able to assemble this into a message in the data driver's format. (As when transmitting a message, the data driver will give the Mailbox library an opaque token to identify this message.)
-
When it delivers a message, it must provide a reference to the received message in a format the receiving application will be able to understand.
-
The data driver must be able to provide, on request, the size of any message (outgoing or incoming) it's holding.
-
When the Mailbox library informs the data driver that a message has been handled (i.e. an outgoing message has been transmitted, or an incoming message has been deleted by the destination application), the data driver must free its copy of the message, reclaiming the space that message was using.
| GEOS SDK TechDocs
|
| 4 Data Formats
| 6 Application Responsibilities


Style & Decoration
Class reference
Italics
Use the .italic
utility to make text italic.
The quick brown fox jumped over the lazy dog.

The quick brown fox ...

Use the .roman
utility to display text normally. This is typically used to reset italic text at different breakpoints.
The quick brown fox jumped over the lazy dog.

The quick brown fox ...

Capitalization
Use the .uppercase
utility to uppercase text.
The quick brown fox jumped over the lazy dog.

The quick brown fox ...

Use the .lowercase
utility to lowercase text.
The quick brown fox jumped over the lazy dog.

The quick brown fox ...

Use the .capitalize
utility to capitalize text.
The quick brown fox jumped over the lazy dog.

The quick brown fox ...

Use the .normal-case
utility to preserve the original casing. This is typically used to reset capitalization at different breakpoints.
The quick brown fox jumped over the lazy dog.

The quick brown fox ...

Underlines
Use the .underline
utility to underline text.
The quick brown fox jumped over the lazy dog.

The quick brown fox ...

Use the .line-through
utility to strike out text.
The quick brown fox jumped over the lazy dog.

The quick brown fox ...

Use the .no-underline
utility to remove underline or line-through styling.
Link with no underline
Antialiasing
Use the .antialiased
utility to render text using grayscale antialiasing.
The quick brown fox jumped over the lazy dog.

The quick brown fox ...

Use the .subpixel-antialiased
utility to render text using subpixel antialiasing.
The quick brown fox jumped over the lazy dog.

The quick brown fox ...

Responsive
To control the style and decoration of an element at a specific breakpoint, add a {screen}:
prefix to any existing style and decoration utility. For example, use md:underline
to apply the underline
utility at only medium screen sizes and above.
For more information about Tailwind's responsive design features, check out the Responsive Design documentation.
The quick brown fox jumped over the lazy dog.
The quick brown fox jumped over the lazy dog.
The quick brown fox jumped over the lazy dog.
The quick brown fox jumped over the lazy dog.
The quick brown fox jumped over the lazy dog.
Hover
To control the style and decoration of an element on hover, add the hover:
prefix to any existing style and decoration utility. For example, use hover:underline
to apply the underline
utility on hover.
Link
Hover utilities can also be combined with responsive utilities by adding the responsive {screen}:
prefix before the hover:
prefix.
Link
Focus
To control the style and decoration of an element on focus, add the focus:
prefix to any existing style and decoration utility. For example, use focus:uppercase
to apply the uppercase
utility on focus.
<input class="focus:uppercase ..." value="Focus me">
Focus utilities can also be combined with responsive utilities by adding the responsive {screen}:
prefix before the focus:
prefix.
<input class="md:focus:uppercase ..." value="Focus me">
Customizing
Responsive and State Variants
By default, only responsive, hover and focus variants are generated for text style utilities.
You can control which variants are generated for the text style utilities by modifying the textStyle
property in the modules
section of your Tailwind config file.
For example, this config will also generate variants:
Disabling
If you don't plan to use the text style utilities in your project, you can disable them entirely by setting the textStyle
property to false
in the modules
section of your config file:


State Population Mapping
The State Population demo is similar in some respects to the Hurrican demo in that it was made with GIS data for the map data and then some custome GIS work to extract the data from tables and generate the animation elements. Let's look at a couple of spects of it.
First off, there is simply the framework of the outlines of the 48 (lower) states as SVG shapes. As before, these were extracted from publicly available GIS files and converted to SVG.
Then there are 2 sources of data:
- The relative proportion of the state's population to the overall population of the US
- The proportion of the states's population relative to that state's total today
The first is used to shade the map (called a chlopleth map) as a thematic map using color (the typical ROYGB) with the most populus states being red and the least blue. In addition, both data-sets are used to create a graph in the lower-left of the graphic that shows a graph over time of the trends of the two data-sets. This graph is updated with the apprpriate state's data as the user mouses over the map.
So how is this done? The graph is drawn in the lower left quadrant of the map, below California:
<svg id="Graph" x="50" y="400" height="150" width="200" viewBox="1790 0 210 1" pointer-events="all"
preserveAspectRatio="none" stroke-width="0.02" overflow="visible">
<g transform="matrix(1 0 0 -1 0 1)" font-family="'TimesNewRomanPSMT'" >
<rect x="1790" y="0" height="1" width="210" fill="none" stroke="black" />
<g fill="none" stroke="grey" stroke-width="0.001" >
<line x1="1800" y1="0" x2="1800" y2="1" />
<line x1="1850" y1="0" x2="1850" y2="1" />
<line x1="1900" y1="0" x2="1900" y2="1" />
<line x1="1950" y1="0" x2="1950" y2="1" />
<line x1="1790" y1="0" x2="1790" y2="1" stroke="gold" stroke-width="1" >
<animate attributeName="x1" dur="22s" fill="freeze" values="1790;2000" />
<animate attributeName="x2" dur="22s" fill="freeze" values="1790;2000" />
</line>
</g>
<use id="useStatePop" xlink:href="#CaliforniaPop" stroke="blue" fill="none" />
<use id="useStateProp" xlink:href="#CaliforniaProp" stroke="red" fill="none"/>
<use id="useStateName" xlink:href="#CaliforniaName" transform="matrix(2 0 0 -0.01 1790 1.05)" fill="red" />
<g fill="black" >
<text transform="matrix(1 0 0 -0.01 1790 1)" text-anchor="end" baseline-shift="-30%" >1 </text>
<text transform="matrix(1 0 0 -0.01 1790 0)" text-anchor="end" baseline-shift="-30%">0 </text>
<text transform="matrix(1 0 0 -0.01 2000 1)" text-anchor="start" baseline-shift="-30%" > 1</text>
<text transform="matrix(1 0 0 -0.01 2000 0)" text-anchor="start" baseline-shift="-30%"> 0</text>
<text transform="matrix(1 0 0 -0.01 1800 0)" text-anchor="middle" baseline-shift="-150%">1800</text>
<text transform="matrix(1 0 0 -0.01 1850 0)" text-anchor="middle" baseline-shift="-150%">1850</text>
<text transform="matrix(1 0 0 -0.01 1900 0)" text-anchor="middle" baseline-shift="-150%">1900</text>
<text transform="matrix(1 0 0 -0.01 1950 0)" text-anchor="middle" baseline-shift="-150%">1950</text>
<text transform="matrix(1 0 0 -0.01 2000 0)" text-anchor="middle" baseline-shift="-150%">2000</text>
</g>
</g>
<set xlink:href="#useStatePop" attributeName="xlink:href" begin="Alabama.mouseover" to="#AlabamaPop" />
<set xlink:href="#useStateProp" attributeName="xlink:href" begin="Alabama.mouseover" to="#AlabamaProp" />
<set xlink:href="#useStateName" attributeName="xlink:href" begin="Alabama.mouseover" to="#AlabamaName" />
...
</svg>
The animation lasts 22 seconds, one second for each decade from 1790 to 2010.
The first two animation elements simply move the timeline (gold line) indicator across the graph as time passes.
Then the three use elements point to the appropriate state's data to use to stroke the state's data on the graph and to draw the state's name. This is done by pointing to the actual data. Here is Alabama's for example (as usual a lot of data omitted for brevity).
<text id="AlabamaName">Alabama</text>
<path id="AlabamaPop" d="M1790 0.000L1800 0.000L1810 0.000L1820 0.032L1830 0.070L1840 0.133L1850 0.174 ..." />
<path id="AlabamaProp" d="M1790 0.000L1800 0.000L1810 0.000L1820 0.413L1830 0.696L1840 1.000L1850 0.962 ..." />
So when the user mouses over a given state, that state's data is pointed to by the use elements in the graph.
Finally, the colors of the states are animated over time by a single animation element that just updates the color every second:
<animate xlink:href="#Alabama" attributeName="fill" dur="22s" fill="freeze" values="#0101ff;#0101ff;#0101ff;#0150ff; ..." />
And that's it! Click on this link to see the actual rendered demo in all its growing glory!


Home
About the Collection
View the Prints
View by Theme
Introduction
Contagious Disease
Drug Advertisements
Foreigners & Disease
Religion & Health
Womens Health


Modeling COVID-19 on a network: super-spreaders, testing and containment
Simulate COVID-19 spread according to the article by Reich et. al.
TL;DR: Go straight to running the simulation
Introduction
The article Reich, O., Shalev, G., and Kalvari, T. 2020. Modeling COVID-19 on a network: super-spreaders, testing and containment. https://dx.doi.org/10.1101/2<IP_ADDRESS>81828 . models the spread of covid-19 using an SEIR agent-based model on a graph, taking into account several important real-life attributes of covid-19: Super-spreaders, realistic epidemiological parameters of the disease, testing and quarantine policies. The findings indicate that mass-testing is much less effective than testing the symptomatic and contact tracing, and some blend of these with social distancing is required to get suppression.
This page allows you to experiment with this simulation, adjusting some of its parameters. It is creating a unique network just like the one in the article , and simulates the disease spreading on that network.
Try running the simulation several times with the same parameters, to witness the similarities and differences due to randominzation. Then, try adjusting the parameters to investigate different strategies and see their effect on disease spread, seeing which ones lead to containment, and which ones just infect a substantial share of the population.
For details, read the article, or read the original python code , or open an issue on github for this webpage .
Running the simulation
To run this simulation simply adjust the parameters, and press the Run button below. This will cause a unique random graph to be generated on your browser, and a random simulation will take place. The simulation state will be displayed on updating graphs in the results section . Scroll down to see previous simulations you ran.
Adjustable simulation parameters
"send" icon by https://www.brandeps.com/ , licensed under https://creativecommons.org/licenses/by-sa/4.0/
Results
Epilogue
This webpage was created with clojurescript , re-frame , vega-lite , shadow-cljs and tufte-css .
It brought me joy.


Deploying web.py applications
FastCGI
web.py uses flup [http://trac.saddi.com/flup] library for supporting fastcgi. Make sure it is installed.
You just need to make sure you applicaiton file is executable. Make it so by adding the following line to tell the system to execute it using python:
#! /usr/bin/env python
and setting the exeutable flag on the file:
chmod +x /path/to/yourapp.py
Configuring lighttpd
Here is a sample lighttpd configuration file to expose a web.py app using fastcgi.
# Enable mod_fastcgi and mod_rewrite modules
server.modules += ( "mod_fastcgi" )
server.modules += ( "mod_rewrite" )
# configure the application
fastcgi.server = ( "/yourapp.py" =>
((
# path to the socket file
"socket" => "/tmp/yourapp-fastcgi.socket",
# path to the application
"bin-path" => "/path/to/yourapp.py",
# number of fastcgi processes to start
"max-procs" => 1,
"bin-environment" => (
"REAL_SCRIPT_NAME" => ""
),
"check-local" => "disable"
))
)
url.rewrite-once = (
# favicon is usually placed in static/
"^/favicon.ico$" => "/static/favicon.ico",
# Let lighttpd serve resources from /static/.
# The web.py dev server automatically servers /static/, but this is
# required when deploying in production.
"^/static/(.*)$" => "/static/$1",
# everything else should go to the application, which is already configured above.
"^/(.*)$" => "/yourapp.py/$1",
)
With this configuration lighttpd takes care of starting the application. The webserver talks to your application using fastcgi via a unix domain socket. This means both the webserver and the application will run on the same machine.
nginx + Gunicorn
Gunicorn ‘Green Unicorn’ is a Python WSGI HTTP Server for UNIX. It’s a pre-fork worker model ported from Ruby’s Unicorn project.
To make a web.py application work with gunicorn, you’ll need to get the wsgi app from web.py application object.
import web
...
app = web.application(urls, globals())
# get the wsgi app from web.py application object
wsgiapp = app.wsgifunc()
Once that change is made, gunicorn server be started using:
gunicorn -w 4 -b <IP_ADDRESS>:4000 yourapp:wsgiapp
This starts gunicorn with 4 workers and listens at port 4000 on localhost.
It is best to use Gunicorn behind HTTP proxy server. The gunicorn team strongly advises to use nginx. Here is a sample nginx configuration which proxies to application running on <IP_ADDRESS>:4000.
server {
listen 80;
server_name example.org;
access_log /var/log/nginx/example.log;
location / {
proxy_pass http://<IP_ADDRESS>:4000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}


Plan Journey
| Train Number | Train Name | Departure from source | Arrival at destination |
|---|

| Date | Status |
|---|
| Train Number | Train Name | Departure from source | Arrival at destination |
|---|
| Date | Status |
|---|


| DOSE: |
20 mg |
IM |
2C-E |
(powder / crystals) |
| |
1 bowl |
smoked |
Cannabis |
(plant material) |
I had come home from a party and I decided I would end the night with some 2c-e. One of my best friends A, and a fellow psychonaut decided to watch me do it out of curiosity and boredom. So I prepared the 20mg shot by dissolving the 2c-e in some water and proceeded to inject it into my left shoulder. I put down the needle, capped it, and was talking to A for a couple minutes when I noticed the visual distortion start. Needless to say the come up time was amazingly fast, which I certainly wasn't complaining about. The visuals began with the signature warping growing in intensity rapidly. After a few more minutes I was getting full blown visual bombardment. My arm was heavy and sore from the injection and was an annoyance but easily tolerable, won't make the same mistake next time.
Throughout the night as it increased in intensity I experienced a few new sensations that I had no previously gotten on 2c-e. I talked with A about many a thing throughout the night but I noticed that as we were talking I would interpret A's questions and responses in different levels of depth. And the depth of my interpretation would be erratically jumping at anytime. Like he might have been talking about something menial and I would go into huge trains of deep thought into the nature of the subject. Itís a bit more complex but probably canít explain it any better.
I had a bowl of weed just before the peak, to mitigate the uncomfortable body load; I wasnít sure at times if I was actually feeling nauseous or just some weird uncomfortable feeling in the stomach. But the weed worked to lessen whatever it was. I also felt as though everything had a strong and very fast vibration.
At the peak I felt as though I was merging into the 'Stream' of the universe, No ++++ mind you but I imagine it was a tiny taste of it. My whole field of visual became like a wave of visuals, all in synch like a river, and my body felt like it was suspended in water, flowing involuntarily with the waves of visuals. I would look on my monitor and as I attempted to move my mouse around flicking through songs the trails of the mouse created jewels that would jump out into my field of vision, almost like looking at a night sky and having very large stars just pop up. Music was quite intense, I would play a very psychedelic song and the visuals would step up a notch and I get lost in the song and waves of patterns and colours.
As I attempted to explain to A what the visuals were kind of like, I said that each movement or object left a border for each frame in which it moved, if that makes any sense, but it was not like trails that are merely delayed, where each small border has the previous imagine side by side, but in each border the action would constantly repeat so it was like a huge overlay of actions and movement. Also everything had small multiple outlines, a triple edge as a friend has called it, and it extends outwards and repeats. It makes everything seem very vibrant.
At the peak my memory also began to dwindle slightly, in both the ĎHuh...What was I saying?í weed way and the traditional psychedelic *having thousands of thoughts a second on something and then completely losing the original thought or point*. At times it felt like I would get sidetracked so much during a conversation that when A reminded me of the original point it felt as though I was going back in time in a sense. Almost as though in the whole sidetracked conversation no time had passed and it was as though I was playing a conversation scenario out in my head or something.
I took the shot at 1:30am, by about 6:30am I started to come down. Tried to sleep at 7ish am. Fell asleep somewhere around 8am I think. Woke up at 11am feeling tired but back to baseline and fine mostly.
I think I may have experienced some instances of synaesthesia but I canít really remember/pinpoint them.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.